From 823028871d28619194134796c6a8a884d795936a Mon Sep 17 00:00:00 2001 From: MagicTheDev Date: Thu, 23 Jan 2025 07:15:35 -0600 Subject: [PATCH 001/174] feat: v2 --- main.py | 33 ++++---- routers/{public => v1}/capital.py | 0 routers/{public => v1}/clan.py | 0 routers/{public => v1}/game_data.py | 0 routers/{public => v1}/giveaway.py | 2 +- routers/{public => v1}/global_data.py | 0 routers/{public => v1}/helper.py | 0 routers/{public => v1}/hidden.py | 0 routers/{public => v1}/internal.py | 0 routers/{public => v1}/leaderboards.py | 0 routers/{public => v1}/leagues.py | 0 routers/{public => v1}/legends.py | 0 routers/{public => v1}/list.py | 0 routers/{public => v1}/player.py | 0 routers/{public => v1}/ranking.py | 0 routers/{public => v1}/redirect.py | 0 routers/{public => v1}/rosters.py | 0 routers/{public => v1}/server_info.py | 0 routers/{public => v1}/stats.py | 0 routers/{public => v1}/test.py | 0 routers/{public => v1}/tickets.py | 0 routers/{public => v1}/utility.py | 0 routers/{public => v1}/war.py | 0 routers/{public => v1}/xlsx.py | 0 routers/v2/auth.py | 99 ----------------------- routers/v2/bans/endpoints.py | 81 +++++++++++++++++++ routers/v2/bans/models.py | 6 ++ routers/v2/clan_settings.py | 3 +- routers/v2/rosters.py | 2 +- routers/v2/tracking.py | 2 +- utils/database.py | 107 +++++++++++++++++++++++++ 31 files changed, 217 insertions(+), 118 deletions(-) rename routers/{public => v1}/capital.py (100%) rename routers/{public => v1}/clan.py (100%) rename routers/{public => v1}/game_data.py (100%) rename routers/{public => v1}/giveaway.py (99%) rename routers/{public => v1}/global_data.py (100%) rename routers/{public => v1}/helper.py (100%) rename routers/{public => v1}/hidden.py (100%) rename routers/{public => v1}/internal.py (100%) rename routers/{public => v1}/leaderboards.py (100%) rename routers/{public => v1}/leagues.py (100%) rename routers/{public => v1}/legends.py (100%) rename routers/{public => v1}/list.py (100%) rename routers/{public => v1}/player.py (100%) rename routers/{public => v1}/ranking.py (100%) rename routers/{public => v1}/redirect.py (100%) rename routers/{public => v1}/rosters.py (100%) rename routers/{public => v1}/server_info.py (100%) rename routers/{public => v1}/stats.py (100%) rename routers/{public => v1}/test.py (100%) rename routers/{public => v1}/tickets.py (100%) rename routers/{public => v1}/utility.py (100%) rename routers/{public => v1}/war.py (100%) rename routers/{public => v1}/xlsx.py (100%) delete mode 100644 routers/v2/auth.py create mode 100644 routers/v2/bans/endpoints.py create mode 100644 routers/v2/bans/models.py create mode 100644 utils/database.py diff --git a/main.py b/main.py index e065ac69..b7537350 100644 --- a/main.py +++ b/main.py @@ -42,23 +42,26 @@ -def include_routers(app, directory): - for filename in os.listdir(directory): - if filename.endswith(".py") and not filename.startswith("__"): - module_name = filename[:-3] - file_path = os.path.join(directory, filename) - spec = importlib.util.spec_from_file_location(module_name, file_path) - module = importlib.util.module_from_spec(spec) - spec.loader.exec_module(module) +def include_routers(app, directory, recursive=False): + """Include routers from a given directory. If recursive is True, search for 'endpoints.py' in subdirectories.""" + for root, _, files in os.walk(directory) if recursive else [(directory, [], os.listdir(directory))]: + for filename in files: + if filename == "endpoints.py" if recursive else filename.endswith(".py") and not filename.startswith("__"): + module_name = os.path.relpath(os.path.join(root, filename), start=directory).replace(os.sep, ".")[:-3] + file_path = os.path.join(root, filename) - router = getattr(module, "router", None) - if router: - app.include_router(router) + spec = importlib.util.spec_from_file_location(module_name, file_path) + module = importlib.util.module_from_spec(spec) + spec.loader.exec_module(module) -# Include routers from public and private directories -include_routers(app, os.path.join(os.path.dirname(__file__), "routers", "public")) -include_routers(app, os.path.join(os.path.dirname(__file__), "routers", "v2")) + router = getattr(module, "router", None) + if router: + app.include_router(router) + +# Include routers from public (v1) and private (v2 with subfolders) +include_routers(app, os.path.join(os.path.dirname(__file__), "routers", "v1")) +include_routers(app, os.path.join(os.path.dirname(__file__), "routers", "v2"), recursive=True) @app.on_event("startup") @@ -69,7 +72,7 @@ async def startup_event(): @app.get("/", include_in_schema=False, response_class=RedirectResponse) async def docs(): if config.is_local: - return RedirectResponse(f"http://localhost/docs") + return RedirectResponse(f"http://localhost:8000/docs") return RedirectResponse(f"https://api.clashk.ing/docs") @app.get("/openapi/private", include_in_schema=False) diff --git a/routers/public/capital.py b/routers/v1/capital.py similarity index 100% rename from routers/public/capital.py rename to routers/v1/capital.py diff --git a/routers/public/clan.py b/routers/v1/clan.py similarity index 100% rename from routers/public/clan.py rename to routers/v1/clan.py diff --git a/routers/public/game_data.py b/routers/v1/game_data.py similarity index 100% rename from routers/public/game_data.py rename to routers/v1/game_data.py diff --git a/routers/public/giveaway.py b/routers/v1/giveaway.py similarity index 99% rename from routers/public/giveaway.py rename to routers/v1/giveaway.py index 994d7f5a..b974b2be 100644 --- a/routers/public/giveaway.py +++ b/routers/v1/giveaway.py @@ -8,7 +8,7 @@ from fastapi.templating import Jinja2Templates from pydantic import BaseModel -from routers.public.tickets import get_channels, get_roles +from routers.v1.tickets import get_channels, get_roles from utils.utils import db_client, validate_token, delete_from_cdn router = APIRouter(prefix="/giveaway", include_in_schema=False) diff --git a/routers/public/global_data.py b/routers/v1/global_data.py similarity index 100% rename from routers/public/global_data.py rename to routers/v1/global_data.py diff --git a/routers/public/helper.py b/routers/v1/helper.py similarity index 100% rename from routers/public/helper.py rename to routers/v1/helper.py diff --git a/routers/public/hidden.py b/routers/v1/hidden.py similarity index 100% rename from routers/public/hidden.py rename to routers/v1/hidden.py diff --git a/routers/public/internal.py b/routers/v1/internal.py similarity index 100% rename from routers/public/internal.py rename to routers/v1/internal.py diff --git a/routers/public/leaderboards.py b/routers/v1/leaderboards.py similarity index 100% rename from routers/public/leaderboards.py rename to routers/v1/leaderboards.py diff --git a/routers/public/leagues.py b/routers/v1/leagues.py similarity index 100% rename from routers/public/leagues.py rename to routers/v1/leagues.py diff --git a/routers/public/legends.py b/routers/v1/legends.py similarity index 100% rename from routers/public/legends.py rename to routers/v1/legends.py diff --git a/routers/public/list.py b/routers/v1/list.py similarity index 100% rename from routers/public/list.py rename to routers/v1/list.py diff --git a/routers/public/player.py b/routers/v1/player.py similarity index 100% rename from routers/public/player.py rename to routers/v1/player.py diff --git a/routers/public/ranking.py b/routers/v1/ranking.py similarity index 100% rename from routers/public/ranking.py rename to routers/v1/ranking.py diff --git a/routers/public/redirect.py b/routers/v1/redirect.py similarity index 100% rename from routers/public/redirect.py rename to routers/v1/redirect.py diff --git a/routers/public/rosters.py b/routers/v1/rosters.py similarity index 100% rename from routers/public/rosters.py rename to routers/v1/rosters.py diff --git a/routers/public/server_info.py b/routers/v1/server_info.py similarity index 100% rename from routers/public/server_info.py rename to routers/v1/server_info.py diff --git a/routers/public/stats.py b/routers/v1/stats.py similarity index 100% rename from routers/public/stats.py rename to routers/v1/stats.py diff --git a/routers/public/test.py b/routers/v1/test.py similarity index 100% rename from routers/public/test.py rename to routers/v1/test.py diff --git a/routers/public/tickets.py b/routers/v1/tickets.py similarity index 100% rename from routers/public/tickets.py rename to routers/v1/tickets.py diff --git a/routers/public/utility.py b/routers/v1/utility.py similarity index 100% rename from routers/public/utility.py rename to routers/v1/utility.py diff --git a/routers/public/war.py b/routers/v1/war.py similarity index 100% rename from routers/public/war.py rename to routers/v1/war.py diff --git a/routers/public/xlsx.py b/routers/v1/xlsx.py similarity index 100% rename from routers/public/xlsx.py rename to routers/v1/xlsx.py diff --git a/routers/v2/auth.py b/routers/v2/auth.py deleted file mode 100644 index cd00aaa3..00000000 --- a/routers/v2/auth.py +++ /dev/null @@ -1,99 +0,0 @@ -from fastapi import Depends, FastAPI, HTTPException, status, APIRouter -from fastapi.security import OAuth2PasswordBearer, OAuth2PasswordRequestForm -from pydantic import BaseModel -from passlib.context import CryptContext -import jwt -from datetime import datetime, timedelta -from os import getenv -from utils.utils import db_client - -# Secret key to encode JWT tokens -SECRET_KEY = getenv("SECRET_KEY") -ALGORITHM = "HS256" -ACCESS_TOKEN_EXPIRE_MINUTES = 30 - - -# Password hashing setup -pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") - -# OAuth2 scheme for token endpoint -oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token") - -router = APIRouter(tags=["Authentication"], include_in_schema=True) - - -class Token(BaseModel): - access_token: str - token_type: str - -class PermissionsSplit(BaseModel): - read: bool = False - write: bool = False - delete: bool = False - -class Permissions(BaseModel): - rosters: PermissionsSplit = PermissionsSplit() - ticketing: PermissionsSplit = PermissionsSplit() - -class User(BaseModel): - username: str - permissions: Permissions = Permissions() - admin: bool = False - -class UserInDB(User): - password: str - -# Function to verify a password -def verify_password(plain_password, hashed_password): - return pwd_context.verify(plain_password, hashed_password) - -# Function to get a user from the "database" -async def get_user(username: str): - user_dict = await db_client.api_users.find_one({"username": username}, {'_id': 0}) - if user_dict: - return UserInDB(**user_dict) - -# Authenticate a user -async def authenticate_user(username: str, password: str): - user = await get_user(username) - if not user or not verify_password(password, user.password): - return False - return user - -# Create JWT token -def create_access_token(data: dict, expires_delta: timedelta | None = None): - to_encode = data.copy() - expire = datetime.utcnow() + (expires_delta or timedelta(minutes=15)) - to_encode.update({"exp": expire}) - return jwt.encode(to_encode, SECRET_KEY, algorithm=ALGORITHM) - -# Token endpoint to get a JWT -@router.post("/token", response_model=Token) -async def login(form_data: OAuth2PasswordRequestForm = Depends()): - user = await authenticate_user(form_data.username, form_data.password) - if not user: - raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Incorrect username or password") - access_token_expires = timedelta(minutes=ACCESS_TOKEN_EXPIRE_MINUTES) - access_token = create_access_token(data={"sub": user.username}, expires_delta=access_token_expires) - return {"access_token": access_token, "token_type": "bearer"} - -# Get current authenticated user -async def get_current_user(token: str = Depends(oauth2_scheme)): - try: - payload = jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM]) - username: str = payload.get("sub") - if username is None: - raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Invalid authentication") - user = await get_user(username) - if user is None: - raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="User not found") - return user - except jwt.ExpiredSignatureError: - raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Token expired") - except jwt.JWTError: - raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Invalid token") - -# Protecting an endpoint with authentication -@router.get("/users/me", response_model=User) -async def read_users_me(current_user: User = Depends(get_current_user)): - return current_user \ No newline at end of file diff --git a/routers/v2/bans/endpoints.py b/routers/v2/bans/endpoints.py new file mode 100644 index 00000000..6510f69d --- /dev/null +++ b/routers/v2/bans/endpoints.py @@ -0,0 +1,81 @@ + +import pendulum as pend +from fastapi import HTTPException +from fastapi import APIRouter, Query, Request +from typing import Annotated +from utils.utils import fix_tag, remove_id_fields, check_authentication +from utils.database import MongoClient as mongo +from routers.v2.bans.models import BanRequest + +router = APIRouter(prefix="/v2",tags=["Bans"], include_in_schema=True) + + + +@router.get("/ban/list/{server_id}", + name="Get bans for a server") +@check_authentication +async def ban_list(server_id: int, request: Request): + bans = await mongo.banlist.find({'server': server_id}).to_list(length=None) + return remove_id_fields({"items" : bans}) + + +@router.post("/ban/add/{server_id}/{player_tag}") +@check_authentication +async def add_ban( + server_id: str, + player_tag: str, + request: Request, + ban_data: BanRequest, +): + """Add or update a ban for a player in a specific server""" + + find_ban = await mongo.banlist.find_one({'VillageTag': player_tag, 'server': server_id}) + + if find_ban: + # Update existing ban + await mongo.banlist.update_one( + {'VillageTag': player_tag, 'server': server_id}, + { + '$set': {'Notes': ban_data.reason, 'rollover_date': ban_data.rollover_days}, + '$push': { + 'edited_by': { + 'user': ban_data.added_by, + 'previous': { + 'reason': find_ban.get('Notes'), + 'rollover_days': find_ban.get('rollover_date'), + }, + } + }, + } + ) + return {"status": "updated", "player_tag": player_tag, "server_id": server_id} + else: + # Insert new ban + ban_entry = { + 'VillageTag': player_tag, + 'DateCreated': pend.now("UTC").format("YYYY-MM-DD HH:mm:ss"), + 'Notes': ban_data.reason, + 'server': server_id, + 'added_by': ban_data.added_by, + 'rollover_date': ban_data.rollover_days, + } + await mongo.banlist.insert_one(ban_entry) + return {"status": "created", "player_tag": player_tag, "server_id": server_id} + + + +@router.delete("/ban/remove/{server_id}/{player_tag}") +@check_authentication +async def remove_ban( + server_id: str, + player_tag: str, + request: Request +): + """Delete a ban for a player in a specific server""" + + results = await mongo.banlist.find_one({'$and': [{'VillageTag': player_tag}, {'server': server_id}]}) + if not results: + raise HTTPException(status_code=404, detail=f"Player {player_tag} is not banned on server {server_id}.") + + await mongo.banlist.find_one_and_delete({'$and': [{'VillageTag': player_tag}, {'server': server_id}]}) + return {"status": "deleted", "player_tag": player_tag, "server_id": server_id} \ No newline at end of file diff --git a/routers/v2/bans/models.py b/routers/v2/bans/models.py new file mode 100644 index 00000000..d553db71 --- /dev/null +++ b/routers/v2/bans/models.py @@ -0,0 +1,6 @@ +from pydantic import BaseModel + +class BanRequest(BaseModel): + reason: str + added_by: str # Discord user ID + rollover_days: int \ No newline at end of file diff --git a/routers/v2/clan_settings.py b/routers/v2/clan_settings.py index e9cfb246..4a093b81 100644 --- a/routers/v2/clan_settings.py +++ b/routers/v2/clan_settings.py @@ -6,7 +6,8 @@ from typing import Annotated, List from fastapi_cache.decorator import cache from datetime import datetime -from utils.utils import fix_tag, db_client, token_verify, limiter, remove_id_fields +from utils.utils import fix_tag, db_client, remove_id_fields, check_authentication + diff --git a/routers/v2/rosters.py b/routers/v2/rosters.py index d99c4c24..9f8c615c 100644 --- a/routers/v2/rosters.py +++ b/routers/v2/rosters.py @@ -3,7 +3,7 @@ import coc from fastapi import Request, Response, HTTPException -from fastapi import APIRouter, Query, Depends +from fastapi import APIRouter, Query from typing import Annotated, List from fastapi_cache.decorator import cache from datetime import datetime diff --git a/routers/v2/tracking.py b/routers/v2/tracking.py index 880dd5d6..cb8e576e 100644 --- a/routers/v2/tracking.py +++ b/routers/v2/tracking.py @@ -8,7 +8,7 @@ from typing import Annotated, List from fastapi_cache.decorator import cache from datetime import datetime -from utils.utils import fix_tag, db_client, token_verify, limiter, remove_id_fields, check_authentication +from utils.utils import fix_tag, db_client, check_authentication router = APIRouter(prefix="/v2",tags=["Tracking Endpoints"], include_in_schema=False) diff --git a/utils/database.py b/utils/database.py new file mode 100644 index 00000000..304c1f0e --- /dev/null +++ b/utils/database.py @@ -0,0 +1,107 @@ +import motor.motor_asyncio +from .config import Config + +config = Config() + + +class MongoClient: + looper_db = motor.motor_asyncio.AsyncIOMotorClient( + config.stats_mongodb, compressors='snappy' if not config.is_local else 'zlib' + ) + db_client = motor.motor_asyncio.AsyncIOMotorClient( + config.static_mongodb, compressors='snappy' if not config.is_local else 'zlib' + ) + + # Databases + new_looper = looper_db.get_database('new_looper') + stats = looper_db.get_database('stats') + cache = looper_db.get_database('cache') + looper = looper_db.get_database('looper') + clashking = looper_db.get_database('clashking') + bot_settings = db_client.get_database('usafam') + + # Collections (Looper) + history_db = looper.get_collection('legend_history') + warhits = looper.get_collection('warhits') + webhook_message_db = looper.get_collection('webhook_messages') + cwl_db = looper.get_collection('cwl_db') + clan_wars = looper.get_collection('clan_war') + command_stats = new_looper.get_collection('command_stats') + player_history = new_looper.get_collection('player_history') + clan_history = new_looper.get_collection('clan_history') + clan_cache = new_looper.get_collection('clan_cache') + war_elo = looper.get_collection('war_elo') + raid_weekend_db = looper.get_collection('raid_weekends') + clan_join_leave = looper.get_collection('join_leave_history') + base_stats = looper.get_collection('base_stats') + cwl_groups = looper.get_collection('cwl_group') + basic_clan = looper.get_collection('clan_tags') + war_timers = looper.get_collection('war_timer') + + # Collections (ClashKing) + excel_templates = clashking.get_collection('excel_templates') + giveaways = clashking.get_collection('giveaways') + tokens_db = clashking.get_collection('tokens') + lineups = clashking.get_collection('lineups') + bot_sync = clashking.get_collection('bot_sync') + bot_stats = clashking.get_collection('bot_stats') + autoboards = clashking.get_collection('autoboards') + number_emojis = clashking.get_collection('number_emojis') + + # Collections (Stats & New Looper) + base_player = stats.get_collection('base_player') + legends_stats = stats.get_collection('legends_stats') + season_stats = stats.get_collection('season_stats') + capital_cache = cache.get_collection('capital_raids') + player_stats = new_looper.get_collection('player_stats') + leaderboard_db = new_looper.get_collection('leaderboard_db') + clan_leaderboard_db = new_looper.get_collection('clan_leaderboard_db') + clan_stats = new_looper.get_collection('clan_stats') + legend_rankings = new_looper.get_collection('legend_rankings') + + # Collections (Bot Settings) + clan_db = bot_settings.get_collection('clans') + banlist = bot_settings.get_collection('banlist') + server_db = bot_settings.get_collection('server') + profile_db = bot_settings.get_collection('profile_db') + ignored_roles = bot_settings.get_collection('evalignore') + general_family_roles = bot_settings.get_collection('generalrole') + family_exclusive_roles = bot_settings.get_collection('familyexclusiveroles') + family_position_roles = bot_settings.get_collection('family_roles') + not_family_roles = bot_settings.get_collection('linkrole') + townhall_roles = bot_settings.get_collection('townhallroles') + builderhall_roles = bot_settings.get_collection('builderhallroles') + legendleague_roles = bot_settings.get_collection('legendleagueroles') + builderleague_roles = bot_settings.get_collection('builderleagueroles') + donation_roles = bot_settings.get_collection('donationroles') + achievement_roles = bot_settings.get_collection('achievementroles') + status_roles = bot_settings.get_collection('statusroles') + welcome = bot_settings.get_collection('welcome') + button_db = bot_settings.get_collection('button_db') + legend_profile = bot_settings.get_collection('legend_profile') + youtube_channels = bot_settings.get_collection('youtube_channels') + reminders = bot_settings.get_collection('reminders') + whitelist = bot_settings.get_collection('whitelist') + rosters = bot_settings.get_collection('rosters') + credentials = bot_settings.get_collection('credentials') + global_chat_db = bot_settings.get_collection('global_chats') + global_reports = bot_settings.get_collection('reports') + strike_list = bot_settings.get_collection('strikes') + + custom_bots = bot_settings.get_collection('custom_bots') + suggestions = bot_settings.get_collection('suggestions') + + personal_reminders = bot_settings.get_collection('personal_reminders') + tickets = bot_settings.get_collection('tickets') + open_tickets = bot_settings.get_collection('open_tickets') + custom_embeds = bot_settings.get_collection('custom_embeds') + custom_commands = bot_settings.get_collection('custom_commands') + bases = bot_settings.get_collection('bases') + colors = bot_settings.get_collection('colors') + level_cards = bot_settings.get_collection('level_cards') + autostrikes = bot_settings.get_collection('autostrikes') + user_settings = bot_settings.get_collection('user_settings') + custom_boards = bot_settings.get_collection('custom_boards') + trials = bot_settings.get_collection('trials') + autoboard_db = bot_settings.get_collection('autoboard_db') + player_search = bot_settings.get_collection('player_search') From 0c02315c68a88abe05eb1643ae721968654a07f8 Mon Sep 17 00:00:00 2001 From: MagicTheDev Date: Mon, 27 Jan 2025 07:01:29 -0600 Subject: [PATCH 002/174] feat: v2 --- routers/v1/player.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/routers/v1/player.py b/routers/v1/player.py index e6cb1432..fc384c42 100644 --- a/routers/v1/player.py +++ b/routers/v1/player.py @@ -91,12 +91,14 @@ async def player_legend(player_tag: str, request: Request, response: Response, s legend_data = result.get('legends', {}) if season and legend_data != {}: - year, month = season.split("-") - season_start = coc.utils.get_season_start(month=int(month) - 1, year=int(year)) - season_end = coc.utils.get_season_end(month=int(month) - 1, year=int(year)) - delta = season_end - season_start - days = [season_start + timedelta(days=i) for i in range(delta.days)] - days = [day.strftime("%Y-%m-%d") for day in days] + year, month = map(int, season.split("-")) + previous_month = pend.date(year, month, 1).subtract(months=1) + prev_year, prev_month = previous_month.year, previous_month.month + + season_start = pend.instance(coc.utils.get_season_start(month=prev_month, year=prev_year)) + season_end = pend.instance(coc.utils.get_season_end(month=prev_month, year=prev_year)) + + days = [season_start.add(days=i).to_date_string() for i in range((season_end - season_start).days)] _holder = {} for day in days: From 6a75742d6e5f9a7f9a050873447143628fdedd9b Mon Sep 17 00:00:00 2001 From: Destinea Date: Sat, 8 Feb 2025 22:41:47 +0100 Subject: [PATCH 003/174] feat: App auth endpoints --- main.py | 1 + requirements.txt | 1 + routers/app/auth.py | 193 ++++++++++++++++++++++++++++++++++++++++++++ utils/utils.py | 4 + 4 files changed, 199 insertions(+) create mode 100644 routers/app/auth.py diff --git a/main.py b/main.py index e065ac69..21b1efae 100644 --- a/main.py +++ b/main.py @@ -59,6 +59,7 @@ def include_routers(app, directory): # Include routers from public and private directories include_routers(app, os.path.join(os.path.dirname(__file__), "routers", "public")) include_routers(app, os.path.join(os.path.dirname(__file__), "routers", "v2")) +include_routers(app, os.path.join(os.path.dirname(__file__), "routers", "app")) @app.on_event("startup") diff --git a/requirements.txt b/requirements.txt index 7ac591f3..db57d8bf 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,7 @@ aiohttp==3.9.3 aiocache==0.12.2 coc.py==3.2.1 +bcrypt==4.2.1 diskcache==5.6.3 expiring-dict==1.1.0 fastapi==0.111.0 diff --git a/routers/app/auth.py b/routers/app/auth.py new file mode 100644 index 00000000..241ba8e8 --- /dev/null +++ b/routers/app/auth.py @@ -0,0 +1,193 @@ +import os +import jwt +import requests +import pendulum as pend +from dotenv import load_dotenv +from fastapi import FastAPI, Depends, HTTPException, Request +from fastapi.security import OAuth2PasswordBearer +from pydantic import BaseModel +from utils.utils import db_client +from passlib.context import CryptContext +from fastapi import APIRouter + +# Load environment variables +load_dotenv() + +# Initialize FastAPI app +oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token") + +router = APIRouter(tags=["Authentication"], include_in_schema=False) + +# Password hashing setup +pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") + +# Environment variables +SECRET_KEY = os.getenv('SECRET_KEY') +REFRESH_SECRET = os.getenv('REFRESH_SECRET') +DISCORD_CLIENT_ID = os.getenv('DISCORD_CLIENT_ID') +DISCORD_CLIENT_SECRET = os.getenv('DISCORD_CLIENT_SECRET') +DISCORD_REDIRECT_URI = os.getenv('DISCORD_REDIRECT_URI') + + +class Token(BaseModel): + access_token: str + refresh_token: str + + +def generate_jwt(user_id: str, user_type: str): + """Generate a JWT valid for 1 hour""" + payload = { + "sub": user_id, + "type": user_type, + "exp": pend.now().add(hours=1).int_timestamp + } + return jwt.encode(payload, SECRET_KEY, algorithm="HS256") + + +def generate_refresh_token(user_id: str, device_id: str): + """Generate a refresh token valid for 90 days""" + payload = {"sub": user_id, "device": device_id, "exp": pend.now().add(days=90).int_timestamp} + return jwt.encode(payload, REFRESH_SECRET, algorithm="HS256") + + +def hash_password(password: str) -> str: + """Hash a password using bcrypt""" + return pwd_context.hash(password) + + +def verify_password(plain_password: str, hashed_password: str) -> bool: + """Verify a password against a hashed version""" + return pwd_context.verify(plain_password, hashed_password) + + +### 🔑 AUTHENTICATION ### +@router.post("/auth/clashking", response_model=Token) +async def auth_clashking(email: str, password: str, request: Request): + """Authenticate or register a user using ClashKing account""" + device_id = request.headers.get("X-Device-ID", "unknown") + + user = await db_client.app_users.find_one({"email": email}) + + if not user: + # If user does not exist, create a new account + hashed_password = hash_password(password) + new_user = { + "user_id": str(pend.now().int_timestamp), + "email": email, + "password": hashed_password, + "account_type": "clashking", + "created_at": pend.now() + } + await db_client.app_users.insert_one(new_user) + user = new_user + + else: + # If user exists, verify the password + if not verify_password(password, user["password"]): + raise HTTPException(status_code=403, detail="Invalid credentials") + + # Generate JWT tokens + access_token = generate_jwt(user["user_id"], "clashking") + refresh_token = generate_refresh_token(user["user_id"], device_id) + + # Store the refresh token in the database, linked to the device + await db_client.app_tokens.insert_one( + {"user_id": user["user_id"], "refresh_token": refresh_token, "device_id": device_id, "expires_at": pend.now().add(days=90)} + ) + + return {"access_token": access_token, "refresh_token": refresh_token} + + +@router.post("/auth/discord", response_model=Token) +async def auth_discord(code: str): + """Authenticate user via Discord OAuth2 and return JWT tokens""" + if not code: + raise HTTPException(status_code=400, detail="Missing Discord code") + + token_url = "https://discord.com/api/oauth2/token" + token_data = { + "client_id": DISCORD_CLIENT_ID, + "client_secret": DISCORD_CLIENT_SECRET, + "code": code, + "grant_type": "authorization_code", + "redirect_uri": DISCORD_REDIRECT_URI, + "scope": "identify" + } + headers = {"Content-Type": "application/x-www-form-urlencoded"} + token_response = requests.post(token_url, data=token_data, headers=headers) + + if token_response.status_code != 200: + raise HTTPException(status_code=500, detail=f"Error during Discord authentication: {token_response.json()}") + + access_token = token_response.json().get("access_token") + user_response = requests.get("https://discord.com/api/users/@me", + headers={"Authorization": f"Bearer {access_token}"}) + + if user_response.status_code != 200: + raise HTTPException(status_code=500, detail="Error retrieving user info") + + user_data = user_response.json() + user_id = user_data["id"] + + # Store user in database if not exists + if not await db_client.app_users.find_one({"user_id": user_id}): + await db_client.app_users.insert_one( + {"user_id": user_id, "username": user_data["username"], "account_type": "discord", "created_at": pend.now()} + ) + + refresh_token = generate_refresh_token(user_id, "discord") + await db_client.app_tokens.insert_one( + {"user_id": user_id, "refresh_token": refresh_token, "expires_at": pend.now().add(days=90)} + ) + + return {"access_token": generate_jwt(user_id, "discord"), "refresh_token": refresh_token} + + +### 🔄 TOKEN MANAGEMENT ### +@router.post("/refresh-token", response_model=Token) +async def refresh_token(token: str): + """Refresh the access token using a valid refresh token""" + stored_token = await db_client.app_tokens.find_one({"refresh_token": token}) + + if not stored_token: + raise HTTPException(status_code=403, detail="Invalid token") + + try: + payload = jwt.decode(token, REFRESH_SECRET, algorithms=["HS256"]) + new_access_token = generate_jwt(payload["sub"], "clashking") + new_refresh_token = generate_refresh_token(payload["sub"], payload["device"]) + + await db_client.app_tokens.update_one( + {"refresh_token": token}, + {"$set": {"refresh_token": new_refresh_token, "expires_at": pend.now().add(days=90)}} + ) + + return {"access_token": new_access_token, "refresh_token": new_refresh_token} + except jwt.ExpiredSignatureError: + raise HTTPException(status_code=403, detail="Refresh token expired") + except jwt.PyJWTError: + raise HTTPException(status_code=403, detail="Invalid token") + + +### 👤 USER MANAGEMENT ### +@router.get("/users/me") +async def read_users_me(token: str = Depends(oauth2_scheme)): + """Retrieve current user information based on the provided JWT token""" + payload = jwt.decode(token, SECRET_KEY, algorithms=["HS256"]) + user = await db_client.app_users.find_one({"user_id": payload["sub"]}) + return user + + +@router.get("/users/sessions") +async def get_sessions(token: str = Depends(oauth2_scheme)): + """Retrieve all active sessions of the current user""" + payload = jwt.decode(token, SECRET_KEY, algorithms=["HS256"]) + sessions = await db_client.app_tokens.find({"user_id": payload["sub"]}).to_list(None) + return [{"device_id": s["device_id"], "expires_at": s["expires_at"]} for s in sessions] + + +@router.post("/logout") +async def logout(token: str): + """Invalidate the refresh token for a specific device""" + await db_client.app_tokens.delete_one({"refresh_token": token}) + return {"message": "Successfully logged out"} diff --git a/utils/utils.py b/utils/utils.py index 3f7ed2c4..b41a19f7 100644 --- a/utils/utils.py +++ b/utils/utils.py @@ -101,6 +101,10 @@ def __init__(self): self.player_capital_lb: collection_class = self.leaderboards.capital_player self.clan_capital_lb: collection_class = self.leaderboards.capital_clan + self.app = client.get_database("app") + self.app_users: collection_class = self.app.users + self.app_tokens: collection_class = self.app.tokens + db_client = DBClient() From 32c8f37711552226d99f79779b8d70c62e04b989 Mon Sep 17 00:00:00 2001 From: Destinea Date: Mon, 10 Feb 2025 21:19:25 +0100 Subject: [PATCH 004/174] feat: dev build --- .../{main.yml => dev-image-builder.yml} | 22 +- .github/workflows/prod-image-builder.yml | 47 +++++ Dockerfile | 21 +- main.py | 9 +- requirements.txt | 3 +- routers/app/accounts.py | 197 ++++++++++++++++++ utils/config.py | 13 +- 7 files changed, 291 insertions(+), 21 deletions(-) rename .github/workflows/{main.yml => dev-image-builder.yml} (54%) create mode 100644 .github/workflows/prod-image-builder.yml create mode 100644 routers/app/accounts.py diff --git a/.github/workflows/main.yml b/.github/workflows/dev-image-builder.yml similarity index 54% rename from .github/workflows/main.yml rename to .github/workflows/dev-image-builder.yml index 793c76ac..97c0406a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/dev-image-builder.yml @@ -1,6 +1,13 @@ -name: Image Builder +name: Dev API Image Builder on: + pull_request: + branches: + - master + types: + - opened + - synchronize + - reopened workflow_dispatch: jobs: @@ -10,8 +17,6 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v3 - with: - ref: ${{ github.ref_name }} # Automatically checkout the triggering branch - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 @@ -23,9 +28,10 @@ jobs: username: ${{ github.actor }} password: ${{ secrets.GH_TOKEN }} - - name: Sanitize branch name - id: sanitize - run: echo "SANITIZED_BRANCH=$(echo '${{ github.ref_name }}' | sed 's/[^a-zA-Z0-9_.-]/-/g')" >> $GITHUB_ENV + - name: Set environment variables + run: | + echo "APP_ENV=development" >> $GITHUB_ENV + echo "IMAGE_NAME=ghcr.io/clashkinginc/clashkingapi-dev" >> $GITHUB_ENV - name: Build and push Docker image uses: docker/build-push-action@v5 @@ -33,4 +39,6 @@ jobs: context: . push: true tags: | - ghcr.io/clashkinginc/clashkingapi:${{ github.ref_name == 'master' && 'latest' || env.SANITIZED_BRANCH }} \ No newline at end of file + ${{ env.IMAGE_NAME }}:${{ github.event.pull_request.head.ref }} + ${{ env.IMAGE_NAME }}:latest + build-args: APP_ENV=${{ env.APP_ENV }} diff --git a/.github/workflows/prod-image-builder.yml b/.github/workflows/prod-image-builder.yml new file mode 100644 index 00000000..f18b34cf --- /dev/null +++ b/.github/workflows/prod-image-builder.yml @@ -0,0 +1,47 @@ +name: Production API Image Builder + +on: + push: + branches: + - master # Trigger only on push to master + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + with: + ref: ${{ github.ref_name }} # Automatically checkout the triggering branch + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to GitHub Container Registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GH_TOKEN }} + + - name: Set environment variables + run: | + echo "APP_ENV=production" >> $GITHUB_ENV + echo "IMAGE_NAME=ghcr.io/clashkinginc/clashkingapi" >> $GITHUB_ENV + + - name: Build and push Docker image + uses: docker/build-push-action@v5 + with: + context: . + push: true + tags: | + ${{ env.IMAGE_NAME }}:latest + ${{ env.IMAGE_NAME }}:${{ github.sha }} + build-args: APP_ENV=${{ env.APP_ENV }} + + - name: Verify pushed images + run: | + echo "Pushed image: ${{ env.IMAGE_NAME }}:latest" + echo "Pushed image: ${{ env.IMAGE_NAME }}:${{ github.sha }}" diff --git a/Dockerfile b/Dockerfile index f26c037f..26e09892 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,19 +1,30 @@ +# Use the official Python 3.11 image FROM python:3.11-bookworm -LABEL org.opencontainers.image.source=https://github.com/ClashKingInc/ClashKingAPI +# Metadata labels for the image +LABEL org.opencontainers.image.source="https://github.com/ClashKingInc/ClashKingAPI" LABEL org.opencontainers.image.description="Image for the ClashKing API" -LABEL org.opencontainers.image.licenses=MIT +LABEL org.opencontainers.image.licenses="MIT" +# Install system dependencies RUN apt-get update && apt-get install -y libsnappy-dev +# Set the working directory WORKDIR /app +# Copy and install Python dependencies COPY requirements.txt . - RUN pip install --no-cache-dir -r requirements.txt +# Copy application files COPY . . -EXPOSE 6000 +# Define the environment variable for app mode (default to development) +ARG APP_ENV=development +ENV APP_ENV=${APP_ENV} + +# Expose the ports used by different environments +EXPOSE 8000 8073 8010 -CMD ["python", "main.py"] \ No newline at end of file +# Dynamically set the correct port based on APP_ENV +CMD ["sh", "-c", "python main.py --port=$( [ \"$APP_ENV\" = \"development\" ] && echo 8073 || ( [ \"$APP_ENV\" = \"local\" ] && echo 8000 || echo 8010 ) )"] diff --git a/main.py b/main.py index 21b1efae..cf8cd95f 100644 --- a/main.py +++ b/main.py @@ -69,8 +69,8 @@ async def startup_event(): @app.get("/", include_in_schema=False, response_class=RedirectResponse) async def docs(): - if config.is_local: - return RedirectResponse(f"http://localhost/docs") + if config.IS_LOCAL: + return RedirectResponse(f"http://localhost:8000/docs") return RedirectResponse(f"https://api.clashk.ing/docs") @app.get("/openapi/private", include_in_schema=False) @@ -122,10 +122,7 @@ def custom_openapi(): app.openapi = custom_openapi if __name__ == "__main__": - if config.is_local: - uvicorn.run("main:app", host="localhost", port=8000, reload=True) - else: - uvicorn.run("main:app", host="0.0.0.0", port=8010) + uvicorn.run("main:app", host=config.HOST, port=config.PORT, reload=config.RELOAD) diff --git a/requirements.txt b/requirements.txt index db57d8bf..9b86d2f3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -23,9 +23,10 @@ python-dateutil==2.8.2 python-snappy==0.6.1 pytz==2023.4 redis==5.0.1 +requests==2.32.3 slowapi==0.1.8 starlette==0.37.2 ujson==5.9.0 uvloop==0.19.0 uvicorn==0.30.1 - +numpy==1.26.4 \ No newline at end of file diff --git a/routers/app/accounts.py b/routers/app/accounts.py new file mode 100644 index 00000000..a08f74a1 --- /dev/null +++ b/routers/app/accounts.py @@ -0,0 +1,197 @@ +import os +import jwt +import requests +import pendulum as pend +import re +from dotenv import load_dotenv +from fastapi import Depends, HTTPException +from fastapi.security import OAuth2PasswordBearer +from pydantic import BaseModel +from utils.utils import db_client +from fastapi import APIRouter + +# Load environment variables +load_dotenv() + +# Initialize FastAPI app +oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token") + +router = APIRouter(tags=["Authentication"], include_in_schema=True) + +# Environment variables +SECRET_KEY = os.getenv('SECRET_KEY') +DISCORD_CLIENT_ID = os.getenv('DISCORD_CLIENT_ID') +DISCORD_CLIENT_SECRET = os.getenv('DISCORD_CLIENT_SECRET') +DISCORD_REDIRECT_URI = os.getenv('DISCORD_REDIRECT_URI') + + +class Token(BaseModel): + access_token: str + refresh_token: str + + +async def is_coc_tag_valid(coc_tag: str) -> bool: + """Check if the Clash of Clans account exists using the API.""" + + # Format the tag correctly for the API request + coc_tag = coc_tag.replace("#", "%23") + + url = f"https://proxy.clashk.ing/v1/players/{coc_tag}" + response = requests.get(url) + + return response.status_code == 200 # Returns True if the account exists + + +async def verify_coc_ownership(coc_tag: str, player_token: str) -> bool: + """Verify if the provided player token matches the given Clash of Clans account.""" + + # Format the tag correctly for the API request + coc_tag = coc_tag.replace("#", "%23") + + url = f"https://proxy.clashk.ing/v1/players/{coc_tag}/verifytoken" + response = requests.post(url, json={"token": player_token}) + + return response.status_code == 200 # Returns True if the ownership is verified + + +@router.post("/users/add-coc-account") +async def add_coc_account(coc_tag: str, token: str = Depends(oauth2_scheme)): + """Associate a Clash of Clans account (tag) with a user WITHOUT ownership verification.""" + + # Verify user authentication + try: + payload = jwt.decode(token, SECRET_KEY, algorithms=["HS256"]) + user_id = payload["sub"] + except jwt.PyJWTError: + raise HTTPException(status_code=403, detail="Invalid token") + + # Validate Clash of Clans tag format + if not re.match(r"^#?[A-Z0-9]{5,12}$", coc_tag): + raise HTTPException(status_code=400, detail="Invalid Clash of Clans tag format") + + # Ensure the tag starts with "#" + if not coc_tag.startswith("#"): + coc_tag = f"#{coc_tag}" + + # Check if the Clash of Clans account exists + if not await is_coc_tag_valid(coc_tag): + raise HTTPException(status_code=404, detail="Clash of Clans account does not exist") + + # Fetch the user document + user = await db_client.user_clash_accounts.find_one({"user_id": user_id}) + + if user: + # Check if the tag is already in the user's list + if any(account["coc_tag"] == coc_tag for account in user["coc_accounts"]): + raise HTTPException(status_code=400, detail="This Clash of Clans account is already linked to your profile") + + # Add the new tag + await db_client.user_clash_accounts.update_one( + {"user_id": user_id}, + {"$push": {"coc_accounts": {"coc_tag": coc_tag, "added_at": pend.now()}}} + ) + else: + # Create a new document if the user does not exist + await db_client.user_clash_accounts.insert_one({ + "user_id": user_id, + "coc_accounts": [{"coc_tag": coc_tag, "added_at": pend.now()}] + }) + + return {"message": "Clash of Clans account linked successfully"} + + +@router.post("/users/add-coc-account-with-token") +async def add_coc_account_with_verification(coc_tag: str, player_token: str, token: str = Depends(oauth2_scheme)): + """Associate a Clash of Clans account with a user WITH ownership verification.""" + + # Verify user authentication + try: + payload = jwt.decode(token, SECRET_KEY, algorithms=["HS256"]) + user_id = payload["sub"] + except jwt.PyJWTError: + raise HTTPException(status_code=403, detail="Invalid token") + + # Validate Clash of Clans tag format + if not re.match(r"^#?[A-Z0-9]{5,12}$", coc_tag): + raise HTTPException(status_code=400, detail="Invalid Clash of Clans tag format") + + # Ensure the tag starts with "#" + if not coc_tag.startswith("#"): + coc_tag = f"#{coc_tag}" + + # Check if the Clash of Clans account exists + if not await is_coc_tag_valid(coc_tag): + raise HTTPException(status_code=404, detail="Clash of Clans account does not exist") + + # Verify account ownership + if not await verify_coc_ownership(coc_tag, player_token): + raise HTTPException(status_code=403, detail="Invalid player token. You do not own this account.") + + # Fetch the user document + user = await db_client.user_clash_accounts.find_one({"user_id": user_id}) + + if user: + # Check if the tag is already in the user's list + if any(account["coc_tag"] == coc_tag for account in user["coc_accounts"]): + raise HTTPException(status_code=400, detail="This Clash of Clans account is already linked to your profile") + + # Add the new tag + await db_client.user_clash_accounts.update_one( + {"user_id": user_id}, + {"$push": {"coc_accounts": {"coc_tag": coc_tag, "added_at": pend.now()}}} + ) + else: + # Create a new document if the user does not exist + await db_client.user_clash_accounts.insert_one({ + "user_id": user_id, + "coc_accounts": [{"coc_tag": coc_tag, "added_at": pend.now()}] + }) + + return {"message": "Clash of Clans account linked successfully with ownership verification"} + + +@router.get("/users/coc-accounts") +async def get_coc_accounts(token: str = Depends(oauth2_scheme)): + """Retrieve all Clash of Clans accounts linked to a user.""" + + # Verify authentication + try: + payload = jwt.decode(token, SECRET_KEY, algorithms=["HS256"]) + user_id = payload["sub"] + except jwt.PyJWTError: + raise HTTPException(status_code=403, detail="Invalid token") + + # Fetch the user document + user = await db_client.user_clash_accounts.find_one({"user_id": user_id}) + + if not user: + return {"coc_accounts": []} + + return {"coc_accounts": user["coc_accounts"]} + + +@router.delete("/users/remove-coc-account") +async def remove_coc_account(coc_tag: str, token: str = Depends(oauth2_scheme)): + """Remove a specific Clash of Clans account linked to a user.""" + + # Verify authentication + try: + payload = jwt.decode(token, SECRET_KEY, algorithms=["HS256"]) + user_id = payload["sub"] + except jwt.PyJWTError: + raise HTTPException(status_code=403, detail="Invalid token") + + # Ensure the tag starts with "#" + if not coc_tag.startswith("#"): + coc_tag = f"#{coc_tag}" + + # Remove the tag from the user's document + result = await db_client.user_clash_accounts.update_one( + {"user_id": user_id}, + {"$pull": {"coc_accounts": {"coc_tag": coc_tag}}} + ) + + if result.modified_count == 0: + raise HTTPException(status_code=404, detail="Clash of Clans account not found or not linked to your profile") + + return {"message": "Clash of Clans account unlinked successfully"} diff --git a/utils/config.py b/utils/config.py index 5923e9c4..0908ce34 100644 --- a/utils/config.py +++ b/utils/config.py @@ -1,3 +1,4 @@ +import os from os import getenv from dotenv import load_dotenv from dataclasses import dataclass @@ -25,8 +26,16 @@ class Config: internal_api_token = getenv("INTERNAL_API_TOKEN") - is_local = (getenv("LOCAL") == "TRUE") - client_secret = getenv("CLIENT_SECRET") bot_token = getenv("BOT_TOKEN") + ENV = os.getenv("APP_ENV", "local") + IS_LOCAL = ENV == "local" + IS_DEV = ENV == "development" + IS_PROD = ENV == "production" + + HOST = "localhost" if IS_LOCAL else "0.0.0.0" + PORT = 8000 if IS_LOCAL else (8073 if IS_DEV else 8010) + RELOAD = IS_LOCAL or IS_DEV + + From 91f1dae3cd0af569ab9642ccca65d62cea2b9858 Mon Sep 17 00:00:00 2001 From: Destinea Date: Mon, 10 Feb 2025 21:21:39 +0100 Subject: [PATCH 005/174] fix: Sanitized branch name --- .github/workflows/dev-image-builder.yml | 7 ++++++- .github/workflows/prod-image-builder.yml | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/workflows/dev-image-builder.yml b/.github/workflows/dev-image-builder.yml index 97c0406a..0e3a425a 100644 --- a/.github/workflows/dev-image-builder.yml +++ b/.github/workflows/dev-image-builder.yml @@ -33,12 +33,17 @@ jobs: echo "APP_ENV=development" >> $GITHUB_ENV echo "IMAGE_NAME=ghcr.io/clashkinginc/clashkingapi-dev" >> $GITHUB_ENV + - name: Sanitize branch name + id: sanitize + run: echo "SANITIZED_BRANCH=$(echo '${{ github.event.pull_request.head.ref }}' | sed 's/[^a-zA-Z0-9_.-]/-/g')" >> $GITHUB_ENV + - name: Build and push Docker image uses: docker/build-push-action@v5 with: context: . push: true tags: | - ${{ env.IMAGE_NAME }}:${{ github.event.pull_request.head.ref }} + ${{ env.IMAGE_NAME }}:${{ env.SANITIZED_BRANCH }} ${{ env.IMAGE_NAME }}:latest build-args: APP_ENV=${{ env.APP_ENV }} + diff --git a/.github/workflows/prod-image-builder.yml b/.github/workflows/prod-image-builder.yml index f18b34cf..e049c2fc 100644 --- a/.github/workflows/prod-image-builder.yml +++ b/.github/workflows/prod-image-builder.yml @@ -31,6 +31,10 @@ jobs: echo "APP_ENV=production" >> $GITHUB_ENV echo "IMAGE_NAME=ghcr.io/clashkinginc/clashkingapi" >> $GITHUB_ENV + - name: Sanitize branch name + id: sanitize + run: echo "SANITIZED_BRANCH=$(echo '${{ github.event.pull_request.head.ref }}' | sed 's/[^a-zA-Z0-9_.-]/-/g')" >> $GITHUB_ENV + - name: Build and push Docker image uses: docker/build-push-action@v5 with: From 8b6a79b8ba96914fde7e3813e246b87d0c6c0bc5 Mon Sep 17 00:00:00 2001 From: Destinea Date: Mon, 10 Feb 2025 21:53:51 +0100 Subject: [PATCH 006/174] fix: dev redirection --- main.py | 2 ++ routers/app/auth.py | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/main.py b/main.py index cf8cd95f..30858fb1 100644 --- a/main.py +++ b/main.py @@ -71,6 +71,8 @@ async def startup_event(): async def docs(): if config.IS_LOCAL: return RedirectResponse(f"http://localhost:8000/docs") + if config.IS_DEV: + return RedirectResponse(f"https://dev-api.clashk.ing/docs") return RedirectResponse(f"https://api.clashk.ing/docs") @app.get("/openapi/private", include_in_schema=False) diff --git a/routers/app/auth.py b/routers/app/auth.py index 241ba8e8..97bbe0fe 100644 --- a/routers/app/auth.py +++ b/routers/app/auth.py @@ -16,7 +16,7 @@ # Initialize FastAPI app oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token") -router = APIRouter(tags=["Authentication"], include_in_schema=False) +router = APIRouter(tags=["Authentication"], include_in_schema=True) # Password hashing setup pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") From 1b9b02207d702c137551f097215d15ee958d31bf Mon Sep 17 00:00:00 2001 From: Destinea Date: Sat, 15 Feb 2025 16:54:31 +0100 Subject: [PATCH 007/174] fix: code verifier in auth --- Dockerfile | 2 +- routers/app/auth.py | 29 +++++++++++++---------------- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/Dockerfile b/Dockerfile index 26e09892..39991f1d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -24,7 +24,7 @@ ARG APP_ENV=development ENV APP_ENV=${APP_ENV} # Expose the ports used by different environments -EXPOSE 8000 8073 8010 +EXPOSE 6000 8073 8010 # Dynamically set the correct port based on APP_ENV CMD ["sh", "-c", "python main.py --port=$( [ \"$APP_ENV\" = \"development\" ] && echo 8073 || ( [ \"$APP_ENV\" = \"local\" ] && echo 8000 || echo 8010 ) )"] diff --git a/routers/app/auth.py b/routers/app/auth.py index 97bbe0fe..2914580c 100644 --- a/routers/app/auth.py +++ b/routers/app/auth.py @@ -99,29 +99,31 @@ async def auth_clashking(email: str, password: str, request: Request): @router.post("/auth/discord", response_model=Token) -async def auth_discord(code: str): - """Authenticate user via Discord OAuth2 and return JWT tokens""" - if not code: - raise HTTPException(status_code=400, detail="Missing Discord code") +async def auth_discord(request: Request): + """Authenticate user via Discord OAuth2 and return JWT tokens using PKCE""" + form = await request.form() + code = form.get("code") + code_verifier = form.get("code_verifier") + + if not code or not code_verifier: + raise HTTPException(status_code=400, detail="Missing Discord code or code verifier") token_url = "https://discord.com/api/oauth2/token" token_data = { "client_id": DISCORD_CLIENT_ID, - "client_secret": DISCORD_CLIENT_SECRET, "code": code, "grant_type": "authorization_code", "redirect_uri": DISCORD_REDIRECT_URI, - "scope": "identify" + "code_verifier": code_verifier } headers = {"Content-Type": "application/x-www-form-urlencoded"} - token_response = requests.post(token_url, data=token_data, headers=headers) + token_response = requests.post(token_url, data=token_data, headers=headers) if token_response.status_code != 200: raise HTTPException(status_code=500, detail=f"Error during Discord authentication: {token_response.json()}") access_token = token_response.json().get("access_token") - user_response = requests.get("https://discord.com/api/users/@me", - headers={"Authorization": f"Bearer {access_token}"}) + user_response = requests.get("https://discord.com/api/users/@me", headers={"Authorization": f"Bearer {access_token}"}) if user_response.status_code != 200: raise HTTPException(status_code=500, detail="Error retrieving user info") @@ -129,16 +131,11 @@ async def auth_discord(code: str): user_data = user_response.json() user_id = user_data["id"] - # Store user in database if not exists if not await db_client.app_users.find_one({"user_id": user_id}): - await db_client.app_users.insert_one( - {"user_id": user_id, "username": user_data["username"], "account_type": "discord", "created_at": pend.now()} - ) + await db_client.app_users.insert_one({"user_id": user_id, "username": user_data["username"], "account_type": "discord", "created_at": pend.now()}) refresh_token = generate_refresh_token(user_id, "discord") - await db_client.app_tokens.insert_one( - {"user_id": user_id, "refresh_token": refresh_token, "expires_at": pend.now().add(days=90)} - ) + await db_client.app_tokens.insert_one({"user_id": user_id, "refresh_token": refresh_token, "expires_at": pend.now().add(days=90)}) return {"access_token": generate_jwt(user_id, "discord"), "refresh_token": refresh_token} From a0886458e4d4d466a3461713b4f7ee2766609197 Mon Sep 17 00:00:00 2001 From: Destinea Date: Sun, 16 Feb 2025 19:27:55 +0100 Subject: [PATCH 008/174] feat: Added encryption --- requirements.txt | 1 + routers/app/auth.py | 381 +++++++++++++++++++++++++++++++++++--------- 2 files changed, 309 insertions(+), 73 deletions(-) diff --git a/requirements.txt b/requirements.txt index 9b86d2f3..11822916 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,7 @@ aiohttp==3.9.3 aiocache==0.12.2 coc.py==3.2.1 +cryptography==44.0.1 bcrypt==4.2.1 diskcache==5.6.3 expiring-dict==1.1.0 diff --git a/routers/app/auth.py b/routers/app/auth.py index 2914580c..c3d99d9d 100644 --- a/routers/app/auth.py +++ b/routers/app/auth.py @@ -3,39 +3,69 @@ import requests import pendulum as pend from dotenv import load_dotenv -from fastapi import FastAPI, Depends, HTTPException, Request +from fastapi import Depends, HTTPException, Request, APIRouter from fastapi.security import OAuth2PasswordBearer from pydantic import BaseModel from utils.utils import db_client from passlib.context import CryptContext -from fastapi import APIRouter +from cryptography.fernet import Fernet +############################ # Load environment variables +############################ load_dotenv() -# Initialize FastAPI app -oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token") - -router = APIRouter(tags=["Authentication"], include_in_schema=True) - -# Password hashing setup -pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") - -# Environment variables +############################ +# Global configuration +############################ SECRET_KEY = os.getenv('SECRET_KEY') REFRESH_SECRET = os.getenv('REFRESH_SECRET') DISCORD_CLIENT_ID = os.getenv('DISCORD_CLIENT_ID') DISCORD_CLIENT_SECRET = os.getenv('DISCORD_CLIENT_SECRET') DISCORD_REDIRECT_URI = os.getenv('DISCORD_REDIRECT_URI') +ENCRYPTION_KEY = os.getenv('ENCRYPTION_KEY') + +# Fernet cipher for encryption/decryption +cipher = Fernet(ENCRYPTION_KEY) + +# Password hashing configuration +pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") + +# OAuth2 scheme +oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token") +# FastAPI router +router = APIRouter(tags=["Authentication"], include_in_schema=True) +############################ +# Data models +############################ class Token(BaseModel): access_token: str refresh_token: str +############################ +# Utility functions +############################ +# Encrypt data (string) using Fernet +async def encrypt_data(data: str) -> str: + return cipher.encrypt(data.encode()).decode() + +# Decrypt data (string) using Fernet +async def decrypt_data(data: str) -> str: + return cipher.decrypt(data.encode()).decode() + +# Hash a password using bcrypt +def hash_password(password: str) -> str: + return pwd_context.hash(password) + +# Verify a plaintext password against a hashed one +def verify_password(plain_password: str, hashed_password: str) -> bool: + return pwd_context.verify(plain_password, hashed_password) + +# Generate a short-lived JWT (1 hour) def generate_jwt(user_id: str, user_type: str): - """Generate a JWT valid for 1 hour""" payload = { "sub": user_id, "type": user_type, @@ -43,70 +73,191 @@ def generate_jwt(user_id: str, user_type: str): } return jwt.encode(payload, SECRET_KEY, algorithm="HS256") - +# Generate a long-lived refresh token (90 days) def generate_refresh_token(user_id: str, device_id: str): - """Generate a refresh token valid for 90 days""" - payload = {"sub": user_id, "device": device_id, "exp": pend.now().add(days=90).int_timestamp} + payload = { + "sub": user_id, + "device": device_id, + "exp": pend.now().add(days=90).int_timestamp + } return jwt.encode(payload, REFRESH_SECRET, algorithm="HS256") +############################ +# JWT blacklist management +############################ +jwt_blacklist = set() + +def add_to_blacklist(token: str): + jwt_blacklist.add(token) + +def is_blacklisted(token: str) -> bool: + return token in jwt_blacklist + +############################ +# Retrieve current user and validate token +############################ +async def get_current_user(token: str = Depends(oauth2_scheme)): + """ + This dependency checks whether the token is blacklisted, decodes the JWT, + fetches the user from the database, and returns the user object. + """ + # Check if token is blacklisted + if is_blacklisted(token): + raise HTTPException(status_code=401, detail="Token is blacklisted") + try: + payload = jwt.decode(token, SECRET_KEY, algorithms=["HS256"]) + user_id = payload.get("sub") + if user_id is None: + raise HTTPException(status_code=401, detail="Invalid token") + user = await db_client.app_users.find_one({"user_id": user_id}) + if not user: + raise HTTPException(status_code=404, detail="User not found") + return user + except jwt.ExpiredSignatureError: + raise HTTPException(status_code=401, detail="Token has expired") + except jwt.PyJWTError: + raise HTTPException(status_code=401, detail="Token is invalid") + +############################ +# Device ID validation +############################ +async def validate_device_id(request: Request, user_id: str): + """ + Check whether the X-Device-ID header is provided and belongs to an existing + session for the given user_id. + """ + device_header = request.headers.get("X-Device-ID") + if not device_header: + raise HTTPException(status_code=400, detail="Missing X-Device-ID header") + + sessions = await db_client.app_tokens.find({"user_id": user_id}).to_list(None) + device_ids = [session.get("device_id") for session in sessions] + if device_header not in device_ids: + raise HTTPException(status_code=403, detail="Invalid or unknown device ID") + +############################ +# Endpoints +############################ + +# 1) Refresh Discord token +@router.post("/auth/discord/refresh") +async def refresh_discord_token(request: Request): + """ + This endpoint refreshes a Discord OAuth2 token using the refresh token + and returns a new access token for Discord. + """ + body = await request.json() + encrypted_token = body.get("refresh_token") + if not encrypted_token: + raise HTTPException(status_code=400, detail="Missing refresh token") -def hash_password(password: str) -> str: - """Hash a password using bcrypt""" - return pwd_context.hash(password) + try: + refresh_token_str = await decrypt_data(encrypted_token) + except: + raise HTTPException(status_code=400, detail="Invalid encrypted token") + + token_data = { + "client_id": DISCORD_CLIENT_ID, + "client_secret": DISCORD_CLIENT_SECRET, + "grant_type": "refresh_token", + "refresh_token": refresh_token_str + } + headers = {"Content-Type": "application/x-www-form-urlencoded"} + token_response = requests.post("https://discord.com/api/oauth2/token", data=token_data, headers=headers) + if token_response.status_code != 200: + raise HTTPException( + status_code=500, + detail=f"Failed to refresh Discord token: {token_response.json()}" + ) + return token_response.json() + +# 2) Link Discord account to a ClashKing user +@router.post("/auth/link-discord") +async def link_discord_account(request: Request): + """ + This endpoint links a Discord account to a ClashKing user by storing + the Discord ID in the user's record (encrypted if necessary). + """ + form = await request.form() + user_id = form.get("user_id") + discord_id = form.get("discord_id") + if not user_id or not discord_id: + raise HTTPException(status_code=400, detail="Missing user_id or discord_id") + user = await db_client.app_users.find_one({"user_id": user_id}) + if not user: + raise HTTPException(status_code=404, detail="ClashKing user not found") -def verify_password(plain_password: str, hashed_password: str) -> bool: - """Verify a password against a hashed version""" - return pwd_context.verify(plain_password, hashed_password) + encrypted_discord_id = await encrypt_data(discord_id) + await db_client.app_users.update_one( + {"user_id": user_id}, + {"$set": {"discord_id": encrypted_discord_id}} + ) + return {"message": "Discord account linked successfully"} -### 🔑 AUTHENTICATION ### +# 3) Authenticate ClashKing user @router.post("/auth/clashking", response_model=Token) async def auth_clashking(email: str, password: str, request: Request): - """Authenticate or register a user using ClashKing account""" + """ + This endpoint authenticates a user with ClashKing credentials (email/password). + If the user doesn't exist, a new account is created. Otherwise, the password + is verified. Access and refresh tokens are returned. + """ device_id = request.headers.get("X-Device-ID", "unknown") - user = await db_client.app_users.find_one({"email": email}) + encrypted_email = await encrypt_data(email) + user = await db_client.app_users.find_one({"email": encrypted_email}) if not user: - # If user does not exist, create a new account - hashed_password = hash_password(password) + # Create a new user + hashed_pw = hash_password(password) new_user = { "user_id": str(pend.now().int_timestamp), - "email": email, - "password": hashed_password, + "email": encrypted_email, + "password": hashed_pw, "account_type": "clashking", "created_at": pend.now() } await db_client.app_users.insert_one(new_user) user = new_user - else: - # If user exists, verify the password + # Verify the provided password if not verify_password(password, user["password"]): raise HTTPException(status_code=403, detail="Invalid credentials") - # Generate JWT tokens access_token = generate_jwt(user["user_id"], "clashking") refresh_token = generate_refresh_token(user["user_id"], device_id) - # Store the refresh token in the database, linked to the device - await db_client.app_tokens.insert_one( - {"user_id": user["user_id"], "refresh_token": refresh_token, "device_id": device_id, "expires_at": pend.now().add(days=90)} - ) + # Encrypt the refresh token before storing in DB + encrypted_refresh = await encrypt_data(refresh_token) - return {"access_token": access_token, "refresh_token": refresh_token} + await db_client.app_tokens.insert_one({ + "user_id": user["user_id"], + "refresh_token": encrypted_refresh, + "device_id": device_id, + "expires_at": pend.now().add(days=90) + }) + return { + "access_token": access_token, + "refresh_token": await encrypt_data(refresh_token) + } +# 4) Authenticate via Discord OAuth2 @router.post("/auth/discord", response_model=Token) async def auth_discord(request: Request): - """Authenticate user via Discord OAuth2 and return JWT tokens using PKCE""" + """ + This endpoint handles Discord OAuth2 authentication using authorization code + and PKCE. If the user doesn't exist, a new user record is created using + the Discord ID. + """ form = await request.form() code = form.get("code") code_verifier = form.get("code_verifier") if not code or not code_verifier: - raise HTTPException(status_code=400, detail="Missing Discord code or code verifier") + raise HTTPException(status_code=400, detail="Missing Discord code or code_verifier") token_url = "https://discord.com/api/oauth2/token" token_data = { @@ -120,71 +271,155 @@ async def auth_discord(request: Request): token_response = requests.post(token_url, data=token_data, headers=headers) if token_response.status_code != 200: - raise HTTPException(status_code=500, detail=f"Error during Discord authentication: {token_response.json()}") + raise HTTPException( + status_code=500, + detail=f"Error during Discord authentication: {token_response.json()}" + ) - access_token = token_response.json().get("access_token") - user_response = requests.get("https://discord.com/api/users/@me", headers={"Authorization": f"Bearer {access_token}"}) + access_token_discord = token_response.json().get("access_token") + user_response = requests.get( + "https://discord.com/api/users/@me", + headers={"Authorization": f"Bearer {access_token_discord}"} + ) if user_response.status_code != 200: raise HTTPException(status_code=500, detail="Error retrieving user info") user_data = user_response.json() - user_id = user_data["id"] + discord_user_id = user_data["id"] - if not await db_client.app_users.find_one({"user_id": user_id}): - await db_client.app_users.insert_one({"user_id": user_id, "username": user_data["username"], "account_type": "discord", "created_at": pend.now()}) + # Check if user is already in the DB + existing_user = await db_client.app_users.find_one({"user_id": discord_user_id}) + if not existing_user: + # Optionally encrypt the username + username_enc = await encrypt_data(user_data["username"]) + new_user = { + "user_id": discord_user_id, + "username": username_enc, + "account_type": "discord", + "created_at": pend.now() + } + await db_client.app_users.insert_one(new_user) - refresh_token = generate_refresh_token(user_id, "discord") - await db_client.app_tokens.insert_one({"user_id": user_id, "refresh_token": refresh_token, "expires_at": pend.now().add(days=90)}) + # Create and store refresh token + refresh_token = generate_refresh_token(discord_user_id, "discord") + encrypted_refresh = await encrypt_data(refresh_token) - return {"access_token": generate_jwt(user_id, "discord"), "refresh_token": refresh_token} + await db_client.app_tokens.insert_one({ + "user_id": discord_user_id, + "refresh_token": encrypted_refresh, + "device_id": "discord", + "expires_at": pend.now().add(days=90) + }) + return { + "access_token": generate_jwt(discord_user_id, "discord"), + "refresh_token": await encrypt_data(refresh_token) + } -### 🔄 TOKEN MANAGEMENT ### +# 5) Refresh token: generate a new access token @router.post("/refresh-token", response_model=Token) -async def refresh_token(token: str): - """Refresh the access token using a valid refresh token""" - stored_token = await db_client.app_tokens.find_one({"refresh_token": token}) +async def refresh_token(token: str, request: Request): + """ + This endpoint receives an existing refresh token (encrypted in the DB), + validates it, checks device_id, and issues a new access/refresh token pair. + """ + # Decrypt the user-provided token to compare with the DB + stored_token = await db_client.app_tokens.find_one({"refresh_token": await encrypt_data(token)}) if not stored_token: raise HTTPException(status_code=403, detail="Invalid token") try: payload = jwt.decode(token, REFRESH_SECRET, algorithms=["HS256"]) - new_access_token = generate_jwt(payload["sub"], "clashking") - new_refresh_token = generate_refresh_token(payload["sub"], payload["device"]) + user_id = payload.get("sub") + device_id = payload.get("device") + + # Validate the device_id from the request + await validate_device_id(request, user_id) + new_access_token = generate_jwt(user_id, "clashking") + new_refresh_token = generate_refresh_token(user_id, device_id) + encrypted_new = await encrypt_data(new_refresh_token) + + # Update the stored token in the DB await db_client.app_tokens.update_one( - {"refresh_token": token}, - {"$set": {"refresh_token": new_refresh_token, "expires_at": pend.now().add(days=90)}} + {"refresh_token": stored_token["refresh_token"]}, + {"$set": { + "refresh_token": encrypted_new, + "expires_at": pend.now().add(days=90) + }} ) - return {"access_token": new_access_token, "refresh_token": new_refresh_token} + return { + "access_token": new_access_token, + "refresh_token": await encrypt_data(new_refresh_token) + } + except jwt.ExpiredSignatureError: raise HTTPException(status_code=403, detail="Refresh token expired") except jwt.PyJWTError: raise HTTPException(status_code=403, detail="Invalid token") - -### 👤 USER MANAGEMENT ### +# 6) Get current user info @router.get("/users/me") -async def read_users_me(token: str = Depends(oauth2_scheme)): - """Retrieve current user information based on the provided JWT token""" - payload = jwt.decode(token, SECRET_KEY, algorithms=["HS256"]) - user = await db_client.app_users.find_one({"user_id": payload["sub"]}) - return user - +async def read_users_me(current_user=Depends(get_current_user)): + """ + This endpoint returns the current user's information, decrypting + email and username if available. + """ + decrypted_email = None + if "email" in current_user: + try: + decrypted_email = await decrypt_data(current_user["email"]) + except: + decrypted_email = "(error decrypting email)" + + decrypted_username = None + if "username" in current_user: + try: + decrypted_username = await decrypt_data(current_user["username"]) + except: + decrypted_username = "(error decrypting username)" + + return { + "user_id": current_user["user_id"], + "email": decrypted_email, + "username": decrypted_username, + "account_type": current_user.get("account_type", "unknown"), + "created_at": current_user.get("created_at") + } +# 7) Get all user sessions @router.get("/users/sessions") -async def get_sessions(token: str = Depends(oauth2_scheme)): - """Retrieve all active sessions of the current user""" - payload = jwt.decode(token, SECRET_KEY, algorithms=["HS256"]) - sessions = await db_client.app_tokens.find({"user_id": payload["sub"]}).to_list(None) - return [{"device_id": s["device_id"], "expires_at": s["expires_at"]} for s in sessions] - - +async def get_sessions(current_user=Depends(get_current_user)): + """ + This endpoint fetches all active sessions (refresh tokens) associated + with the current user. + """ + user_id = current_user["user_id"] + sessions = await db_client.app_tokens.find({"user_id": user_id}).to_list(None) + return [ + { + "device_id": s.get("device_id"), + "expires_at": s.get("expires_at") + } for s in sessions + ] + +# 8) Logout (invalidate one session) @router.post("/logout") async def logout(token: str): - """Invalidate the refresh token for a specific device""" - await db_client.app_tokens.delete_one({"refresh_token": token}) + """ + This endpoint invalidates (removes) a refresh token from the DB, + effectively logging out of one session. Optionally, you can also + blacklist the associated access token if you need immediate invalidation. + """ + encrypted_token = await encrypt_data(token) + result = await db_client.app_tokens.delete_one({"refresh_token": encrypted_token}) + if result.deleted_count == 0: + raise HTTPException(status_code=404, detail="No session found for given token") + + # Optionally add the token to the blacklist + # add_to_blacklist(token) + return {"message": "Successfully logged out"} From 954ac68c239664d66af687c95980cd5f155ebecb Mon Sep 17 00:00:00 2001 From: Destinea Date: Sun, 16 Feb 2025 19:45:51 +0100 Subject: [PATCH 009/174] feat: Added Discord proxy --- routers/app/auth.py | 150 +++++++++++++++++++++++++++++++++----------- 1 file changed, 114 insertions(+), 36 deletions(-) diff --git a/routers/app/auth.py b/routers/app/auth.py index c3d99d9d..6a011c2b 100644 --- a/routers/app/auth.py +++ b/routers/app/auth.py @@ -139,38 +139,6 @@ async def validate_device_id(request: Request, user_id: str): # Endpoints ############################ -# 1) Refresh Discord token -@router.post("/auth/discord/refresh") -async def refresh_discord_token(request: Request): - """ - This endpoint refreshes a Discord OAuth2 token using the refresh token - and returns a new access token for Discord. - """ - body = await request.json() - encrypted_token = body.get("refresh_token") - if not encrypted_token: - raise HTTPException(status_code=400, detail="Missing refresh token") - - try: - refresh_token_str = await decrypt_data(encrypted_token) - except: - raise HTTPException(status_code=400, detail="Invalid encrypted token") - - token_data = { - "client_id": DISCORD_CLIENT_ID, - "client_secret": DISCORD_CLIENT_SECRET, - "grant_type": "refresh_token", - "refresh_token": refresh_token_str - } - headers = {"Content-Type": "application/x-www-form-urlencoded"} - token_response = requests.post("https://discord.com/api/oauth2/token", data=token_data, headers=headers) - if token_response.status_code != 200: - raise HTTPException( - status_code=500, - detail=f"Failed to refresh Discord token: {token_response.json()}" - ) - return token_response.json() - # 2) Link Discord account to a ClashKing user @router.post("/auth/link-discord") async def link_discord_account(request: Request): @@ -244,7 +212,6 @@ async def auth_clashking(email: str, password: str, request: Request): "refresh_token": await encrypt_data(refresh_token) } -# 4) Authenticate via Discord OAuth2 @router.post("/auth/discord", response_model=Token) async def auth_discord(request: Request): """ @@ -259,6 +226,7 @@ async def auth_discord(request: Request): if not code or not code_verifier: raise HTTPException(status_code=400, detail="Missing Discord code or code_verifier") + # Step 1: Exchange code for Discord's token token_url = "https://discord.com/api/oauth2/token" token_data = { "client_id": DISCORD_CLIENT_ID, @@ -276,7 +244,13 @@ async def auth_discord(request: Request): detail=f"Error during Discord authentication: {token_response.json()}" ) - access_token_discord = token_response.json().get("access_token") + # Extract the tokens from Discord response + discord_data = token_response.json() + access_token_discord = discord_data.get("access_token") + refresh_token_discord = discord_data.get("refresh_token") # might be null + expires_in = discord_data.get("expires_in") # in seconds, e.g. 604800 + + # Step 2: Get user info from Discord user_response = requests.get( "https://discord.com/api/users/@me", headers={"Authorization": f"Bearer {access_token_discord}"} @@ -288,7 +262,7 @@ async def auth_discord(request: Request): user_data = user_response.json() discord_user_id = user_data["id"] - # Check if user is already in the DB + # Step 3: Check if user exists in DB existing_user = await db_client.app_users.find_one({"user_id": discord_user_id}) if not existing_user: # Optionally encrypt the username @@ -301,7 +275,29 @@ async def auth_discord(request: Request): } await db_client.app_users.insert_one(new_user) - # Create and store refresh token + # Step 4: Store the Discord access_token + refresh_token in DB (encrypted) + # We can store them in the same app_users collection or a separate table. Example: + encrypted_discord_access = await encrypt_data(access_token_discord) + encrypted_discord_refresh = None + if refresh_token_discord: + encrypted_discord_refresh = await encrypt_data(refresh_token_discord) + + # Update the user record with Discord tokens + # or store them in another collection named 'discord_tokens' + await db_client.app_users.update_one( + {"user_id": discord_user_id}, + { + "$set": { + "discord_access_token": encrypted_discord_access, + "discord_refresh_token": encrypted_discord_refresh, + "discord_expires_in": expires_in, + "updated_at": pend.now() + } + } + ) + + # Step 5: Create a ClashKing refresh token for user + # (the user can now use your own JWT to talk to your app) refresh_token = generate_refresh_token(discord_user_id, "discord") encrypted_refresh = await encrypt_data(refresh_token) @@ -312,6 +308,7 @@ async def auth_discord(request: Request): "expires_at": pend.now().add(days=90) }) + # Step 6: Return your own JWT to the client return { "access_token": generate_jwt(discord_user_id, "discord"), "refresh_token": await encrypt_data(refresh_token) @@ -423,3 +420,84 @@ async def logout(token: str): # add_to_blacklist(token) return {"message": "Successfully logged out"} + +@router.get("/discord/me") +async def get_discord_profile(current_user=Depends(get_current_user)): + user_id = current_user["user_id"] + + # Retrieve the stored Discord tokens + user_record = await db_client.app_users.find_one({"user_id": user_id}) + if not user_record or "discord_access_token" not in user_record: + raise HTTPException(status_code=404, detail="No Discord token found") + + # Decrypt the access token + discord_access_token = await decrypt_data(user_record["discord_access_token"]) + + # 1) Tenter d'appeler l'API Discord + response = requests.get( + "https://discord.com/api/users/@me", + headers={"Authorization": f"Bearer {discord_access_token}"} + ) + + # 2) Si le token Discord est expiré (401), on tente un refresh + if response.status_code == 401: + if "discord_refresh_token" not in user_record or not user_record["discord_refresh_token"]: + raise HTTPException(status_code=401, detail="No Discord refresh token stored") + + # On tente de rafraîchir le token + try: + new_discord_data = refresh_discord_access_token(user_record["discord_refresh_token"]) + except Exception as e: + raise HTTPException(status_code=500, detail=f"Error refreshing Discord token: {e}") + + # On met à jour la base avec les nouveaux tokens + new_access = new_discord_data["access_token"] + new_refresh = new_discord_data.get("refresh_token") # peut être None + new_expires_in = new_discord_data.get("expires_in") + + encrypted_discord_access = await encrypt_data(new_access) + encrypted_discord_refresh = await encrypt_data(new_refresh) if new_refresh else None + + await db_client.app_users.update_one( + {"user_id": user_id}, + { + "$set": { + "discord_access_token": encrypted_discord_access, + "discord_refresh_token": encrypted_discord_refresh, + "discord_expires_in": new_expires_in, + "updated_at": pend.now() + } + } + ) + + # On refait l'appel à Discord avec le nouveau token + response = requests.get( + "https://discord.com/api/users/@me", + headers={"Authorization": f"Bearer {new_access}"} + ) + + if response.status_code != 200: + raise HTTPException( + status_code=500, + detail=f"Error from Discord: {response.json()}" + ) + + return response.json() + +def refresh_discord_access_token(encrypted_refresh_token_discord: str) -> dict: + # 1) decrypt the refresh token + refresh_token_str = decrypt_data(encrypted_refresh_token_discord) + + data = { + "client_id": DISCORD_CLIENT_ID, + "client_secret": DISCORD_CLIENT_SECRET, + "grant_type": "refresh_token", + "refresh_token": refresh_token_str + } + headers = {"Content-Type": "application/x-www-form-urlencoded"} + + token_response = requests.post("https://discord.com/api/oauth2/token", data=data, headers=headers) + if token_response.status_code != 200: + raise Exception(f"Unable to refresh Discord token: {token_response.json()}") + + return token_response.json() \ No newline at end of file From 6d9171376b4fb5e9556932ca46b13dcfe210b7fc Mon Sep 17 00:00:00 2001 From: Destinea Date: Sun, 16 Feb 2025 21:14:20 +0100 Subject: [PATCH 010/174] feat: Get Discord User infos --- routers/app/auth.py | 44 ++++++++++++++++++++++++++++++++++++++------ 1 file changed, 38 insertions(+), 6 deletions(-) diff --git a/routers/app/auth.py b/routers/app/auth.py index 6a011c2b..5da2de35 100644 --- a/routers/app/auth.py +++ b/routers/app/auth.py @@ -99,25 +99,57 @@ def is_blacklisted(token: str) -> bool: async def get_current_user(token: str = Depends(oauth2_scheme)): """ This dependency checks whether the token is blacklisted, decodes the JWT, - fetches the user from the database, and returns the user object. + fetches the user from the database, and returns a user object or a dict + contenant le profil Discord temps réel si le compte est 'discord'. """ - # Check if token is blacklisted + # Check if the token is blacklisted if is_blacklisted(token): raise HTTPException(status_code=401, detail="Token is blacklisted") + + # Decode the JWT token try: payload = jwt.decode(token, SECRET_KEY, algorithms=["HS256"]) user_id = payload.get("sub") if user_id is None: raise HTTPException(status_code=401, detail="Invalid token") - user = await db_client.app_users.find_one({"user_id": user_id}) - if not user: - raise HTTPException(status_code=404, detail="User not found") - return user except jwt.ExpiredSignatureError: raise HTTPException(status_code=401, detail="Token has expired") except jwt.PyJWTError: raise HTTPException(status_code=401, detail="Token is invalid") + # Load the user from the database + current_user = await db_client.app_users.find_one({"user_id": user_id}) + if not current_user: + raise HTTPException( + status_code=404, + detail=f"User not found: {user_id}" + ) + + # If it's a Discord account, fetch the real-time profile + if current_user.get("account_type") == "discord": + try: + discord_access = await decrypt_data(current_user["discord_access_token"]) + response = requests.get( + "https://discord.com/api/users/@me", + headers={"Authorization": f"Bearer {discord_access}"} + ) + if response.status_code == 200: + discord_data = response.json() + return { + "user_id": current_user["user_id"], + "discord_username": discord_data["username"], + "avatar_url": f"https://cdn.discordapp.com/avatars/{discord_data['id']}/{discord_data['avatar']}.png", + } + else: + # Invalidate the token if the Discord profile is not accessible + raise HTTPException(status_code=500, detail="Error from Discord API") + except Exception as e: + raise HTTPException(status_code=500, detail=f"Error retrieving Discord profile: {str(e)}") + + # If it's a ClashKing account, return the user object + return current_user + + ############################ # Device ID validation ############################ From 0850e6e1c16591894a1dbed962044a2455b32e7b Mon Sep 17 00:00:00 2001 From: MagicTheDev Date: Sun, 16 Feb 2025 14:26:18 -0600 Subject: [PATCH 011/174] feat: v2 endpoints --- routers/v2/location/endpoints.py | 28 ++++++++++++++ routers/v2/location/models.py | 5 +++ routers/v2/server/endpoints.py | 65 ++++++++++++++++++++++++++++++++ routers/v2/server/models.py | 10 +++++ utils/utils.py | 3 ++ 5 files changed, 111 insertions(+) create mode 100644 routers/v2/location/endpoints.py create mode 100644 routers/v2/location/models.py create mode 100644 routers/v2/server/endpoints.py create mode 100644 routers/v2/server/models.py diff --git a/routers/v2/location/endpoints.py b/routers/v2/location/endpoints.py new file mode 100644 index 00000000..c1fb093b --- /dev/null +++ b/routers/v2/location/endpoints.py @@ -0,0 +1,28 @@ + +import pendulum as pend +from fastapi import HTTPException +from fastapi import APIRouter, Query, Request +from typing import Annotated +from utils.utils import fix_tag, remove_id_fields, check_authentication +from utils.database import MongoClient as mongo +from routers.v2.location.models import PlayerTagsRequest + +router = APIRouter(prefix="/v2",tags=["Location"], include_in_schema=True) + + +@router.post("/location/players", + name="Get locations for a list of players") +async def location_list(request: Request, body: PlayerTagsRequest): + if not body.player_tags: + raise HTTPException(status_code=400, detail="player_tags cannot be empty") + + location_info = await mongo.leaderboard_db.find( + {'tag': {'$in': body.player_tags}}, + {'_id': 0, 'tag': 1, 'country_name': 1, 'country_code': 1} + ).to_list(length=None) + + return {"items": remove_id_fields(location_info)} + + + + diff --git a/routers/v2/location/models.py b/routers/v2/location/models.py new file mode 100644 index 00000000..e5e571ae --- /dev/null +++ b/routers/v2/location/models.py @@ -0,0 +1,5 @@ +from pydantic import BaseModel +from typing import List + +class PlayerTagsRequest(BaseModel): + player_tags: List[str] \ No newline at end of file diff --git a/routers/v2/server/endpoints.py b/routers/v2/server/endpoints.py new file mode 100644 index 00000000..5c9141c6 --- /dev/null +++ b/routers/v2/server/endpoints.py @@ -0,0 +1,65 @@ + +import pendulum as pend +from fastapi import HTTPException +from fastapi import APIRouter, Query, Request +from typing import Annotated +from utils.utils import fix_tag, remove_id_fields, check_authentication +from utils.database import MongoClient as mongo + + +router = APIRouter(prefix="/v2",tags=["Server Settings"], include_in_schema=True) + + + +@router.get("/server/settings/{server_id}", + name="Get settings for a server") +@check_authentication +async def server_settings(server_id: int, request: Request, clan_settings: bool = False): + pipeline = [ + {"$match": {"server": server_id}}, + {"$lookup": {"from": "legendleagueroles", "localField": "server", "foreignField": "server", + "as": "eval.league_roles"}}, + {"$lookup": {"from": "evalignore", "localField": "server", "foreignField": "server", + "as": "eval.ignored_roles"}}, + {"$lookup": {"from": "generalrole", "localField": "server", "foreignField": "server", + "as": "eval.family_roles"}}, + {"$lookup": {"from": "linkrole", "localField": "server", "foreignField": "server", + "as": "eval.not_family_roles"}}, + {"$lookup": {"from": "townhallroles", "localField": "server", "foreignField": "server", + "as": "eval.townhall_roles"}}, + {"$lookup": {"from": "builderhallroles", "localField": "server", "foreignField": "server", + "as": "eval.builderhall_roles"}}, + {"$lookup": {"from": "achievementroles", "localField": "server", "foreignField": "server", + "as": "eval.achievement_roles"}}, + {"$lookup": {"from": "statusroles", "localField": "server", "foreignField": "server", + "as": "eval.status_roles"}}, + {"$lookup": {"from": "builderleagueroles", "localField": "server", "foreignField": "server", + "as": "eval.builder_league_roles"}}, + {"$lookup": {"from": "clans", "localField": "server", "foreignField": "server", "as": "clans"}}, + ] + if not clan_settings: + pipeline.pop(-1) + results = await mongo.server_db.aggregate(pipeline).to_list(length=1) + if not results: + raise HTTPException(status_code=404, detail="Server Not Found") + return remove_id_fields(results) + + + +@router.put("/server/{server_id}/embed-color/{hex_code}", + name="Update server discord embed color") +@check_authentication +async def set_server_embed_color(server_id: int, hex_code: int, request: Request): + result = await mongo.server_db.find_one_and_update( + {"server": server_id}, + {"$set": {"embed_color": hex_code}}, + return_document=True + ) + if not result: + raise HTTPException(status_code=404, detail="Server not found") + return {"message": "Embed color updated", "server_id": server_id, "embed_color": hex_code} + + + + + diff --git a/routers/v2/server/models.py b/routers/v2/server/models.py new file mode 100644 index 00000000..5ccce60f --- /dev/null +++ b/routers/v2/server/models.py @@ -0,0 +1,10 @@ +from pydantic import BaseModel +from typing import Optional + +class ServerSettingsUpdate(BaseModel): + embed_color: Optional[str] = None + full_whitelist_role: Optional[int] = None + nickname_rule: Optional[str] = None + non_family_nickname_rule: Optional[str] = None + auto_eval_nickname: Optional[bool] = None + autoeval_triggers: Optional[list[str]] = None \ No newline at end of file diff --git a/utils/utils.py b/utils/utils.py index 3f7ed2c4..05c4e52f 100644 --- a/utils/utils.py +++ b/utils/utils.py @@ -20,6 +20,7 @@ from collections import deque from datetime import datetime import pytz +from bson import json_util config = Config() @@ -284,6 +285,8 @@ async def delete_from_cdn(image_url: str): def remove_id_fields(data): + return json_loads(json_util.dumps(data)) + if isinstance(data, list): for item in data: remove_id_fields(item) From 2bad57d87b53270a5a7b916ef02f72017ff4e429 Mon Sep 17 00:00:00 2001 From: MagicTheDev Date: Tue, 18 Feb 2025 21:40:48 -0600 Subject: [PATCH 012/174] feat: v2 endpoints --- routers/v2/clan/endpoints.py | 111 +++++++++++ routers/v2/{player.py => pl.py} | 0 routers/v2/{location => player}/endpoints.py | 14 +- routers/v2/{location => player}/models.py | 0 routers/v2/server/endpoints.py | 11 +- utils/time.py | 186 +++++++++++++++++++ 6 files changed, 314 insertions(+), 8 deletions(-) create mode 100644 routers/v2/clan/endpoints.py rename routers/v2/{player.py => pl.py} (100%) rename routers/v2/{location => player}/endpoints.py (57%) rename routers/v2/{location => player}/models.py (100%) create mode 100644 utils/time.py diff --git a/routers/v2/clan/endpoints.py b/routers/v2/clan/endpoints.py new file mode 100644 index 00000000..92463c2c --- /dev/null +++ b/routers/v2/clan/endpoints.py @@ -0,0 +1,111 @@ + +import pendulum as pend +from collections import defaultdict +from fastapi import HTTPException +from fastapi import APIRouter, Query, Request +from utils.utils import fix_tag, remove_id_fields +from utils.time import gen_season_date, gen_raid_date +from utils.database import MongoClient as mongo +from routers.v2.player.models import PlayerTagsRequest + +router = APIRouter(prefix="/v2",tags=["Clan"], include_in_schema=True) + + +@router.get("/clan/{clan_tag}/ranking", + name="Get ranking of a clan") +async def clan_ranking(clan_tag: str, request: Request): + clan_ranking = await mongo.clan_leaderboard_db.find_one({'tag': fix_tag(clan_tag)}) + + fallback = { + "tag": "#L0J9RURP", + "global_rank": None, + "country_code": None, + "country_name": None, + "local_rank": None + } + + return clan_ranking or fallback + + +@router.get("/clan/{clan_tag}/board/totals") +async def clan_board_totals(clan_tag: str, request: Request, body: PlayerTagsRequest): + if not body.player_tags: + raise HTTPException(status_code=400, detail="player_tags cannot be empty") + + player_tags = [fix_tag(tag) for tag in body.player_tags] + previous_season, season = gen_season_date(num_seasons=2) + + player_stats = await mongo.player_stats.find( + {'tag': {'$in': player_tags}}, + {"tag" : 1, "capital_gold" : 1, "last_online_times" : 1} + ).to_list(length=None) + + clan_stats = await mongo.clan_stats.find_one({'tag': fix_tag(clan_tag)}) + + clan_games_points = 0 + total_donated = 0 + total_received = 0 + if clan_stats: + for s in [season, previous_season]: + for tag, data in clan_stats.get(s, {}).items(): + #i forget why, but it can be None sometimes, so fallover to zero if that happens + clan_games_points += data.get('clan_games', 0) or 0 + if clan_games_points != 0: + #if it is zero, likely means CG hasn't happened this season, so check the previous + #eventually add a real check + break + for tag, data in clan_stats.get(season, {}).items(): + total_donated += data.get('donated', 0) + total_received += data.get('received', 0) + + donated_cc = 0 + for date in gen_raid_date(num_weeks=4): + donated_cc += sum( + [ + sum(player.get(f'capital_gold', {}).get(f'{date}', {}).get('donate', [])) + for player in player_stats + ] + ) + + now = pend.now(tz=pend.UTC) + thirty_days_ago = now.subtract(days=30) + forty_eight_hours_ago = now.subtract(hours=48) + + time_add = defaultdict(set) + recent_active = set() + + for player in player_stats: + for season_key in [season, previous_season]: + for timestamp in player.get('last_online_times', {}).get(season_key, []): + date = pend.from_timestamp(timestamp) + + # Only keep dates within the last 30 days + if date >= thirty_days_ago: + time_add[date.date()].add(player.get("tag")) + + # Track players active in the last 48 hours + if date >= forty_eight_hours_ago: + recent_active.add(player.get("tag")) + + num_players_day = [len(players) for players in time_add.values()] + total_players = sum(num_players_day) + avg_players = int(total_players / len(num_players_day)) if num_players_day else 0 + total_active_48h = len(recent_active) + + return { + "clan_tag": clan_tag, + "tracked_player_count": len(player_stats), + "clan_games_points": clan_games_points, + "troops_donated": total_donated, + "troops_received": total_received, + "clan_capital_donated": donated_cc, + "activity" : { + "per_day": avg_players, + "last_48h": total_active_48h, + "score": total_players + } + } + + + + diff --git a/routers/v2/player.py b/routers/v2/pl.py similarity index 100% rename from routers/v2/player.py rename to routers/v2/pl.py diff --git a/routers/v2/location/endpoints.py b/routers/v2/player/endpoints.py similarity index 57% rename from routers/v2/location/endpoints.py rename to routers/v2/player/endpoints.py index c1fb093b..9ebb409e 100644 --- a/routers/v2/location/endpoints.py +++ b/routers/v2/player/endpoints.py @@ -2,22 +2,22 @@ import pendulum as pend from fastapi import HTTPException from fastapi import APIRouter, Query, Request -from typing import Annotated -from utils.utils import fix_tag, remove_id_fields, check_authentication +from utils.utils import fix_tag, remove_id_fields from utils.database import MongoClient as mongo -from routers.v2.location.models import PlayerTagsRequest +from routers.v2.player.models import PlayerTagsRequest -router = APIRouter(prefix="/v2",tags=["Location"], include_in_schema=True) +router = APIRouter(prefix="/v2",tags=["Player"], include_in_schema=True) -@router.post("/location/players", +@router.post("/players/location", name="Get locations for a list of players") -async def location_list(request: Request, body: PlayerTagsRequest): +async def player_location_list(request: Request, body: PlayerTagsRequest): if not body.player_tags: raise HTTPException(status_code=400, detail="player_tags cannot be empty") + player_tags = [fix_tag(tag) for tag in body.player_tags] location_info = await mongo.leaderboard_db.find( - {'tag': {'$in': body.player_tags}}, + {'tag': {'$in': player_tags}}, {'_id': 0, 'tag': 1, 'country_name': 1, 'country_code': 1} ).to_list(length=None) diff --git a/routers/v2/location/models.py b/routers/v2/player/models.py similarity index 100% rename from routers/v2/location/models.py rename to routers/v2/player/models.py diff --git a/routers/v2/server/endpoints.py b/routers/v2/server/endpoints.py index 5c9141c6..6e3fda4b 100644 --- a/routers/v2/server/endpoints.py +++ b/routers/v2/server/endpoints.py @@ -11,7 +11,7 @@ -@router.get("/server/settings/{server_id}", +@router.get("/server/{server_id}/settings", name="Get settings for a server") @check_authentication async def server_settings(server_id: int, request: Request, clan_settings: bool = False): @@ -45,6 +45,15 @@ async def server_settings(server_id: int, request: Request, clan_settings: bool return remove_id_fields(results) +@router.get("/server/{server_id}/clan/{clan_tag}/settings", + name="Update server discord embed color") +@check_authentication +async def server_clan_settings(server_id: int, clan_tag: str, request: Request): + result = await mongo.clan_db.find_one({'$and': [{'tag': clan_tag}, {'server': server_id}]}) + if not result: + raise HTTPException(status_code=404, detail="Server or clan not found") + return remove_id_fields(result) + @router.put("/server/{server_id}/embed-color/{hex_code}", name="Update server discord embed color") diff --git a/utils/time.py b/utils/time.py new file mode 100644 index 00000000..f731e4b9 --- /dev/null +++ b/utils/time.py @@ -0,0 +1,186 @@ +from datetime import datetime, timedelta +import pendulum as pend +import coc +import calendar + +class DiscordTimeStamp: + def __init__(self, date: pend.DateTime): + self.slash_date = f'' + self.text_date = f'' + self.time_only = f'' + self.full_date = f'' + self.relative = f'' + + +def ts(date: pend.DateTime) -> DiscordTimeStamp: + """ + Converts a Pendulum DateTime object into a DiscordTimeStamp object. + + :param date: A Pendulum DateTime object representing the date and time. + :return: A DiscordTimeStamp object containing formatted Discord timestamp strings. + """ + return DiscordTimeStamp(date=date) + + +def time_difference(start: datetime, end: datetime): + # Calculate the difference + diff = end - start + + days = diff.days + hours = diff.seconds // 3600 + minutes = (diff.seconds % 3600) // 60 + seconds = diff.seconds % 60 + + # Format output based on duration + if days > 0: + return f'{days} day(s) {hours} hrs {minutes} mins' + elif diff < timedelta(hours=1): + return f'{minutes} mins {seconds} secs' + else: + return f'{hours} hrs {minutes} mins' + + +def format_time(seconds): + if seconds >= 3600: # Convert to hours and minutes + hours = seconds // 3600 + minutes = (seconds % 3600) // 60 + return f'{hours} hr, {minutes} min' if minutes else f'{hours} hr' + elif seconds >= 60: # Convert to minutes and seconds + minutes = seconds // 60 + remaining_seconds = seconds % 60 + return f'{minutes} min, {remaining_seconds} sec' if remaining_seconds else f'{minutes} min' + else: # Just seconds + return f'{seconds} sec' + + +def convert_seconds(seconds): + if seconds is None: + return 'N/A' + seconds = seconds % (24 * 3600) + hour = seconds // 3600 + seconds %= 3600 + minutes = seconds // 60 + seconds %= 60 + return '%d:%02d:%02d' % (hour, minutes, seconds) + + +def smart_convert_seconds(seconds, granularity=2): + intervals = ( + ('w', 604800), # 60 * 60 * 24 * 7 + ('d', 86400), # 60 * 60 * 24 + ('h', 3600), # 60 * 60 + ('m', 60), + ) + + result = [] + + for name, count in intervals: + value = seconds // count + if value: + seconds -= value * count + if value == 1: + name = name.rstrip('s') + result.append('{}{}'.format(int(value), name)) + return ' '.join(result[:granularity]) + + +def gen_season_date(num_seasons: int = 0, as_text: bool = False) -> str | list[str]: + """ + Generates season dates based on the number of seasons ago. + + :param num_seasons: Number of seasons ago. Default is 0 (current season). + :param as_text: If True, returns the date in "Month Year" format; otherwise, returns "YYYY-MM". + :return: A single date string if num_seasons is 0, otherwise a list of date strings. + """ + + def format_date(date: pend.DateTime, text_format: bool) -> str: + return f'{calendar.month_name[date.month]} {date.year}' if text_format else date.format('YYYY-MM') + + end_date = pend.instance(coc.utils.get_season_end().replace(tzinfo=pend.UTC)) + + if num_seasons == 0: + return format_date(end_date, as_text) + + return [format_date(end_date.subtract(months=i), as_text) for i in range(num_seasons)] + + +def gen_raid_date(num_weeks: int = 0) -> str | list[str]: + """ + Generates Raid Weekend start dates based on the number of weeks ago. + + :param num_weeks: Number of weeks ago. Default is 0 (current Raid Weekend). + :return: A single date string if num_weeks is 0, otherwise a list of date strings. + """ + + def get_raid_weekend_start(date: pend.DateTime) -> str: + """Finds the nearest Raid Weekend start date (Friday at 07:00 UTC).""" + if date.weekday() > 0 and (date.weekday() < 4 or (date.weekday() == 4 and date.hour < 7)): + date = date.subtract(weeks=1) + return date.start_of("week").add(days=4, hours=7).to_date_string() + + now = pend.now() + + if num_weeks == 0: + return get_raid_weekend_start(now) + + return [get_raid_weekend_start(now.subtract(weeks=i)) for i in range(num_weeks + 1)] + + +def gen_legend_date(): + now = pend.now(tz=pend.UTC) + date = now.subtract(days=1).date() if now.hour < 5 else now.date() + return str(date) + + +def gen_games_season(): + now = pend.now(tz=pend.UTC) + month = f'{now.month:02}' # Ensure two-digit month + return f'{now.year}-{month}' + + +def is_raids(): + """ + Check if the current time is within the raid tracking window (Friday 7:00 UTC to Monday 7:00 UTC). + """ + now = pend.now(tz=pend.UTC) + friday_7am = now.start_of('week').add(days=4, hours=7) + monday_7am = now.start_of('week').add(days=7, hours=7) + return friday_7am <= now < monday_7am + + +def is_cwl(): + now = pend.now(tz=pend.UTC) + return 1 <= now.day <= 10 and not ((now.day == 1 and now.hour < 8) or (now.day == 11 and now.hour >= 8)) + + +def is_clan_games(): + now = pend.now(tz=pend.UTC) + start = now.start_of('month').add(days=21, hours=8) # 22nd at 08:00 UTC + end = now.start_of('month').add(days=27, hours=8) # 28th at 08:00 UTC + return start <= now < end + + +def season_start_end(season: str, gold_pass_season: bool = False): + """ + Generate the season start end that is used for gold pass and clan games + :param season: a season in the format YYYY-MM + :param gold_pass_season: True if you want the season that the gold pass & clan games use + """ + year = int(season[:4]) + month = int(season[-2:]) + + if not gold_pass_season: + prev_month = 12 if month == 1 else month - 1 + prev_year = year - 1 if month == 1 else year + + season_start = pend.from_timestamp( + coc.utils.get_season_start(month=prev_month, year=prev_year).timestamp(), tz='UTC' + ) + season_end = pend.from_timestamp( + coc.utils.get_season_end(month=prev_month, year=prev_year).timestamp(), tz='UTC' + ) + else: + season_start = pend.datetime(year, month, 1, tz='UTC') # First day of the month + season_end = season_start.add(months=1) # First day of the next month + + return season_start, season_end From c3513d5f739e8c6dca5a9913b6e1cee3b6c537f3 Mon Sep 17 00:00:00 2001 From: MagicTheDev Date: Wed, 19 Feb 2025 12:49:59 -0600 Subject: [PATCH 013/174] feat: v2 endpoints --- routers/v2/clan/endpoints.py | 2 +- routers/v2/server/endpoints.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/routers/v2/clan/endpoints.py b/routers/v2/clan/endpoints.py index 92463c2c..eb7cca41 100644 --- a/routers/v2/clan/endpoints.py +++ b/routers/v2/clan/endpoints.py @@ -93,7 +93,7 @@ async def clan_board_totals(clan_tag: str, request: Request, body: PlayerTagsReq total_active_48h = len(recent_active) return { - "clan_tag": clan_tag, + "tag": clan_tag, "tracked_player_count": len(player_stats), "clan_games_points": clan_games_points, "troops_donated": total_donated, diff --git a/routers/v2/server/endpoints.py b/routers/v2/server/endpoints.py index 6e3fda4b..42fbcb28 100644 --- a/routers/v2/server/endpoints.py +++ b/routers/v2/server/endpoints.py @@ -42,7 +42,7 @@ async def server_settings(server_id: int, request: Request, clan_settings: bool results = await mongo.server_db.aggregate(pipeline).to_list(length=1) if not results: raise HTTPException(status_code=404, detail="Server Not Found") - return remove_id_fields(results) + return remove_id_fields(results[0]) @router.get("/server/{server_id}/clan/{clan_tag}/settings", From b4262fb2bf847c235a5cdb582f530ee718dd6fd5 Mon Sep 17 00:00:00 2001 From: Destinea Date: Sat, 22 Feb 2025 10:07:28 +0100 Subject: [PATCH 014/174] feat: Updated /users/me --- routers/app/auth.py | 71 ++++++++++++++++++++++++++++----------------- 1 file changed, 44 insertions(+), 27 deletions(-) diff --git a/routers/app/auth.py b/routers/app/auth.py index 5da2de35..0bc29a84 100644 --- a/routers/app/auth.py +++ b/routers/app/auth.py @@ -254,6 +254,7 @@ async def auth_discord(request: Request): form = await request.form() code = form.get("code") code_verifier = form.get("code_verifier") + device_id = request.headers.get("X-Device-ID", "unknown") if not code or not code_verifier: raise HTTPException(status_code=400, detail="Missing Discord code or code_verifier") @@ -297,12 +298,9 @@ async def auth_discord(request: Request): # Step 3: Check if user exists in DB existing_user = await db_client.app_users.find_one({"user_id": discord_user_id}) if not existing_user: - # Optionally encrypt the username - username_enc = await encrypt_data(user_data["username"]) new_user = { "user_id": discord_user_id, - "username": username_enc, - "account_type": "discord", + "account_type": device_id, "created_at": pend.now() } await db_client.app_users.insert_one(new_user) @@ -330,7 +328,7 @@ async def auth_discord(request: Request): # Step 5: Create a ClashKing refresh token for user # (the user can now use your own JWT to talk to your app) - refresh_token = generate_refresh_token(discord_user_id, "discord") + refresh_token = generate_refresh_token(discord_user_id, device_id) encrypted_refresh = await encrypt_data(refresh_token) await db_client.app_tokens.insert_one({ @@ -342,8 +340,8 @@ async def auth_discord(request: Request): # Step 6: Return your own JWT to the client return { - "access_token": generate_jwt(discord_user_id, "discord"), - "refresh_token": await encrypt_data(refresh_token) + "access_token": generate_jwt(discord_user_id, device_id), + "refresh_token": encrypted_refresh } # 5) Refresh token: generate a new access token @@ -394,31 +392,50 @@ async def refresh_token(token: str, request: Request): @router.get("/users/me") async def read_users_me(current_user=Depends(get_current_user)): """ - This endpoint returns the current user's information, decrypting - email and username if available. + Returns the current user's information: + - For ClashKing users: Returns decrypted email. + - For Discord users: Fetches username & avatar from the Discord API. """ - decrypted_email = None - if "email" in current_user: - try: - decrypted_email = await decrypt_data(current_user["email"]) - except: - decrypted_email = "(error decrypting email)" - - decrypted_username = None - if "username" in current_user: - try: - decrypted_username = await decrypt_data(current_user["username"]) - except: - decrypted_username = "(error decrypting username)" - - return { + user_data = { "user_id": current_user["user_id"], - "email": decrypted_email, - "username": decrypted_username, "account_type": current_user.get("account_type", "unknown"), - "created_at": current_user.get("created_at") + "created_at": current_user.get("created_at"), } + # If the user is a ClashKing account, return the decrypted email + if current_user["account_type"] == "clashking": + decrypted_email = None + if "email" in current_user: + try: + decrypted_email = await decrypt_data(current_user["email"]) + except: + decrypted_email = "(error decrypting email)" + user_data["email"] = decrypted_email + + # If the user is a Discord account, fetch their username and avatar + elif current_user["account_type"] == "discord": + try: + # Decrypt the stored Discord access token + discord_access = await decrypt_data(current_user["discord_access_token"]) + + # Call Discord API to get user information + response = requests.get( + "https://discord.com/api/users/@me", + headers={"Authorization": f"Bearer {discord_access}"} + ) + + if response.status_code == 200: + discord_data = response.json() + user_data["discord_username"] = discord_data["username"] + user_data["avatar_url"] = f"https://cdn.discordapp.com/avatars/{discord_data['id']}/{discord_data['avatar']}.png" + else: + raise HTTPException(status_code=500, detail="Error from Discord API") + + except Exception as e: + raise HTTPException(status_code=500, detail=f"Failed to fetch Discord profile: {str(e)}") + + return user_data + # 7) Get all user sessions @router.get("/users/sessions") async def get_sessions(current_user=Depends(get_current_user)): From 71a4a916547df45154942eef7032cbf4b80a90be Mon Sep 17 00:00:00 2001 From: Destinea Date: Sat, 22 Feb 2025 10:25:17 +0100 Subject: [PATCH 015/174] feat: Updated refresh_discord_access_token --- routers/app/auth.py | 84 +++++++++++++++++++++++++++++++++------------ 1 file changed, 62 insertions(+), 22 deletions(-) diff --git a/routers/app/auth.py b/routers/app/auth.py index 0bc29a84..fbe92d32 100644 --- a/routers/app/auth.py +++ b/routers/app/auth.py @@ -100,7 +100,7 @@ async def get_current_user(token: str = Depends(oauth2_scheme)): """ This dependency checks whether the token is blacklisted, decodes the JWT, fetches the user from the database, and returns a user object or a dict - contenant le profil Discord temps réel si le compte est 'discord'. + containing the real-time Discord profile if the account type is 'discord'. """ # Check if the token is blacklisted if is_blacklisted(token): @@ -127,29 +127,62 @@ async def get_current_user(token: str = Depends(oauth2_scheme)): # If it's a Discord account, fetch the real-time profile if current_user.get("account_type") == "discord": + discord_access_token = current_user.get("discord_access_token") + + # Check if the user has a stored Discord token + if not discord_access_token: + raise HTTPException(status_code=401, detail="Missing Discord access token") + try: - discord_access = await decrypt_data(current_user["discord_access_token"]) + # Decrypt the Discord access token + discord_access = await decrypt_data(discord_access_token) + + # Request the Discord profile response = requests.get( "https://discord.com/api/users/@me", headers={"Authorization": f"Bearer {discord_access}"} ) + + # If the token is expired, try refreshing it + if response.status_code == 401: + # Refresh the Discord token and retry + new_discord_data = await refresh_discord_access_token(current_user["discord_refresh_token"]) + discord_access = new_discord_data["access_token"] + + # Save the new access token + encrypted_discord_access = await encrypt_data(discord_access) + await db_client.app_users.update_one( + {"user_id": user_id}, + {"$set": {"discord_access_token": encrypted_discord_access}} + ) + + # Retry fetching Discord profile with the new token + response = requests.get( + "https://discord.com/api/users/@me", + headers={"Authorization": f"Bearer {discord_access}"} + ) + if response.status_code == 200: discord_data = response.json() + avatar_url = ( + f"https://cdn.discordapp.com/avatars/{discord_data['id']}/{discord_data['avatar']}.png" + if discord_data.get("avatar") else None + ) + return { "user_id": current_user["user_id"], "discord_username": discord_data["username"], - "avatar_url": f"https://cdn.discordapp.com/avatars/{discord_data['id']}/{discord_data['avatar']}.png", + "avatar_url": avatar_url, } else: - # Invalidate the token if the Discord profile is not accessible raise HTTPException(status_code=500, detail="Error from Discord API") + except Exception as e: raise HTTPException(status_code=500, detail=f"Error retrieving Discord profile: {str(e)}") # If it's a ClashKing account, return the user object return current_user - ############################ # Device ID validation ############################ @@ -533,20 +566,27 @@ async def get_discord_profile(current_user=Depends(get_current_user)): return response.json() -def refresh_discord_access_token(encrypted_refresh_token_discord: str) -> dict: - # 1) decrypt the refresh token - refresh_token_str = decrypt_data(encrypted_refresh_token_discord) - - data = { - "client_id": DISCORD_CLIENT_ID, - "client_secret": DISCORD_CLIENT_SECRET, - "grant_type": "refresh_token", - "refresh_token": refresh_token_str - } - headers = {"Content-Type": "application/x-www-form-urlencoded"} - - token_response = requests.post("https://discord.com/api/oauth2/token", data=data, headers=headers) - if token_response.status_code != 200: - raise Exception(f"Unable to refresh Discord token: {token_response.json()}") - - return token_response.json() \ No newline at end of file +async def refresh_discord_access_token(encrypted_refresh_token: str) -> dict: + """ + Refreshes the Discord access token using the stored refresh token. + """ + try: + refresh_token = await decrypt_data(encrypted_refresh_token) + token_data = { + "client_id": DISCORD_CLIENT_ID, + "client_secret": DISCORD_CLIENT_SECRET, + "grant_type": "refresh_token", + "refresh_token": refresh_token + } + headers = {"Content-Type": "application/x-www-form-urlencoded"} + token_response = requests.post("https://discord.com/api/oauth2/token", data=token_data, headers=headers) + + if token_response.status_code == 200: + return token_response.json() + else: + raise HTTPException( + status_code=401, + detail=f"Failed to refresh Discord token: {token_response.json()}" + ) + except Exception as e: + raise HTTPException(status_code=500, detail=f"Error refreshing Discord token: {str(e)}") From c6905936f1a3e908a926e32d4b8400f778485207 Mon Sep 17 00:00:00 2001 From: Destinea Date: Sat, 22 Feb 2025 10:41:43 +0100 Subject: [PATCH 016/174] fix: module 'jwt' has no attribute 'JWTError' --- requirements.txt | 2 +- routers/app/accounts.py | 8 ++++---- routers/app/auth.py | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/requirements.txt b/requirements.txt index 11822916..ebfde655 100644 --- a/requirements.txt +++ b/requirements.txt @@ -17,7 +17,7 @@ passlib==1.7.4 pendulum==3.0.0 pillow==10.2.0 pydantic==2.6.0 -PyJWT==2.9.0 +PyJWT==2.10.1 pymongo==4.6.1 python-dotenv==1.0.1 python-dateutil==2.8.2 diff --git a/routers/app/accounts.py b/routers/app/accounts.py index a08f74a1..a5619cf5 100644 --- a/routers/app/accounts.py +++ b/routers/app/accounts.py @@ -62,7 +62,7 @@ async def add_coc_account(coc_tag: str, token: str = Depends(oauth2_scheme)): try: payload = jwt.decode(token, SECRET_KEY, algorithms=["HS256"]) user_id = payload["sub"] - except jwt.PyJWTError: + except jwt.exceptions.PyJWTError: raise HTTPException(status_code=403, detail="Invalid token") # Validate Clash of Clans tag format @@ -108,7 +108,7 @@ async def add_coc_account_with_verification(coc_tag: str, player_token: str, tok try: payload = jwt.decode(token, SECRET_KEY, algorithms=["HS256"]) user_id = payload["sub"] - except jwt.PyJWTError: + except jwt.exceptions.PyJWTError: raise HTTPException(status_code=403, detail="Invalid token") # Validate Clash of Clans tag format @@ -158,7 +158,7 @@ async def get_coc_accounts(token: str = Depends(oauth2_scheme)): try: payload = jwt.decode(token, SECRET_KEY, algorithms=["HS256"]) user_id = payload["sub"] - except jwt.PyJWTError: + except jwt.exceptions.PyJWTError: raise HTTPException(status_code=403, detail="Invalid token") # Fetch the user document @@ -178,7 +178,7 @@ async def remove_coc_account(coc_tag: str, token: str = Depends(oauth2_scheme)): try: payload = jwt.decode(token, SECRET_KEY, algorithms=["HS256"]) user_id = payload["sub"] - except jwt.PyJWTError: + except jwt.exceptions.PyJWTError: raise HTTPException(status_code=403, detail="Invalid token") # Ensure the tag starts with "#" diff --git a/routers/app/auth.py b/routers/app/auth.py index fbe92d32..ef2c5245 100644 --- a/routers/app/auth.py +++ b/routers/app/auth.py @@ -114,7 +114,7 @@ async def get_current_user(token: str = Depends(oauth2_scheme)): raise HTTPException(status_code=401, detail="Invalid token") except jwt.ExpiredSignatureError: raise HTTPException(status_code=401, detail="Token has expired") - except jwt.PyJWTError: + except jwt.exceptions.PyJWTError: raise HTTPException(status_code=401, detail="Token is invalid") # Load the user from the database @@ -418,7 +418,7 @@ async def refresh_token(token: str, request: Request): except jwt.ExpiredSignatureError: raise HTTPException(status_code=403, detail="Refresh token expired") - except jwt.PyJWTError: + except jwt.exceptions.PyJWTError: raise HTTPException(status_code=403, detail="Invalid token") # 6) Get current user info From 203085624ea42a92c0915462b2b1d082cc2800ed Mon Sep 17 00:00:00 2001 From: Destinea Date: Sat, 22 Feb 2025 11:18:41 +0100 Subject: [PATCH 017/174] chore: debug --- routers/app/auth.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/routers/app/auth.py b/routers/app/auth.py index ef2c5245..0c1decd1 100644 --- a/routers/app/auth.py +++ b/routers/app/auth.py @@ -103,6 +103,7 @@ async def get_current_user(token: str = Depends(oauth2_scheme)): containing the real-time Discord profile if the account type is 'discord'. """ # Check if the token is blacklisted + print(token) if is_blacklisted(token): raise HTTPException(status_code=401, detail="Token is blacklisted") @@ -110,6 +111,8 @@ async def get_current_user(token: str = Depends(oauth2_scheme)): try: payload = jwt.decode(token, SECRET_KEY, algorithms=["HS256"]) user_id = payload.get("sub") + print(payload) + print(user_id) if user_id is None: raise HTTPException(status_code=401, detail="Invalid token") except jwt.ExpiredSignatureError: @@ -384,6 +387,7 @@ async def refresh_token(token: str, request: Request): This endpoint receives an existing refresh token (encrypted in the DB), validates it, checks device_id, and issues a new access/refresh token pair. """ + print("token", token) # Decrypt the user-provided token to compare with the DB stored_token = await db_client.app_tokens.find_one({"refresh_token": await encrypt_data(token)}) @@ -392,6 +396,7 @@ async def refresh_token(token: str, request: Request): try: payload = jwt.decode(token, REFRESH_SECRET, algorithms=["HS256"]) + print("payload", payload) user_id = payload.get("sub") device_id = payload.get("device") From 12dcf94924e24a93b69d75a930a436a5f9da56e0 Mon Sep 17 00:00:00 2001 From: Destinea Date: Mon, 3 Mar 2025 14:32:36 +0100 Subject: [PATCH 018/174] feat: Updated Auth token handling --- routers/app/accounts.py | 71 +++--- routers/app/auth.py | 552 +++++++--------------------------------- 2 files changed, 114 insertions(+), 509 deletions(-) diff --git a/routers/app/accounts.py b/routers/app/accounts.py index a5619cf5..56f713c6 100644 --- a/routers/app/accounts.py +++ b/routers/app/accounts.py @@ -16,7 +16,7 @@ # Initialize FastAPI app oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token") -router = APIRouter(tags=["Authentication"], include_in_schema=True) +router = APIRouter(tags=["Coc Accounts"], include_in_schema=True) # Environment variables SECRET_KEY = os.getenv('SECRET_KEY') @@ -29,6 +29,20 @@ class Token(BaseModel): access_token: str refresh_token: str +################ +# Utility functions +################ + +async def get_current_user(token: str): + """Retrieve user information from the ClashKing token.""" + if not token: + raise HTTPException(status_code=401, detail="Missing authentication token") + + current_user = await db_client.app_clashking_tokens.find_one({"access_token": token}) + if not current_user: + raise HTTPException(status_code=403, detail="Invalid authentication token") + + return current_user # Returns user data async def is_coc_tag_valid(coc_tag: str) -> bool: """Check if the Clash of Clans account exists using the API.""" @@ -54,44 +68,39 @@ async def verify_coc_ownership(coc_tag: str, player_token: str) -> bool: return response.status_code == 200 # Returns True if the ownership is verified +################ +# Endpoints +################ + @router.post("/users/add-coc-account") async def add_coc_account(coc_tag: str, token: str = Depends(oauth2_scheme)): """Associate a Clash of Clans account (tag) with a user WITHOUT ownership verification.""" - # Verify user authentication - try: - payload = jwt.decode(token, SECRET_KEY, algorithms=["HS256"]) - user_id = payload["sub"] - except jwt.exceptions.PyJWTError: - raise HTTPException(status_code=403, detail="Invalid token") + # Retrieve user + current_user = await get_current_user(token) + user_id = current_user["user_id"] # Validate Clash of Clans tag format if not re.match(r"^#?[A-Z0-9]{5,12}$", coc_tag): raise HTTPException(status_code=400, detail="Invalid Clash of Clans tag format") - # Ensure the tag starts with "#" if not coc_tag.startswith("#"): coc_tag = f"#{coc_tag}" - # Check if the Clash of Clans account exists if not await is_coc_tag_valid(coc_tag): raise HTTPException(status_code=404, detail="Clash of Clans account does not exist") - # Fetch the user document user = await db_client.user_clash_accounts.find_one({"user_id": user_id}) if user: - # Check if the tag is already in the user's list if any(account["coc_tag"] == coc_tag for account in user["coc_accounts"]): raise HTTPException(status_code=400, detail="This Clash of Clans account is already linked to your profile") - # Add the new tag await db_client.user_clash_accounts.update_one( {"user_id": user_id}, {"$push": {"coc_accounts": {"coc_tag": coc_tag, "added_at": pend.now()}}} ) else: - # Create a new document if the user does not exist await db_client.user_clash_accounts.insert_one({ "user_id": user_id, "coc_accounts": [{"coc_tag": coc_tag, "added_at": pend.now()}] @@ -104,44 +113,32 @@ async def add_coc_account(coc_tag: str, token: str = Depends(oauth2_scheme)): async def add_coc_account_with_verification(coc_tag: str, player_token: str, token: str = Depends(oauth2_scheme)): """Associate a Clash of Clans account with a user WITH ownership verification.""" - # Verify user authentication - try: - payload = jwt.decode(token, SECRET_KEY, algorithms=["HS256"]) - user_id = payload["sub"] - except jwt.exceptions.PyJWTError: - raise HTTPException(status_code=403, detail="Invalid token") + current_user = await get_current_user(token) + user_id = current_user["user_id"] - # Validate Clash of Clans tag format if not re.match(r"^#?[A-Z0-9]{5,12}$", coc_tag): raise HTTPException(status_code=400, detail="Invalid Clash of Clans tag format") - # Ensure the tag starts with "#" if not coc_tag.startswith("#"): coc_tag = f"#{coc_tag}" - # Check if the Clash of Clans account exists if not await is_coc_tag_valid(coc_tag): raise HTTPException(status_code=404, detail="Clash of Clans account does not exist") - # Verify account ownership if not await verify_coc_ownership(coc_tag, player_token): raise HTTPException(status_code=403, detail="Invalid player token. You do not own this account.") - # Fetch the user document user = await db_client.user_clash_accounts.find_one({"user_id": user_id}) if user: - # Check if the tag is already in the user's list if any(account["coc_tag"] == coc_tag for account in user["coc_accounts"]): raise HTTPException(status_code=400, detail="This Clash of Clans account is already linked to your profile") - # Add the new tag await db_client.user_clash_accounts.update_one( {"user_id": user_id}, {"$push": {"coc_accounts": {"coc_tag": coc_tag, "added_at": pend.now()}}} ) else: - # Create a new document if the user does not exist await db_client.user_clash_accounts.insert_one({ "user_id": user_id, "coc_accounts": [{"coc_tag": coc_tag, "added_at": pend.now()}] @@ -154,14 +151,9 @@ async def add_coc_account_with_verification(coc_tag: str, player_token: str, tok async def get_coc_accounts(token: str = Depends(oauth2_scheme)): """Retrieve all Clash of Clans accounts linked to a user.""" - # Verify authentication - try: - payload = jwt.decode(token, SECRET_KEY, algorithms=["HS256"]) - user_id = payload["sub"] - except jwt.exceptions.PyJWTError: - raise HTTPException(status_code=403, detail="Invalid token") + current_user = await get_current_user(token) + user_id = current_user["user_id"] - # Fetch the user document user = await db_client.user_clash_accounts.find_one({"user_id": user_id}) if not user: @@ -174,18 +166,12 @@ async def get_coc_accounts(token: str = Depends(oauth2_scheme)): async def remove_coc_account(coc_tag: str, token: str = Depends(oauth2_scheme)): """Remove a specific Clash of Clans account linked to a user.""" - # Verify authentication - try: - payload = jwt.decode(token, SECRET_KEY, algorithms=["HS256"]) - user_id = payload["sub"] - except jwt.exceptions.PyJWTError: - raise HTTPException(status_code=403, detail="Invalid token") + current_user = await get_current_user(token) + user_id = current_user["user_id"] - # Ensure the tag starts with "#" if not coc_tag.startswith("#"): coc_tag = f"#{coc_tag}" - # Remove the tag from the user's document result = await db_client.user_clash_accounts.update_one( {"user_id": user_id}, {"$pull": {"coc_accounts": {"coc_tag": coc_tag}}} @@ -195,3 +181,4 @@ async def remove_coc_account(coc_tag: str, token: str = Depends(oauth2_scheme)): raise HTTPException(status_code=404, detail="Clash of Clans account not found or not linked to your profile") return {"message": "Clash of Clans account unlinked successfully"} + diff --git a/routers/app/auth.py b/routers/app/auth.py index 0c1decd1..9943e636 100644 --- a/routers/app/auth.py +++ b/routers/app/auth.py @@ -1,4 +1,6 @@ import os + +import httpx import jwt import requests import pendulum as pend @@ -37,6 +39,7 @@ # FastAPI router router = APIRouter(tags=["Authentication"], include_in_schema=True) + ############################ # Data models ############################ @@ -44,6 +47,7 @@ class Token(BaseModel): access_token: str refresh_token: str + ############################ # Utility functions ############################ @@ -52,29 +56,17 @@ class Token(BaseModel): async def encrypt_data(data: str) -> str: return cipher.encrypt(data.encode()).decode() + # Decrypt data (string) using Fernet async def decrypt_data(data: str) -> str: return cipher.decrypt(data.encode()).decode() -# Hash a password using bcrypt -def hash_password(password: str) -> str: - return pwd_context.hash(password) - # Verify a plaintext password against a hashed one def verify_password(plain_password: str, hashed_password: str) -> bool: return pwd_context.verify(plain_password, hashed_password) -# Generate a short-lived JWT (1 hour) -def generate_jwt(user_id: str, user_type: str): - payload = { - "sub": user_id, - "type": user_type, - "exp": pend.now().add(hours=1).int_timestamp - } - return jwt.encode(payload, SECRET_KEY, algorithm="HS256") - # Generate a long-lived refresh token (90 days) -def generate_refresh_token(user_id: str, device_id: str): +def generate_clashking_access_token(user_id: str, device_id: str): payload = { "sub": user_id, "device": device_id, @@ -82,211 +74,79 @@ def generate_refresh_token(user_id: str, device_id: str): } return jwt.encode(payload, REFRESH_SECRET, algorithm="HS256") -############################ -# JWT blacklist management -############################ -jwt_blacklist = set() - -def add_to_blacklist(token: str): - jwt_blacklist.add(token) - -def is_blacklisted(token: str) -> bool: - return token in jwt_blacklist - -############################ -# Retrieve current user and validate token -############################ -async def get_current_user(token: str = Depends(oauth2_scheme)): +async def refresh_discord_access_token(encrypted_refresh_token: str) -> dict: """ - This dependency checks whether the token is blacklisted, decodes the JWT, - fetches the user from the database, and returns a user object or a dict - containing the real-time Discord profile if the account type is 'discord'. + Refreshes the Discord access token using the stored refresh token. """ - # Check if the token is blacklisted - print(token) - if is_blacklisted(token): - raise HTTPException(status_code=401, detail="Token is blacklisted") - - # Decode the JWT token try: - payload = jwt.decode(token, SECRET_KEY, algorithms=["HS256"]) - user_id = payload.get("sub") - print(payload) - print(user_id) - if user_id is None: - raise HTTPException(status_code=401, detail="Invalid token") - except jwt.ExpiredSignatureError: - raise HTTPException(status_code=401, detail="Token has expired") - except jwt.exceptions.PyJWTError: - raise HTTPException(status_code=401, detail="Token is invalid") - - # Load the user from the database - current_user = await db_client.app_users.find_one({"user_id": user_id}) - if not current_user: - raise HTTPException( - status_code=404, - detail=f"User not found: {user_id}" - ) - - # If it's a Discord account, fetch the real-time profile - if current_user.get("account_type") == "discord": - discord_access_token = current_user.get("discord_access_token") - - # Check if the user has a stored Discord token - if not discord_access_token: - raise HTTPException(status_code=401, detail="Missing Discord access token") - - try: - # Decrypt the Discord access token - discord_access = await decrypt_data(discord_access_token) + refresh_token = await decrypt_data(encrypted_refresh_token) + token_data = { + "client_id": DISCORD_CLIENT_ID, + "client_secret": DISCORD_CLIENT_SECRET, + "grant_type": "refresh_token", + "refresh_token": refresh_token + } + headers = {"Content-Type": "application/x-www-form-urlencoded"} + token_response = requests.post("https://discord.com/api/oauth2/token", data=token_data, headers=headers) - # Request the Discord profile - response = requests.get( - "https://discord.com/api/users/@me", - headers={"Authorization": f"Bearer {discord_access}"} + if token_response.status_code == 200: + return token_response.json() + else: + raise HTTPException( + status_code=401, + detail=f"Failed to refresh Discord token: {token_response.json()}" ) + except Exception as e: + raise HTTPException(status_code=500, detail=f"Error refreshing Discord token: {str(e)}") - # If the token is expired, try refreshing it - if response.status_code == 401: - # Refresh the Discord token and retry - new_discord_data = await refresh_discord_access_token(current_user["discord_refresh_token"]) - discord_access = new_discord_data["access_token"] - - # Save the new access token - encrypted_discord_access = await encrypt_data(discord_access) - await db_client.app_users.update_one( - {"user_id": user_id}, - {"$set": {"discord_access_token": encrypted_discord_access}} - ) - - # Retry fetching Discord profile with the new token - response = requests.get( - "https://discord.com/api/users/@me", - headers={"Authorization": f"Bearer {discord_access}"} - ) - - if response.status_code == 200: - discord_data = response.json() - avatar_url = ( - f"https://cdn.discordapp.com/avatars/{discord_data['id']}/{discord_data['avatar']}.png" - if discord_data.get("avatar") else None - ) - - return { - "user_id": current_user["user_id"], - "discord_username": discord_data["username"], - "avatar_url": avatar_url, - } - else: - raise HTTPException(status_code=500, detail="Error from Discord API") - - except Exception as e: - raise HTTPException(status_code=500, detail=f"Error retrieving Discord profile: {str(e)}") - - # If it's a ClashKing account, return the user object - return current_user +async def get_valid_discord_access_token(user_id: str) -> str: + discord_token = await db_client.app_discord_tokens.find_one({"user_id": user_id}) + if not discord_token: + raise HTTPException(status_code=401, detail="Missing Discord refresh token") -############################ -# Device ID validation -############################ -async def validate_device_id(request: Request, user_id: str): - """ - Check whether the X-Device-ID header is provided and belongs to an existing - session for the given user_id. - """ - device_header = request.headers.get("X-Device-ID") - if not device_header: - raise HTTPException(status_code=400, detail="Missing X-Device-ID header") + refresh_token = await decrypt_data(discord_token["discord_refresh_token"]) - sessions = await db_client.app_tokens.find({"user_id": user_id}).to_list(None) - device_ids = [session.get("device_id") for session in sessions] - if device_header not in device_ids: - raise HTTPException(status_code=403, detail="Invalid or unknown device ID") + # Generate a new access token if the current one is expired + new_token_data = await refresh_discord_access_token(refresh_token) + return new_token_data["access_token"] ############################ -# Endpoints +# Retrieve current user and validate token ############################ -# 2) Link Discord account to a ClashKing user -@router.post("/auth/link-discord") -async def link_discord_account(request: Request): - """ - This endpoint links a Discord account to a ClashKing user by storing - the Discord ID in the user's record (encrypted if necessary). - """ - form = await request.form() - user_id = form.get("user_id") - discord_id = form.get("discord_id") - if not user_id or not discord_id: - raise HTTPException(status_code=400, detail="Missing user_id or discord_id") +@router.get("/auth/me", response_model=Token) +async def get_current_user(token: str): + if not token: + raise HTTPException(status_code=401, detail="Missing authentication token") + + current_user = await db_client.app_clashking_tokens.find_one({"access_token": token}) + if not current_user: + raise HTTPException(status_code=404, detail="User not found") - user = await db_client.app_users.find_one({"user_id": user_id}) - if not user: - raise HTTPException(status_code=404, detail="ClashKing user not found") + if current_user.get("account_type") == "discord": + discord_access = await get_valid_discord_access_token(current_user["user_id"]) - encrypted_discord_id = await encrypt_data(discord_id) + async with httpx.AsyncClient() as client: + response = await client.get( + "https://discord.com/api/users/@me", + headers={"Authorization": f"Bearer {discord_access}"} + ) - await db_client.app_users.update_one( - {"user_id": user_id}, - {"$set": {"discord_id": encrypted_discord_id}} - ) - return {"message": "Discord account linked successfully"} + if response.status_code == 200: + discord_data = response.json() -# 3) Authenticate ClashKing user -@router.post("/auth/clashking", response_model=Token) -async def auth_clashking(email: str, password: str, request: Request): - """ - This endpoint authenticates a user with ClashKing credentials (email/password). - If the user doesn't exist, a new account is created. Otherwise, the password - is verified. Access and refresh tokens are returned. - """ - device_id = request.headers.get("X-Device-ID", "unknown") + return { + "user_id": current_user["user_id"], + "discord_username": discord_data["username"], + "avatar_url": f"https://cdn.discordapp.com/avatars/{discord_data['id']}/{discord_data['avatar']}.png" + } - encrypted_email = await encrypt_data(email) - user = await db_client.app_users.find_one({"email": encrypted_email}) - - if not user: - # Create a new user - hashed_pw = hash_password(password) - new_user = { - "user_id": str(pend.now().int_timestamp), - "email": encrypted_email, - "password": hashed_pw, - "account_type": "clashking", - "created_at": pend.now() - } - await db_client.app_users.insert_one(new_user) - user = new_user - else: - # Verify the provided password - if not verify_password(password, user["password"]): - raise HTTPException(status_code=403, detail="Invalid credentials") - - access_token = generate_jwt(user["user_id"], "clashking") - refresh_token = generate_refresh_token(user["user_id"], device_id) - - # Encrypt the refresh token before storing in DB - encrypted_refresh = await encrypt_data(refresh_token) - - await db_client.app_tokens.insert_one({ - "user_id": user["user_id"], - "refresh_token": encrypted_refresh, - "device_id": device_id, - "expires_at": pend.now().add(days=90) - }) + raise HTTPException(status_code=500, detail="Error retrieving Discord profile") - return { - "access_token": access_token, - "refresh_token": await encrypt_data(refresh_token) - } + return current_user @router.post("/auth/discord", response_model=Token) async def auth_discord(request: Request): - """ - This endpoint handles Discord OAuth2 authentication using authorization code - and PKCE. If the user doesn't exist, a new user record is created using - the Discord ID. - """ form = await request.form() code = form.get("code") code_verifier = form.get("code_verifier") @@ -295,7 +155,6 @@ async def auth_discord(request: Request): if not code or not code_verifier: raise HTTPException(status_code=400, detail="Missing Discord code or code_verifier") - # Step 1: Exchange code for Discord's token token_url = "https://discord.com/api/oauth2/token" token_data = { "client_id": DISCORD_CLIENT_ID, @@ -304,25 +163,20 @@ async def auth_discord(request: Request): "redirect_uri": DISCORD_REDIRECT_URI, "code_verifier": code_verifier } - headers = {"Content-Type": "application/x-www-form-urlencoded"} - token_response = requests.post(token_url, data=token_data, headers=headers) + async with httpx.AsyncClient() as client: + token_response = await client.post(token_url, data=token_data, + headers={"Content-Type": "application/x-www-form-urlencoded"}) + if token_response.status_code != 200: - raise HTTPException( - status_code=500, - detail=f"Error during Discord authentication: {token_response.json()}" - ) + raise HTTPException(status_code=500, detail="Error during Discord authentication") - # Extract the tokens from Discord response discord_data = token_response.json() - access_token_discord = discord_data.get("access_token") - refresh_token_discord = discord_data.get("refresh_token") # might be null - expires_in = discord_data.get("expires_in") # in seconds, e.g. 604800 + refresh_token_discord = discord_data.get("refresh_token") - # Step 2: Get user info from Discord - user_response = requests.get( + user_response = await client.get( "https://discord.com/api/users/@me", - headers={"Authorization": f"Bearer {access_token_discord}"} + headers={"Authorization": f"Bearer {discord_data['access_token']}"} ) if user_response.status_code != 200: @@ -331,267 +185,31 @@ async def auth_discord(request: Request): user_data = user_response.json() discord_user_id = user_data["id"] - # Step 3: Check if user exists in DB existing_user = await db_client.app_users.find_one({"user_id": discord_user_id}) if not existing_user: - new_user = { - "user_id": discord_user_id, - "account_type": device_id, - "created_at": pend.now() - } - await db_client.app_users.insert_one(new_user) - - # Step 4: Store the Discord access_token + refresh_token in DB (encrypted) - # We can store them in the same app_users collection or a separate table. Example: - encrypted_discord_access = await encrypt_data(access_token_discord) - encrypted_discord_refresh = None - if refresh_token_discord: - encrypted_discord_refresh = await encrypt_data(refresh_token_discord) - - # Update the user record with Discord tokens - # or store them in another collection named 'discord_tokens' - await db_client.app_users.update_one( - {"user_id": discord_user_id}, - { - "$set": { - "discord_access_token": encrypted_discord_access, - "discord_refresh_token": encrypted_discord_refresh, - "discord_expires_in": expires_in, - "updated_at": pend.now() - } - } - ) - - # Step 5: Create a ClashKing refresh token for user - # (the user can now use your own JWT to talk to your app) - refresh_token = generate_refresh_token(discord_user_id, device_id) - encrypted_refresh = await encrypt_data(refresh_token) - - await db_client.app_tokens.insert_one({ - "user_id": discord_user_id, - "refresh_token": encrypted_refresh, - "device_id": "discord", - "expires_at": pend.now().add(days=90) - }) - - # Step 6: Return your own JWT to the client - return { - "access_token": generate_jwt(discord_user_id, device_id), - "refresh_token": encrypted_refresh - } - -# 5) Refresh token: generate a new access token -@router.post("/refresh-token", response_model=Token) -async def refresh_token(token: str, request: Request): - """ - This endpoint receives an existing refresh token (encrypted in the DB), - validates it, checks device_id, and issues a new access/refresh token pair. - """ - print("token", token) - # Decrypt the user-provided token to compare with the DB - stored_token = await db_client.app_tokens.find_one({"refresh_token": await encrypt_data(token)}) - - if not stored_token: - raise HTTPException(status_code=403, detail="Invalid token") - - try: - payload = jwt.decode(token, REFRESH_SECRET, algorithms=["HS256"]) - print("payload", payload) - user_id = payload.get("sub") - device_id = payload.get("device") - - # Validate the device_id from the request - await validate_device_id(request, user_id) - - new_access_token = generate_jwt(user_id, "clashking") - new_refresh_token = generate_refresh_token(user_id, device_id) - encrypted_new = await encrypt_data(new_refresh_token) - - # Update the stored token in the DB - await db_client.app_tokens.update_one( - {"refresh_token": stored_token["refresh_token"]}, - {"$set": { - "refresh_token": encrypted_new, - "expires_at": pend.now().add(days=90) - }} - ) - - return { - "access_token": new_access_token, - "refresh_token": await encrypt_data(new_refresh_token) - } - - except jwt.ExpiredSignatureError: - raise HTTPException(status_code=403, detail="Refresh token expired") - except jwt.exceptions.PyJWTError: - raise HTTPException(status_code=403, detail="Invalid token") - -# 6) Get current user info -@router.get("/users/me") -async def read_users_me(current_user=Depends(get_current_user)): - """ - Returns the current user's information: - - For ClashKing users: Returns decrypted email. - - For Discord users: Fetches username & avatar from the Discord API. - """ - user_data = { - "user_id": current_user["user_id"], - "account_type": current_user.get("account_type", "unknown"), - "created_at": current_user.get("created_at"), - } - - # If the user is a ClashKing account, return the decrypted email - if current_user["account_type"] == "clashking": - decrypted_email = None - if "email" in current_user: - try: - decrypted_email = await decrypt_data(current_user["email"]) - except: - decrypted_email = "(error decrypting email)" - user_data["email"] = decrypted_email - - # If the user is a Discord account, fetch their username and avatar - elif current_user["account_type"] == "discord": - try: - # Decrypt the stored Discord access token - discord_access = await decrypt_data(current_user["discord_access_token"]) - - # Call Discord API to get user information - response = requests.get( - "https://discord.com/api/users/@me", - headers={"Authorization": f"Bearer {discord_access}"} - ) - - if response.status_code == 200: - discord_data = response.json() - user_data["discord_username"] = discord_data["username"] - user_data["avatar_url"] = f"https://cdn.discordapp.com/avatars/{discord_data['id']}/{discord_data['avatar']}.png" - else: - raise HTTPException(status_code=500, detail="Error from Discord API") - - except Exception as e: - raise HTTPException(status_code=500, detail=f"Failed to fetch Discord profile: {str(e)}") + await db_client.app_users.insert_one({"user_id": discord_user_id, "created_at": pend.now()}) - return user_data + encrypted_discord_refresh = await encrypt_data(refresh_token_discord) if refresh_token_discord else None -# 7) Get all user sessions -@router.get("/users/sessions") -async def get_sessions(current_user=Depends(get_current_user)): - """ - This endpoint fetches all active sessions (refresh tokens) associated - with the current user. - """ - user_id = current_user["user_id"] - sessions = await db_client.app_tokens.find({"user_id": user_id}).to_list(None) - return [ + await db_client.app_discord_tokens.replace_one( + {"user_id": discord_user_id, "device_id": device_id}, { - "device_id": s.get("device_id"), - "expires_at": s.get("expires_at") - } for s in sessions - ] - -# 8) Logout (invalidate one session) -@router.post("/logout") -async def logout(token: str): - """ - This endpoint invalidates (removes) a refresh token from the DB, - effectively logging out of one session. Optionally, you can also - blacklist the associated access token if you need immediate invalidation. - """ - encrypted_token = await encrypt_data(token) - result = await db_client.app_tokens.delete_one({"refresh_token": encrypted_token}) - if result.deleted_count == 0: - raise HTTPException(status_code=404, detail="No session found for given token") - - # Optionally add the token to the blacklist - # add_to_blacklist(token) - - return {"message": "Successfully logged out"} - -@router.get("/discord/me") -async def get_discord_profile(current_user=Depends(get_current_user)): - user_id = current_user["user_id"] - - # Retrieve the stored Discord tokens - user_record = await db_client.app_users.find_one({"user_id": user_id}) - if not user_record or "discord_access_token" not in user_record: - raise HTTPException(status_code=404, detail="No Discord token found") - - # Decrypt the access token - discord_access_token = await decrypt_data(user_record["discord_access_token"]) - - # 1) Tenter d'appeler l'API Discord - response = requests.get( - "https://discord.com/api/users/@me", - headers={"Authorization": f"Bearer {discord_access_token}"} + "user_id": discord_user_id, + "device_id": device_id, + "discord_refresh_token": encrypted_discord_refresh + }, + upsert=True # Insert if not found ) - # 2) Si le token Discord est expiré (401), on tente un refresh - if response.status_code == 401: - if "discord_refresh_token" not in user_record or not user_record["discord_refresh_token"]: - raise HTTPException(status_code=401, detail="No Discord refresh token stored") - - # On tente de rafraîchir le token - try: - new_discord_data = refresh_discord_access_token(user_record["discord_refresh_token"]) - except Exception as e: - raise HTTPException(status_code=500, detail=f"Error refreshing Discord token: {e}") - - # On met à jour la base avec les nouveaux tokens - new_access = new_discord_data["access_token"] - new_refresh = new_discord_data.get("refresh_token") # peut être None - new_expires_in = new_discord_data.get("expires_in") - - encrypted_discord_access = await encrypt_data(new_access) - encrypted_discord_refresh = await encrypt_data(new_refresh) if new_refresh else None - - await db_client.app_users.update_one( - {"user_id": user_id}, - { - "$set": { - "discord_access_token": encrypted_discord_access, - "discord_refresh_token": encrypted_discord_refresh, - "discord_expires_in": new_expires_in, - "updated_at": pend.now() - } - } - ) - - # On refait l'appel à Discord avec le nouveau token - response = requests.get( - "https://discord.com/api/users/@me", - headers={"Authorization": f"Bearer {new_access}"} - ) - - if response.status_code != 200: - raise HTTPException( - status_code=500, - detail=f"Error from Discord: {response.json()}" - ) + access_token = generate_clashking_access_token(discord_user_id, device_id) + encrypted_token = await encrypt_data(access_token) - return response.json() - -async def refresh_discord_access_token(encrypted_refresh_token: str) -> dict: - """ - Refreshes the Discord access token using the stored refresh token. - """ - try: - refresh_token = await decrypt_data(encrypted_refresh_token) - token_data = { - "client_id": DISCORD_CLIENT_ID, - "client_secret": DISCORD_CLIENT_SECRET, - "grant_type": "refresh_token", - "refresh_token": refresh_token - } - headers = {"Content-Type": "application/x-www-form-urlencoded"} - token_response = requests.post("https://discord.com/api/oauth2/token", data=token_data, headers=headers) + await db_client.app_clashking_tokens.insert_one({ + "user_id": discord_user_id, + "account_type": "discord", + "access_token": encrypted_token, + "device_id": device_id, + "expires_at": pend.now().add(days=180) + }) - if token_response.status_code == 200: - return token_response.json() - else: - raise HTTPException( - status_code=401, - detail=f"Failed to refresh Discord token: {token_response.json()}" - ) - except Exception as e: - raise HTTPException(status_code=500, detail=f"Error refreshing Discord token: {str(e)}") + return {"access_token": access_token} From 37cb129f7a83be910a9c117ae9a281d0a73a0851 Mon Sep 17 00:00:00 2001 From: Destinea Date: Mon, 3 Mar 2025 14:52:25 +0100 Subject: [PATCH 019/174] fix: async client --- routers/app/auth.py | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/routers/app/auth.py b/routers/app/auth.py index 9943e636..3de25ded 100644 --- a/routers/app/auth.py +++ b/routers/app/auth.py @@ -168,23 +168,23 @@ async def auth_discord(request: Request): token_response = await client.post(token_url, data=token_data, headers={"Content-Type": "application/x-www-form-urlencoded"}) - if token_response.status_code != 200: - raise HTTPException(status_code=500, detail="Error during Discord authentication") + if token_response.status_code != 200: + raise HTTPException(status_code=500, detail="Error during Discord authentication") - discord_data = token_response.json() - refresh_token_discord = discord_data.get("refresh_token") + discord_data = token_response.json() + refresh_token_discord = discord_data.get("refresh_token") - user_response = await client.get( - "https://discord.com/api/users/@me", - headers={"Authorization": f"Bearer {discord_data['access_token']}"} - ) + user_response = await client.get( + "https://discord.com/api/users/@me", + headers={"Authorization": f"Bearer {discord_data['access_token']}"} + ) - if user_response.status_code != 200: - raise HTTPException(status_code=500, detail="Error retrieving user info") + if user_response.status_code != 200: + raise HTTPException(status_code=500, detail="Error retrieving user info") - user_data = user_response.json() - discord_user_id = user_data["id"] + user_data = user_response.json() + discord_user_id = user_data["id"] existing_user = await db_client.app_users.find_one({"user_id": discord_user_id}) if not existing_user: await db_client.app_users.insert_one({"user_id": discord_user_id, "created_at": pend.now()}) From e3f9d14e3d764f34f54eee9d52b911a63a3cc1dd Mon Sep 17 00:00:00 2001 From: Destinea Date: Mon, 3 Mar 2025 15:02:40 +0100 Subject: [PATCH 020/174] fix: db collections --- utils/utils.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/utils.py b/utils/utils.py index b41a19f7..c189efa9 100644 --- a/utils/utils.py +++ b/utils/utils.py @@ -103,8 +103,8 @@ def __init__(self): self.app = client.get_database("app") self.app_users: collection_class = self.app.users - self.app_tokens: collection_class = self.app.tokens - + self.app_discord_tokens: collection_class = self.app.discord_tokens + self.app_clashking_tokens: collection_class = self.app.clashking_tokens db_client = DBClient() From 905d268b88ab1458999681bbcc0f0c63e229f8eb Mon Sep 17 00:00:00 2001 From: Destinea Date: Mon, 3 Mar 2025 15:16:55 +0100 Subject: [PATCH 021/174] fix: token model --- routers/app/auth.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/routers/app/auth.py b/routers/app/auth.py index 3de25ded..7f26e86c 100644 --- a/routers/app/auth.py +++ b/routers/app/auth.py @@ -45,7 +45,6 @@ ############################ class Token(BaseModel): access_token: str - refresh_token: str ############################ @@ -189,6 +188,7 @@ async def auth_discord(request: Request): if not existing_user: await db_client.app_users.insert_one({"user_id": discord_user_id, "created_at": pend.now()}) + encrypted_discord_access = await encrypt_data(discord_data["access_token"]) encrypted_discord_refresh = await encrypt_data(refresh_token_discord) if refresh_token_discord else None await db_client.app_discord_tokens.replace_one( @@ -196,6 +196,7 @@ async def auth_discord(request: Request): { "user_id": discord_user_id, "device_id": device_id, + "discord_access_token": encrypted_discord_access, "discord_refresh_token": encrypted_discord_refresh }, upsert=True # Insert if not found From f553bab1350f75984d9a6c0e675a48f91839363c Mon Sep 17 00:00:00 2001 From: Destinea Date: Mon, 3 Mar 2025 16:32:04 +0100 Subject: [PATCH 022/174] fix: bearer token --- routers/app/accounts.py | 57 ++--- routers/app/auth.py | 16 +- routers/app/test.py | 519 ++++++++++++++++++++++++++++++++++++++++ utils/utils.py | 1 + 4 files changed, 544 insertions(+), 49 deletions(-) create mode 100644 routers/app/test.py diff --git a/routers/app/accounts.py b/routers/app/accounts.py index 56f713c6..258f6d38 100644 --- a/routers/app/accounts.py +++ b/routers/app/accounts.py @@ -1,30 +1,16 @@ -import os -import jwt import requests import pendulum as pend import re from dotenv import load_dotenv -from fastapi import Depends, HTTPException -from fastapi.security import OAuth2PasswordBearer +from fastapi import Depends, HTTPException, Header, APIRouter from pydantic import BaseModel from utils.utils import db_client -from fastapi import APIRouter # Load environment variables load_dotenv() -# Initialize FastAPI app -oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token") - router = APIRouter(tags=["Coc Accounts"], include_in_schema=True) -# Environment variables -SECRET_KEY = os.getenv('SECRET_KEY') -DISCORD_CLIENT_ID = os.getenv('DISCORD_CLIENT_ID') -DISCORD_CLIENT_SECRET = os.getenv('DISCORD_CLIENT_SECRET') -DISCORD_REDIRECT_URI = os.getenv('DISCORD_REDIRECT_URI') - - class Token(BaseModel): access_token: str refresh_token: str @@ -33,10 +19,13 @@ class Token(BaseModel): # Utility functions ################ -async def get_current_user(token: str): +async def get_current_user(authorization: str = Header(None)): """Retrieve user information from the ClashKing token.""" - if not token: - raise HTTPException(status_code=401, detail="Missing authentication token") + + if not authorization or not authorization.startswith("Bearer "): + raise HTTPException(status_code=401, detail="Missing or invalid authentication token") + + token = authorization.split("Bearer ")[1] current_user = await db_client.app_clashking_tokens.find_one({"access_token": token}) if not current_user: @@ -46,41 +35,29 @@ async def get_current_user(token: str): async def is_coc_tag_valid(coc_tag: str) -> bool: """Check if the Clash of Clans account exists using the API.""" - - # Format the tag correctly for the API request coc_tag = coc_tag.replace("#", "%23") - url = f"https://proxy.clashk.ing/v1/players/{coc_tag}" response = requests.get(url) - return response.status_code == 200 # Returns True if the account exists - async def verify_coc_ownership(coc_tag: str, player_token: str) -> bool: """Verify if the provided player token matches the given Clash of Clans account.""" - - # Format the tag correctly for the API request coc_tag = coc_tag.replace("#", "%23") - url = f"https://proxy.clashk.ing/v1/players/{coc_tag}/verifytoken" response = requests.post(url, json={"token": player_token}) - return response.status_code == 200 # Returns True if the ownership is verified - ################ # Endpoints ################ @router.post("/users/add-coc-account") -async def add_coc_account(coc_tag: str, token: str = Depends(oauth2_scheme)): +async def add_coc_account(coc_tag: str, authorization: str = Header(None)): """Associate a Clash of Clans account (tag) with a user WITHOUT ownership verification.""" - # Retrieve user - current_user = await get_current_user(token) + current_user = await get_current_user(authorization) user_id = current_user["user_id"] - # Validate Clash of Clans tag format if not re.match(r"^#?[A-Z0-9]{5,12}$", coc_tag): raise HTTPException(status_code=400, detail="Invalid Clash of Clans tag format") @@ -108,12 +85,11 @@ async def add_coc_account(coc_tag: str, token: str = Depends(oauth2_scheme)): return {"message": "Clash of Clans account linked successfully"} - @router.post("/users/add-coc-account-with-token") -async def add_coc_account_with_verification(coc_tag: str, player_token: str, token: str = Depends(oauth2_scheme)): +async def add_coc_account_with_verification(coc_tag: str, player_token: str, authorization: str = Header(None)): """Associate a Clash of Clans account with a user WITH ownership verification.""" - current_user = await get_current_user(token) + current_user = await get_current_user(authorization) user_id = current_user["user_id"] if not re.match(r"^#?[A-Z0-9]{5,12}$", coc_tag): @@ -146,12 +122,11 @@ async def add_coc_account_with_verification(coc_tag: str, player_token: str, tok return {"message": "Clash of Clans account linked successfully with ownership verification"} - @router.get("/users/coc-accounts") -async def get_coc_accounts(token: str = Depends(oauth2_scheme)): +async def get_coc_accounts(authorization: str = Header(None)): """Retrieve all Clash of Clans accounts linked to a user.""" - current_user = await get_current_user(token) + current_user = await get_current_user(authorization) user_id = current_user["user_id"] user = await db_client.user_clash_accounts.find_one({"user_id": user_id}) @@ -161,12 +136,11 @@ async def get_coc_accounts(token: str = Depends(oauth2_scheme)): return {"coc_accounts": user["coc_accounts"]} - @router.delete("/users/remove-coc-account") -async def remove_coc_account(coc_tag: str, token: str = Depends(oauth2_scheme)): +async def remove_coc_account(coc_tag: str, authorization: str = Header(None)): """Remove a specific Clash of Clans account linked to a user.""" - current_user = await get_current_user(token) + current_user = await get_current_user(authorization) user_id = current_user["user_id"] if not coc_tag.startswith("#"): @@ -181,4 +155,3 @@ async def remove_coc_account(coc_tag: str, token: str = Depends(oauth2_scheme)): raise HTTPException(status_code=404, detail="Clash of Clans account not found or not linked to your profile") return {"message": "Clash of Clans account unlinked successfully"} - diff --git a/routers/app/auth.py b/routers/app/auth.py index 7f26e86c..c12e3c31 100644 --- a/routers/app/auth.py +++ b/routers/app/auth.py @@ -5,7 +5,7 @@ import requests import pendulum as pend from dotenv import load_dotenv -from fastapi import Depends, HTTPException, Request, APIRouter +from fastapi import Header, HTTPException, Request, APIRouter from fastapi.security import OAuth2PasswordBearer from pydantic import BaseModel from utils.utils import db_client @@ -46,7 +46,6 @@ class Token(BaseModel): access_token: str - ############################ # Utility functions ############################ @@ -113,10 +112,12 @@ async def get_valid_discord_access_token(user_id: str) -> str: # Retrieve current user and validate token ############################ -@router.get("/auth/me", response_model=Token) -async def get_current_user(token: str): - if not token: - raise HTTPException(status_code=401, detail="Missing authentication token") +@router.get("/auth/me") +async def get_current_user(authorization: str = Header(None)): + if not authorization or not authorization.startswith("Bearer "): + raise HTTPException(status_code=401, detail="Missing or invalid authentication token") + + token = authorization.split("Bearer ")[1] current_user = await db_client.app_clashking_tokens.find_one({"access_token": token}) if not current_user: @@ -197,7 +198,8 @@ async def auth_discord(request: Request): "user_id": discord_user_id, "device_id": device_id, "discord_access_token": encrypted_discord_access, - "discord_refresh_token": encrypted_discord_refresh + "discord_refresh_token": encrypted_discord_refresh, + "expires_at": pend.now().add(days=180) }, upsert=True # Insert if not found ) diff --git a/routers/app/test.py b/routers/app/test.py new file mode 100644 index 00000000..35d2c785 --- /dev/null +++ b/routers/app/test.py @@ -0,0 +1,519 @@ +import os + +import httpx +import jwt +import requests +import pendulum as pend +from dotenv import load_dotenv +from fastapi import Depends, HTTPException, Request, APIRouter +from fastapi.security import OAuth2PasswordBearer +from pydantic import BaseModel +from utils.utils import db_client +from passlib.context import CryptContext +from cryptography.fernet import Fernet + +############################ +# Load environment variables +############################ +load_dotenv() + +############################ +# Global configuration +############################ +SECRET_KEY = os.getenv('SECRET_KEY') +REFRESH_SECRET = os.getenv('REFRESH_SECRET') +DISCORD_CLIENT_ID = os.getenv('DISCORD_CLIENT_ID') +DISCORD_CLIENT_SECRET = os.getenv('DISCORD_CLIENT_SECRET') +DISCORD_REDIRECT_URI = os.getenv('DISCORD_REDIRECT_URI') +ENCRYPTION_KEY = os.getenv('ENCRYPTION_KEY') + +# Fernet cipher for encryption/decryption +cipher = Fernet(ENCRYPTION_KEY) + +# Password hashing configuration +pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") + +# OAuth2 scheme +oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token") + +# FastAPI router +router = APIRouter(tags=["Authentication"], include_in_schema=True) + +############################ +# Data models +############################ +class Token(BaseModel): + access_token: str + refresh_token: str + +############################ +# Utility functions +############################ + +# Encrypt data (string) using Fernet +async def encrypt_data(data: str) -> str: + return cipher.encrypt(data.encode()).decode() + +# Decrypt data (string) using Fernet +async def decrypt_data(data: str) -> str: + return cipher.decrypt(data.encode()).decode() + +# Hash a password using bcrypt +def hash_password(password: str) -> str: + return pwd_context.hash(password) + +# Verify a plaintext password against a hashed one +def verify_password(plain_password: str, hashed_password: str) -> bool: + return pwd_context.verify(plain_password, hashed_password) + +# Generate a short-lived JWT (1 hour) +def generate_jwt(user_id: str, user_type: str): + payload = { + "sub": user_id, + "type": user_type, + "exp": pend.now().add(hours=1).int_timestamp + } + return jwt.encode(payload, SECRET_KEY, algorithm="HS256") + +# Generate a long-lived refresh token (90 days) +def generate_refresh_token(user_id: str, device_id: str): + payload = { + "sub": user_id, + "device": device_id, + "exp": pend.now().add(days=90).int_timestamp + } + return jwt.encode(payload, REFRESH_SECRET, algorithm="HS256") + +async def get_valid_discord_access_token(user_id: str) -> str: + discord_token = await db_client.app_discord_tokens.find_one({"user_id": user_id}) + if not discord_token: + raise HTTPException(status_code=401, detail="Missing Discord refresh token") + + refresh_token = await decrypt_data(discord_token["discord_refresh_token"]) + + # Générer un nouveau access_token + new_token_data = await refresh_discord_access_token(refresh_token) + return new_token_data["access_token"] + + +############################ +# JWT blacklist management +############################ +jwt_blacklist = set() + +def add_to_blacklist(token: str): + jwt_blacklist.add(token) + +def is_blacklisted(token: str) -> bool: + return token in jwt_blacklist + +############################ +# Retrieve current user and validate token +############################ +async def get_current_user(token: str): + if not token: + raise HTTPException(status_code=401, detail="Missing authentication token") + + current_user = await db_client.app_clashking_tokens.find_one({"access_token": token}) + if not current_user: + raise HTTPException(status_code=404, detail="User not found") + + if current_user.get("account_type") == "discord": + discord_access = await get_valid_discord_access_token(current_user["user_id"]) + + async with httpx.AsyncClient() as client: + response = await client.get( + "https://discord.com/api/users/@me", + headers={"Authorization": f"Bearer {discord_access}"} + ) + + if response.status_code == 200: + discord_data = response.json() + return { + "user_id": current_user["user_id"], + "discord_username": discord_data["username"], + "avatar_url": f"https://cdn.discordapp.com/avatars/{discord_data['id']}/{discord_data['avatar']}.png" + } + + raise HTTPException(status_code=500, detail="Error retrieving Discord profile") + + return current_user + +############################ +# Device ID validation +############################ +async def validate_device_id(request: Request, user_id: str): + """ + Check whether the X-Device-ID header is provided and belongs to an existing + session for the given user_id. + """ + device_header = request.headers.get("X-Device-ID") + if not device_header: + raise HTTPException(status_code=400, detail="Missing X-Device-ID header") + + sessions = await db_client.app_tokens.find({"user_id": user_id}).to_list(None) + device_ids = [session.get("device_id") for session in sessions] + if device_header not in device_ids: + raise HTTPException(status_code=403, detail="Invalid or unknown device ID") + +############################ +# Endpoints +############################ + +# 2) Link Discord account to a ClashKing user +@router.post("/auth/link-discord") +async def link_discord_account(request: Request): + """ + This endpoint links a Discord account to a ClashKing user by storing + the Discord ID in the user's record (encrypted if necessary). + """ + form = await request.form() + user_id = form.get("user_id") + discord_id = form.get("discord_id") + if not user_id or not discord_id: + raise HTTPException(status_code=400, detail="Missing user_id or discord_id") + + user = await db_client.app_users.find_one({"user_id": user_id}) + if not user: + raise HTTPException(status_code=404, detail="ClashKing user not found") + + encrypted_discord_id = await encrypt_data(discord_id) + + await db_client.app_users.update_one( + {"user_id": user_id}, + {"$set": {"discord_id": encrypted_discord_id}} + ) + return {"message": "Discord account linked successfully"} + +# 3) Authenticate ClashKing user +@router.post("/auth/clashking", response_model=Token) +async def auth_clashking(email: str, password: str, request: Request): + """ + This endpoint authenticates a user with ClashKing credentials (email/password). + If the user doesn't exist, a new account is created. Otherwise, the password + is verified. Access and refresh tokens are returned. + """ + device_id = request.headers.get("X-Device-ID", "unknown") + + encrypted_email = await encrypt_data(email) + user = await db_client.app_users.find_one({"email": encrypted_email}) + + if not user: + # Create a new user + hashed_pw = hash_password(password) + new_user = { + "user_id": str(pend.now().int_timestamp), + "email": encrypted_email, + "password": hashed_pw, + "account_type": "clashking", + "created_at": pend.now() + } + await db_client.app_users.insert_one(new_user) + user = new_user + else: + # Verify the provided password + if not verify_password(password, user["password"]): + raise HTTPException(status_code=403, detail="Invalid credentials") + + access_token = generate_jwt(user["user_id"], "clashking") + refresh_token = generate_refresh_token(user["user_id"], device_id) + + # Encrypt the refresh token before storing in DB + encrypted_refresh = await encrypt_data(refresh_token) + + await db_client.app_tokens.insert_one({ + "user_id": user["user_id"], + "refresh_token": encrypted_refresh, + "device_id": device_id, + "expires_at": pend.now().add(days=90) + }) + + return { + "access_token": access_token, + "refresh_token": await encrypt_data(refresh_token) + } + +@router.post("/auth/discord", response_model=Token) +async def auth_discord(request: Request): + form = await request.form() + code = form.get("code") + code_verifier = form.get("code_verifier") + device_id = request.headers.get("X-Device-ID", "unknown") + + if not code or not code_verifier: + raise HTTPException(status_code=400, detail="Missing Discord code or code_verifier") + + token_url = "https://discord.com/api/oauth2/token" + token_data = { + "client_id": DISCORD_CLIENT_ID, + "code": code, + "grant_type": "authorization_code", + "redirect_uri": DISCORD_REDIRECT_URI, + "code_verifier": code_verifier + } + + async with httpx.AsyncClient() as client: + token_response = await client.post(token_url, data=token_data, headers={"Content-Type": "application/x-www-form-urlencoded"}) + + if token_response.status_code != 200: + raise HTTPException(status_code=500, detail="Error during Discord authentication") + + discord_data = token_response.json() + refresh_token_discord = discord_data.get("refresh_token") + + user_response = await client.get( + "https://discord.com/api/users/@me", + headers={"Authorization": f"Bearer {discord_data['access_token']}"} + ) + + if user_response.status_code != 200: + raise HTTPException(status_code=500, detail="Error retrieving user info") + + user_data = user_response.json() + discord_user_id = user_data["id"] + + existing_user = await db_client.app_users.find_one({"user_id": discord_user_id}) + if not existing_user: + await db_client.app_users.insert_one({"user_id": discord_user_id, "created_at": pend.now()}) + + encrypted_discord_refresh = await encrypt_data(refresh_token_discord) if refresh_token_discord else None + + await db_client.app_discord_tokens.replace_one( + {"user_id": discord_user_id, "device_id": device_id}, + { + "user_id": discord_user_id, + "device_id": device_id, + "discord_refresh_token": encrypted_discord_refresh + }, + upsert=True # Insert if not found + ) + + access_token = generate_refresh_token(discord_user_id, device_id) + encrypted_token = await encrypt_data(access_token) + + await db_client.app_clashking_tokens.insert_one({ + "user_id": discord_user_id, + "account_type": "discord", + "access_token": encrypted_token, + "device_id": device_id, + "expires_at": pend.now().add(days=180) + }) + + return {"access_token": access_token} + + +# 5) Refresh token: generate a new access token +@router.post("/refresh-token", response_model=Token) +async def refresh_token(token: str, request: Request): + """ + This endpoint receives an existing refresh token (encrypted in the DB), + validates it, checks device_id, and issues a new access/refresh token pair. + """ + print("token", token) + # Decrypt the user-provided token to compare with the DB + stored_token = await db_client.app_tokens.find_one({"refresh_token": await encrypt_data(token)}) + + if not stored_token: + raise HTTPException(status_code=403, detail="Invalid token") + + try: + payload = jwt.decode(token, REFRESH_SECRET, algorithms=["HS256"]) + print("payload", payload) + user_id = payload.get("sub") + device_id = payload.get("device") + + # Validate the device_id from the request + await validate_device_id(request, user_id) + + new_access_token = generate_jwt(user_id, "clashking") + new_refresh_token = generate_refresh_token(user_id, device_id) + encrypted_new = await encrypt_data(new_refresh_token) + + # Update the stored token in the DB + await db_client.app_tokens.update_one( + {"refresh_token": stored_token["refresh_token"]}, + {"$set": { + "refresh_token": encrypted_new, + "expires_at": pend.now().add(days=90) + }} + ) + + return { + "access_token": new_access_token, + "refresh_token": await encrypt_data(new_refresh_token) + } + + except jwt.ExpiredSignatureError: + raise HTTPException(status_code=403, detail="Refresh token expired") + except jwt.exceptions.PyJWTError: + raise HTTPException(status_code=403, detail="Invalid token") + +# 6) Get current user info +@router.get("/users/me") +async def read_users_me(current_user=Depends(get_current_user)): + """ + Returns the current user's information: + - For ClashKing users: Returns decrypted email. + - For Discord users: Fetches username & avatar from the Discord API. + """ + user_data = { + "user_id": current_user["user_id"], + "account_type": current_user.get("account_type", "unknown"), + "created_at": current_user.get("created_at"), + } + + # If the user is a ClashKing account, return the decrypted email + if current_user["account_type"] == "clashking": + decrypted_email = None + if "email" in current_user: + try: + decrypted_email = await decrypt_data(current_user["email"]) + except: + decrypted_email = "(error decrypting email)" + user_data["email"] = decrypted_email + + # If the user is a Discord account, fetch their username and avatar + elif current_user["account_type"] == "discord": + try: + # Decrypt the stored Discord access token + discord_access = await decrypt_data(current_user["discord_access_token"]) + + # Call Discord API to get user information + response = requests.get( + "https://discord.com/api/users/@me", + headers={"Authorization": f"Bearer {discord_access}"} + ) + + if response.status_code == 200: + discord_data = response.json() + user_data["discord_username"] = discord_data["username"] + user_data["avatar_url"] = f"https://cdn.discordapp.com/avatars/{discord_data['id']}/{discord_data['avatar']}.png" + else: + raise HTTPException(status_code=500, detail="Error from Discord API") + + except Exception as e: + raise HTTPException(status_code=500, detail=f"Failed to fetch Discord profile: {str(e)}") + + return user_data + +# 7) Get all user sessions +@router.get("/users/sessions") +async def get_sessions(current_user=Depends(get_current_user)): + """ + This endpoint fetches all active sessions (refresh tokens) associated + with the current user. + """ + user_id = current_user["user_id"] + sessions = await db_client.app_tokens.find({"user_id": user_id}).to_list(None) + return [ + { + "device_id": s.get("device_id"), + "expires_at": s.get("expires_at") + } for s in sessions + ] + +# 8) Logout (invalidate one session) +@router.post("/logout") +async def logout(token: str): + """ + This endpoint invalidates (removes) a refresh token from the DB, + effectively logging out of one session. Optionally, you can also + blacklist the associated access token if you need immediate invalidation. + """ + encrypted_token = await encrypt_data(token) + result = await db_client.app_tokens.delete_one({"refresh_token": encrypted_token}) + if result.deleted_count == 0: + raise HTTPException(status_code=404, detail="No session found for given token") + + # Optionally add the token to the blacklist + # add_to_blacklist(token) + + return {"message": "Successfully logged out"} + +@router.get("/discord/me") +async def get_discord_profile(current_user=Depends(get_current_user)): + user_id = current_user["user_id"] + + # Retrieve the stored Discord tokens + user_record = await db_client.app_users.find_one({"user_id": user_id}) + if not user_record or "discord_access_token" not in user_record: + raise HTTPException(status_code=404, detail="No Discord token found") + + # Decrypt the access token + discord_access_token = await decrypt_data(user_record["discord_access_token"]) + + # 1) Tenter d'appeler l'API Discord + response = requests.get( + "https://discord.com/api/users/@me", + headers={"Authorization": f"Bearer {discord_access_token}"} + ) + + # 2) Si le token Discord est expiré (401), on tente un refresh + if response.status_code == 401: + if "discord_refresh_token" not in user_record or not user_record["discord_refresh_token"]: + raise HTTPException(status_code=401, detail="No Discord refresh token stored") + + # On tente de rafraîchir le token + try: + new_discord_data = refresh_discord_access_token(user_record["discord_refresh_token"]) + except Exception as e: + raise HTTPException(status_code=500, detail=f"Error refreshing Discord token: {e}") + + # On met à jour la base avec les nouveaux tokens + new_access = new_discord_data["access_token"] + new_refresh = new_discord_data.get("refresh_token") # peut être None + new_expires_in = new_discord_data.get("expires_in") + + encrypted_discord_access = await encrypt_data(new_access) + encrypted_discord_refresh = await encrypt_data(new_refresh) if new_refresh else None + + await db_client.app_users.update_one( + {"user_id": user_id}, + { + "$set": { + "discord_access_token": encrypted_discord_access, + "discord_refresh_token": encrypted_discord_refresh, + "discord_expires_in": new_expires_in, + "updated_at": pend.now() + } + } + ) + + # On refait l'appel à Discord avec le nouveau token + response = requests.get( + "https://discord.com/api/users/@me", + headers={"Authorization": f"Bearer {new_access}"} + ) + + if response.status_code != 200: + raise HTTPException( + status_code=500, + detail=f"Error from Discord: {response.json()}" + ) + + return response.json() + +async def refresh_discord_access_token(encrypted_refresh_token: str) -> dict: + """ + Refreshes the Discord access token using the stored refresh token. + """ + try: + refresh_token = await decrypt_data(encrypted_refresh_token) + token_data = { + "client_id": DISCORD_CLIENT_ID, + "client_secret": DISCORD_CLIENT_SECRET, + "grant_type": "refresh_token", + "refresh_token": refresh_token + } + headers = {"Content-Type": "application/x-www-form-urlencoded"} + token_response = requests.post("https://discord.com/api/oauth2/token", data=token_data, headers=headers) + + if token_response.status_code == 200: + return token_response.json() + else: + raise HTTPException( + status_code=401, + detail=f"Failed to refresh Discord token: {token_response.json()}" + ) + except Exception as e: + raise HTTPException(status_code=500, detail=f"Error refreshing Discord token: {str(e)}") diff --git a/utils/utils.py b/utils/utils.py index c189efa9..0cbdbb1a 100644 --- a/utils/utils.py +++ b/utils/utils.py @@ -105,6 +105,7 @@ def __init__(self): self.app_users: collection_class = self.app.users self.app_discord_tokens: collection_class = self.app.discord_tokens self.app_clashking_tokens: collection_class = self.app.clashking_tokens + self.user_clash_accounts: collection_class = client.clashking.coc_accounts db_client = DBClient() From f62e366b101490c78e792307f139b94c0a505c2c Mon Sep 17 00:00:00 2001 From: Destinea Date: Mon, 3 Mar 2025 16:52:08 +0100 Subject: [PATCH 023/174] fix: Access token --- routers/app/auth.py | 4 +- routers/app/test.py | 1038 +++++++++++++++++++++---------------------- 2 files changed, 522 insertions(+), 520 deletions(-) diff --git a/routers/app/auth.py b/routers/app/auth.py index c12e3c31..718ebd06 100644 --- a/routers/app/auth.py +++ b/routers/app/auth.py @@ -119,7 +119,9 @@ async def get_current_user(authorization: str = Header(None)): token = authorization.split("Bearer ")[1] - current_user = await db_client.app_clashking_tokens.find_one({"access_token": token}) + encrypt_token = await encrypt_data(token) + + current_user = await db_client.app_clashking_tokens.find_one({"access_token": encrypt_token}) if not current_user: raise HTTPException(status_code=404, detail="User not found") diff --git a/routers/app/test.py b/routers/app/test.py index 35d2c785..59dc7ba5 100644 --- a/routers/app/test.py +++ b/routers/app/test.py @@ -1,519 +1,519 @@ -import os - -import httpx -import jwt -import requests -import pendulum as pend -from dotenv import load_dotenv -from fastapi import Depends, HTTPException, Request, APIRouter -from fastapi.security import OAuth2PasswordBearer -from pydantic import BaseModel -from utils.utils import db_client -from passlib.context import CryptContext -from cryptography.fernet import Fernet - -############################ -# Load environment variables -############################ -load_dotenv() - -############################ -# Global configuration -############################ -SECRET_KEY = os.getenv('SECRET_KEY') -REFRESH_SECRET = os.getenv('REFRESH_SECRET') -DISCORD_CLIENT_ID = os.getenv('DISCORD_CLIENT_ID') -DISCORD_CLIENT_SECRET = os.getenv('DISCORD_CLIENT_SECRET') -DISCORD_REDIRECT_URI = os.getenv('DISCORD_REDIRECT_URI') -ENCRYPTION_KEY = os.getenv('ENCRYPTION_KEY') - -# Fernet cipher for encryption/decryption -cipher = Fernet(ENCRYPTION_KEY) - -# Password hashing configuration -pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") - -# OAuth2 scheme -oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token") - -# FastAPI router -router = APIRouter(tags=["Authentication"], include_in_schema=True) - -############################ -# Data models -############################ -class Token(BaseModel): - access_token: str - refresh_token: str - -############################ -# Utility functions -############################ - -# Encrypt data (string) using Fernet -async def encrypt_data(data: str) -> str: - return cipher.encrypt(data.encode()).decode() - -# Decrypt data (string) using Fernet -async def decrypt_data(data: str) -> str: - return cipher.decrypt(data.encode()).decode() - -# Hash a password using bcrypt -def hash_password(password: str) -> str: - return pwd_context.hash(password) - -# Verify a plaintext password against a hashed one -def verify_password(plain_password: str, hashed_password: str) -> bool: - return pwd_context.verify(plain_password, hashed_password) - -# Generate a short-lived JWT (1 hour) -def generate_jwt(user_id: str, user_type: str): - payload = { - "sub": user_id, - "type": user_type, - "exp": pend.now().add(hours=1).int_timestamp - } - return jwt.encode(payload, SECRET_KEY, algorithm="HS256") - -# Generate a long-lived refresh token (90 days) -def generate_refresh_token(user_id: str, device_id: str): - payload = { - "sub": user_id, - "device": device_id, - "exp": pend.now().add(days=90).int_timestamp - } - return jwt.encode(payload, REFRESH_SECRET, algorithm="HS256") - -async def get_valid_discord_access_token(user_id: str) -> str: - discord_token = await db_client.app_discord_tokens.find_one({"user_id": user_id}) - if not discord_token: - raise HTTPException(status_code=401, detail="Missing Discord refresh token") - - refresh_token = await decrypt_data(discord_token["discord_refresh_token"]) - - # Générer un nouveau access_token - new_token_data = await refresh_discord_access_token(refresh_token) - return new_token_data["access_token"] - - -############################ -# JWT blacklist management -############################ -jwt_blacklist = set() - -def add_to_blacklist(token: str): - jwt_blacklist.add(token) - -def is_blacklisted(token: str) -> bool: - return token in jwt_blacklist - -############################ -# Retrieve current user and validate token -############################ -async def get_current_user(token: str): - if not token: - raise HTTPException(status_code=401, detail="Missing authentication token") - - current_user = await db_client.app_clashking_tokens.find_one({"access_token": token}) - if not current_user: - raise HTTPException(status_code=404, detail="User not found") - - if current_user.get("account_type") == "discord": - discord_access = await get_valid_discord_access_token(current_user["user_id"]) - - async with httpx.AsyncClient() as client: - response = await client.get( - "https://discord.com/api/users/@me", - headers={"Authorization": f"Bearer {discord_access}"} - ) - - if response.status_code == 200: - discord_data = response.json() - return { - "user_id": current_user["user_id"], - "discord_username": discord_data["username"], - "avatar_url": f"https://cdn.discordapp.com/avatars/{discord_data['id']}/{discord_data['avatar']}.png" - } - - raise HTTPException(status_code=500, detail="Error retrieving Discord profile") - - return current_user - -############################ -# Device ID validation -############################ -async def validate_device_id(request: Request, user_id: str): - """ - Check whether the X-Device-ID header is provided and belongs to an existing - session for the given user_id. - """ - device_header = request.headers.get("X-Device-ID") - if not device_header: - raise HTTPException(status_code=400, detail="Missing X-Device-ID header") - - sessions = await db_client.app_tokens.find({"user_id": user_id}).to_list(None) - device_ids = [session.get("device_id") for session in sessions] - if device_header not in device_ids: - raise HTTPException(status_code=403, detail="Invalid or unknown device ID") - -############################ -# Endpoints -############################ - -# 2) Link Discord account to a ClashKing user -@router.post("/auth/link-discord") -async def link_discord_account(request: Request): - """ - This endpoint links a Discord account to a ClashKing user by storing - the Discord ID in the user's record (encrypted if necessary). - """ - form = await request.form() - user_id = form.get("user_id") - discord_id = form.get("discord_id") - if not user_id or not discord_id: - raise HTTPException(status_code=400, detail="Missing user_id or discord_id") - - user = await db_client.app_users.find_one({"user_id": user_id}) - if not user: - raise HTTPException(status_code=404, detail="ClashKing user not found") - - encrypted_discord_id = await encrypt_data(discord_id) - - await db_client.app_users.update_one( - {"user_id": user_id}, - {"$set": {"discord_id": encrypted_discord_id}} - ) - return {"message": "Discord account linked successfully"} - -# 3) Authenticate ClashKing user -@router.post("/auth/clashking", response_model=Token) -async def auth_clashking(email: str, password: str, request: Request): - """ - This endpoint authenticates a user with ClashKing credentials (email/password). - If the user doesn't exist, a new account is created. Otherwise, the password - is verified. Access and refresh tokens are returned. - """ - device_id = request.headers.get("X-Device-ID", "unknown") - - encrypted_email = await encrypt_data(email) - user = await db_client.app_users.find_one({"email": encrypted_email}) - - if not user: - # Create a new user - hashed_pw = hash_password(password) - new_user = { - "user_id": str(pend.now().int_timestamp), - "email": encrypted_email, - "password": hashed_pw, - "account_type": "clashking", - "created_at": pend.now() - } - await db_client.app_users.insert_one(new_user) - user = new_user - else: - # Verify the provided password - if not verify_password(password, user["password"]): - raise HTTPException(status_code=403, detail="Invalid credentials") - - access_token = generate_jwt(user["user_id"], "clashking") - refresh_token = generate_refresh_token(user["user_id"], device_id) - - # Encrypt the refresh token before storing in DB - encrypted_refresh = await encrypt_data(refresh_token) - - await db_client.app_tokens.insert_one({ - "user_id": user["user_id"], - "refresh_token": encrypted_refresh, - "device_id": device_id, - "expires_at": pend.now().add(days=90) - }) - - return { - "access_token": access_token, - "refresh_token": await encrypt_data(refresh_token) - } - -@router.post("/auth/discord", response_model=Token) -async def auth_discord(request: Request): - form = await request.form() - code = form.get("code") - code_verifier = form.get("code_verifier") - device_id = request.headers.get("X-Device-ID", "unknown") - - if not code or not code_verifier: - raise HTTPException(status_code=400, detail="Missing Discord code or code_verifier") - - token_url = "https://discord.com/api/oauth2/token" - token_data = { - "client_id": DISCORD_CLIENT_ID, - "code": code, - "grant_type": "authorization_code", - "redirect_uri": DISCORD_REDIRECT_URI, - "code_verifier": code_verifier - } - - async with httpx.AsyncClient() as client: - token_response = await client.post(token_url, data=token_data, headers={"Content-Type": "application/x-www-form-urlencoded"}) - - if token_response.status_code != 200: - raise HTTPException(status_code=500, detail="Error during Discord authentication") - - discord_data = token_response.json() - refresh_token_discord = discord_data.get("refresh_token") - - user_response = await client.get( - "https://discord.com/api/users/@me", - headers={"Authorization": f"Bearer {discord_data['access_token']}"} - ) - - if user_response.status_code != 200: - raise HTTPException(status_code=500, detail="Error retrieving user info") - - user_data = user_response.json() - discord_user_id = user_data["id"] - - existing_user = await db_client.app_users.find_one({"user_id": discord_user_id}) - if not existing_user: - await db_client.app_users.insert_one({"user_id": discord_user_id, "created_at": pend.now()}) - - encrypted_discord_refresh = await encrypt_data(refresh_token_discord) if refresh_token_discord else None - - await db_client.app_discord_tokens.replace_one( - {"user_id": discord_user_id, "device_id": device_id}, - { - "user_id": discord_user_id, - "device_id": device_id, - "discord_refresh_token": encrypted_discord_refresh - }, - upsert=True # Insert if not found - ) - - access_token = generate_refresh_token(discord_user_id, device_id) - encrypted_token = await encrypt_data(access_token) - - await db_client.app_clashking_tokens.insert_one({ - "user_id": discord_user_id, - "account_type": "discord", - "access_token": encrypted_token, - "device_id": device_id, - "expires_at": pend.now().add(days=180) - }) - - return {"access_token": access_token} - - -# 5) Refresh token: generate a new access token -@router.post("/refresh-token", response_model=Token) -async def refresh_token(token: str, request: Request): - """ - This endpoint receives an existing refresh token (encrypted in the DB), - validates it, checks device_id, and issues a new access/refresh token pair. - """ - print("token", token) - # Decrypt the user-provided token to compare with the DB - stored_token = await db_client.app_tokens.find_one({"refresh_token": await encrypt_data(token)}) - - if not stored_token: - raise HTTPException(status_code=403, detail="Invalid token") - - try: - payload = jwt.decode(token, REFRESH_SECRET, algorithms=["HS256"]) - print("payload", payload) - user_id = payload.get("sub") - device_id = payload.get("device") - - # Validate the device_id from the request - await validate_device_id(request, user_id) - - new_access_token = generate_jwt(user_id, "clashking") - new_refresh_token = generate_refresh_token(user_id, device_id) - encrypted_new = await encrypt_data(new_refresh_token) - - # Update the stored token in the DB - await db_client.app_tokens.update_one( - {"refresh_token": stored_token["refresh_token"]}, - {"$set": { - "refresh_token": encrypted_new, - "expires_at": pend.now().add(days=90) - }} - ) - - return { - "access_token": new_access_token, - "refresh_token": await encrypt_data(new_refresh_token) - } - - except jwt.ExpiredSignatureError: - raise HTTPException(status_code=403, detail="Refresh token expired") - except jwt.exceptions.PyJWTError: - raise HTTPException(status_code=403, detail="Invalid token") - -# 6) Get current user info -@router.get("/users/me") -async def read_users_me(current_user=Depends(get_current_user)): - """ - Returns the current user's information: - - For ClashKing users: Returns decrypted email. - - For Discord users: Fetches username & avatar from the Discord API. - """ - user_data = { - "user_id": current_user["user_id"], - "account_type": current_user.get("account_type", "unknown"), - "created_at": current_user.get("created_at"), - } - - # If the user is a ClashKing account, return the decrypted email - if current_user["account_type"] == "clashking": - decrypted_email = None - if "email" in current_user: - try: - decrypted_email = await decrypt_data(current_user["email"]) - except: - decrypted_email = "(error decrypting email)" - user_data["email"] = decrypted_email - - # If the user is a Discord account, fetch their username and avatar - elif current_user["account_type"] == "discord": - try: - # Decrypt the stored Discord access token - discord_access = await decrypt_data(current_user["discord_access_token"]) - - # Call Discord API to get user information - response = requests.get( - "https://discord.com/api/users/@me", - headers={"Authorization": f"Bearer {discord_access}"} - ) - - if response.status_code == 200: - discord_data = response.json() - user_data["discord_username"] = discord_data["username"] - user_data["avatar_url"] = f"https://cdn.discordapp.com/avatars/{discord_data['id']}/{discord_data['avatar']}.png" - else: - raise HTTPException(status_code=500, detail="Error from Discord API") - - except Exception as e: - raise HTTPException(status_code=500, detail=f"Failed to fetch Discord profile: {str(e)}") - - return user_data - -# 7) Get all user sessions -@router.get("/users/sessions") -async def get_sessions(current_user=Depends(get_current_user)): - """ - This endpoint fetches all active sessions (refresh tokens) associated - with the current user. - """ - user_id = current_user["user_id"] - sessions = await db_client.app_tokens.find({"user_id": user_id}).to_list(None) - return [ - { - "device_id": s.get("device_id"), - "expires_at": s.get("expires_at") - } for s in sessions - ] - -# 8) Logout (invalidate one session) -@router.post("/logout") -async def logout(token: str): - """ - This endpoint invalidates (removes) a refresh token from the DB, - effectively logging out of one session. Optionally, you can also - blacklist the associated access token if you need immediate invalidation. - """ - encrypted_token = await encrypt_data(token) - result = await db_client.app_tokens.delete_one({"refresh_token": encrypted_token}) - if result.deleted_count == 0: - raise HTTPException(status_code=404, detail="No session found for given token") - - # Optionally add the token to the blacklist - # add_to_blacklist(token) - - return {"message": "Successfully logged out"} - -@router.get("/discord/me") -async def get_discord_profile(current_user=Depends(get_current_user)): - user_id = current_user["user_id"] - - # Retrieve the stored Discord tokens - user_record = await db_client.app_users.find_one({"user_id": user_id}) - if not user_record or "discord_access_token" not in user_record: - raise HTTPException(status_code=404, detail="No Discord token found") - - # Decrypt the access token - discord_access_token = await decrypt_data(user_record["discord_access_token"]) - - # 1) Tenter d'appeler l'API Discord - response = requests.get( - "https://discord.com/api/users/@me", - headers={"Authorization": f"Bearer {discord_access_token}"} - ) - - # 2) Si le token Discord est expiré (401), on tente un refresh - if response.status_code == 401: - if "discord_refresh_token" not in user_record or not user_record["discord_refresh_token"]: - raise HTTPException(status_code=401, detail="No Discord refresh token stored") - - # On tente de rafraîchir le token - try: - new_discord_data = refresh_discord_access_token(user_record["discord_refresh_token"]) - except Exception as e: - raise HTTPException(status_code=500, detail=f"Error refreshing Discord token: {e}") - - # On met à jour la base avec les nouveaux tokens - new_access = new_discord_data["access_token"] - new_refresh = new_discord_data.get("refresh_token") # peut être None - new_expires_in = new_discord_data.get("expires_in") - - encrypted_discord_access = await encrypt_data(new_access) - encrypted_discord_refresh = await encrypt_data(new_refresh) if new_refresh else None - - await db_client.app_users.update_one( - {"user_id": user_id}, - { - "$set": { - "discord_access_token": encrypted_discord_access, - "discord_refresh_token": encrypted_discord_refresh, - "discord_expires_in": new_expires_in, - "updated_at": pend.now() - } - } - ) - - # On refait l'appel à Discord avec le nouveau token - response = requests.get( - "https://discord.com/api/users/@me", - headers={"Authorization": f"Bearer {new_access}"} - ) - - if response.status_code != 200: - raise HTTPException( - status_code=500, - detail=f"Error from Discord: {response.json()}" - ) - - return response.json() - -async def refresh_discord_access_token(encrypted_refresh_token: str) -> dict: - """ - Refreshes the Discord access token using the stored refresh token. - """ - try: - refresh_token = await decrypt_data(encrypted_refresh_token) - token_data = { - "client_id": DISCORD_CLIENT_ID, - "client_secret": DISCORD_CLIENT_SECRET, - "grant_type": "refresh_token", - "refresh_token": refresh_token - } - headers = {"Content-Type": "application/x-www-form-urlencoded"} - token_response = requests.post("https://discord.com/api/oauth2/token", data=token_data, headers=headers) - - if token_response.status_code == 200: - return token_response.json() - else: - raise HTTPException( - status_code=401, - detail=f"Failed to refresh Discord token: {token_response.json()}" - ) - except Exception as e: - raise HTTPException(status_code=500, detail=f"Error refreshing Discord token: {str(e)}") +# import os +# +# import httpx +# import jwt +# import requests +# import pendulum as pend +# from dotenv import load_dotenv +# from fastapi import Depends, HTTPException, Request, APIRouter +# from fastapi.security import OAuth2PasswordBearer +# from pydantic import BaseModel +# from utils.utils import db_client +# from passlib.context import CryptContext +# from cryptography.fernet import Fernet +# +# ############################ +# # Load environment variables +# ############################ +# load_dotenv() +# +# ############################ +# # Global configuration +# ############################ +# SECRET_KEY = os.getenv('SECRET_KEY') +# REFRESH_SECRET = os.getenv('REFRESH_SECRET') +# DISCORD_CLIENT_ID = os.getenv('DISCORD_CLIENT_ID') +# DISCORD_CLIENT_SECRET = os.getenv('DISCORD_CLIENT_SECRET') +# DISCORD_REDIRECT_URI = os.getenv('DISCORD_REDIRECT_URI') +# ENCRYPTION_KEY = os.getenv('ENCRYPTION_KEY') +# +# # Fernet cipher for encryption/decryption +# cipher = Fernet(ENCRYPTION_KEY) +# +# # Password hashing configuration +# pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") +# +# # OAuth2 scheme +# oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token") +# +# # FastAPI router +# router = APIRouter(tags=["Authentication"], include_in_schema=True) +# +# ############################ +# # Data models +# ############################ +# class Token(BaseModel): +# access_token: str +# refresh_token: str +# +# ############################ +# # Utility functions +# ############################ +# +# # Encrypt data (string) using Fernet +# async def encrypt_data(data: str) -> str: +# return cipher.encrypt(data.encode()).decode() +# +# # Decrypt data (string) using Fernet +# async def decrypt_data(data: str) -> str: +# return cipher.decrypt(data.encode()).decode() +# +# # Hash a password using bcrypt +# def hash_password(password: str) -> str: +# return pwd_context.hash(password) +# +# # Verify a plaintext password against a hashed one +# def verify_password(plain_password: str, hashed_password: str) -> bool: +# return pwd_context.verify(plain_password, hashed_password) +# +# # Generate a short-lived JWT (1 hour) +# def generate_jwt(user_id: str, user_type: str): +# payload = { +# "sub": user_id, +# "type": user_type, +# "exp": pend.now().add(hours=1).int_timestamp +# } +# return jwt.encode(payload, SECRET_KEY, algorithm="HS256") +# +# # Generate a long-lived refresh token (90 days) +# def generate_refresh_token(user_id: str, device_id: str): +# payload = { +# "sub": user_id, +# "device": device_id, +# "exp": pend.now().add(days=90).int_timestamp +# } +# return jwt.encode(payload, REFRESH_SECRET, algorithm="HS256") +# +# async def get_valid_discord_access_token(user_id: str) -> str: +# discord_token = await db_client.app_discord_tokens.find_one({"user_id": user_id}) +# if not discord_token: +# raise HTTPException(status_code=401, detail="Missing Discord refresh token") +# +# refresh_token = await decrypt_data(discord_token["discord_refresh_token"]) +# +# # Générer un nouveau access_token +# new_token_data = await refresh_discord_access_token(refresh_token) +# return new_token_data["access_token"] +# +# +# ############################ +# # JWT blacklist management +# ############################ +# jwt_blacklist = set() +# +# def add_to_blacklist(token: str): +# jwt_blacklist.add(token) +# +# def is_blacklisted(token: str) -> bool: +# return token in jwt_blacklist +# +# ############################ +# # Retrieve current user and validate token +# ############################ +# async def get_current_user(token: str): +# if not token: +# raise HTTPException(status_code=401, detail="Missing authentication token") +# +# current_user = await db_client.app_clashking_tokens.find_one({"access_token": token}) +# if not current_user: +# raise HTTPException(status_code=404, detail="User not found") +# +# if current_user.get("account_type") == "discord": +# discord_access = await get_valid_discord_access_token(current_user["user_id"]) +# +# async with httpx.AsyncClient() as client: +# response = await client.get( +# "https://discord.com/api/users/@me", +# headers={"Authorization": f"Bearer {discord_access}"} +# ) +# +# if response.status_code == 200: +# discord_data = response.json() +# return { +# "user_id": current_user["user_id"], +# "discord_username": discord_data["username"], +# "avatar_url": f"https://cdn.discordapp.com/avatars/{discord_data['id']}/{discord_data['avatar']}.png" +# } +# +# raise HTTPException(status_code=500, detail="Error retrieving Discord profile") +# +# return current_user +# +# ############################ +# # Device ID validation +# ############################ +# async def validate_device_id(request: Request, user_id: str): +# """ +# Check whether the X-Device-ID header is provided and belongs to an existing +# session for the given user_id. +# """ +# device_header = request.headers.get("X-Device-ID") +# if not device_header: +# raise HTTPException(status_code=400, detail="Missing X-Device-ID header") +# +# sessions = await db_client.app_tokens.find({"user_id": user_id}).to_list(None) +# device_ids = [session.get("device_id") for session in sessions] +# if device_header not in device_ids: +# raise HTTPException(status_code=403, detail="Invalid or unknown device ID") +# +# ############################ +# # Endpoints +# ############################ +# +# # 2) Link Discord account to a ClashKing user +# @router.post("/auth/link-discord") +# async def link_discord_account(request: Request): +# """ +# This endpoint links a Discord account to a ClashKing user by storing +# the Discord ID in the user's record (encrypted if necessary). +# """ +# form = await request.form() +# user_id = form.get("user_id") +# discord_id = form.get("discord_id") +# if not user_id or not discord_id: +# raise HTTPException(status_code=400, detail="Missing user_id or discord_id") +# +# user = await db_client.app_users.find_one({"user_id": user_id}) +# if not user: +# raise HTTPException(status_code=404, detail="ClashKing user not found") +# +# encrypted_discord_id = await encrypt_data(discord_id) +# +# await db_client.app_users.update_one( +# {"user_id": user_id}, +# {"$set": {"discord_id": encrypted_discord_id}} +# ) +# return {"message": "Discord account linked successfully"} +# +# # 3) Authenticate ClashKing user +# @router.post("/auth/clashking", response_model=Token) +# async def auth_clashking(email: str, password: str, request: Request): +# """ +# This endpoint authenticates a user with ClashKing credentials (email/password). +# If the user doesn't exist, a new account is created. Otherwise, the password +# is verified. Access and refresh tokens are returned. +# """ +# device_id = request.headers.get("X-Device-ID", "unknown") +# +# encrypted_email = await encrypt_data(email) +# user = await db_client.app_users.find_one({"email": encrypted_email}) +# +# if not user: +# # Create a new user +# hashed_pw = hash_password(password) +# new_user = { +# "user_id": str(pend.now().int_timestamp), +# "email": encrypted_email, +# "password": hashed_pw, +# "account_type": "clashking", +# "created_at": pend.now() +# } +# await db_client.app_users.insert_one(new_user) +# user = new_user +# else: +# # Verify the provided password +# if not verify_password(password, user["password"]): +# raise HTTPException(status_code=403, detail="Invalid credentials") +# +# access_token = generate_jwt(user["user_id"], "clashking") +# refresh_token = generate_refresh_token(user["user_id"], device_id) +# +# # Encrypt the refresh token before storing in DB +# encrypted_refresh = await encrypt_data(refresh_token) +# +# await db_client.app_tokens.insert_one({ +# "user_id": user["user_id"], +# "refresh_token": encrypted_refresh, +# "device_id": device_id, +# "expires_at": pend.now().add(days=90) +# }) +# +# return { +# "access_token": access_token, +# "refresh_token": await encrypt_data(refresh_token) +# } +# +# @router.post("/auth/discord", response_model=Token) +# async def auth_discord(request: Request): +# form = await request.form() +# code = form.get("code") +# code_verifier = form.get("code_verifier") +# device_id = request.headers.get("X-Device-ID", "unknown") +# +# if not code or not code_verifier: +# raise HTTPException(status_code=400, detail="Missing Discord code or code_verifier") +# +# token_url = "https://discord.com/api/oauth2/token" +# token_data = { +# "client_id": DISCORD_CLIENT_ID, +# "code": code, +# "grant_type": "authorization_code", +# "redirect_uri": DISCORD_REDIRECT_URI, +# "code_verifier": code_verifier +# } +# +# async with httpx.AsyncClient() as client: +# token_response = await client.post(token_url, data=token_data, headers={"Content-Type": "application/x-www-form-urlencoded"}) +# +# if token_response.status_code != 200: +# raise HTTPException(status_code=500, detail="Error during Discord authentication") +# +# discord_data = token_response.json() +# refresh_token_discord = discord_data.get("refresh_token") +# +# user_response = await client.get( +# "https://discord.com/api/users/@me", +# headers={"Authorization": f"Bearer {discord_data['access_token']}"} +# ) +# +# if user_response.status_code != 200: +# raise HTTPException(status_code=500, detail="Error retrieving user info") +# +# user_data = user_response.json() +# discord_user_id = user_data["id"] +# +# existing_user = await db_client.app_users.find_one({"user_id": discord_user_id}) +# if not existing_user: +# await db_client.app_users.insert_one({"user_id": discord_user_id, "created_at": pend.now()}) +# +# encrypted_discord_refresh = await encrypt_data(refresh_token_discord) if refresh_token_discord else None +# +# await db_client.app_discord_tokens.replace_one( +# {"user_id": discord_user_id, "device_id": device_id}, +# { +# "user_id": discord_user_id, +# "device_id": device_id, +# "discord_refresh_token": encrypted_discord_refresh +# }, +# upsert=True # Insert if not found +# ) +# +# access_token = generate_refresh_token(discord_user_id, device_id) +# encrypted_token = await encrypt_data(access_token) +# +# await db_client.app_clashking_tokens.insert_one({ +# "user_id": discord_user_id, +# "account_type": "discord", +# "access_token": encrypted_token, +# "device_id": device_id, +# "expires_at": pend.now().add(days=180) +# }) +# +# return {"access_token": access_token} +# +# +# # 5) Refresh token: generate a new access token +# @router.post("/refresh-token", response_model=Token) +# async def refresh_token(token: str, request: Request): +# """ +# This endpoint receives an existing refresh token (encrypted in the DB), +# validates it, checks device_id, and issues a new access/refresh token pair. +# """ +# print("token", token) +# # Decrypt the user-provided token to compare with the DB +# stored_token = await db_client.app_tokens.find_one({"refresh_token": await encrypt_data(token)}) +# +# if not stored_token: +# raise HTTPException(status_code=403, detail="Invalid token") +# +# try: +# payload = jwt.decode(token, REFRESH_SECRET, algorithms=["HS256"]) +# print("payload", payload) +# user_id = payload.get("sub") +# device_id = payload.get("device") +# +# # Validate the device_id from the request +# await validate_device_id(request, user_id) +# +# new_access_token = generate_jwt(user_id, "clashking") +# new_refresh_token = generate_refresh_token(user_id, device_id) +# encrypted_new = await encrypt_data(new_refresh_token) +# +# # Update the stored token in the DB +# await db_client.app_tokens.update_one( +# {"refresh_token": stored_token["refresh_token"]}, +# {"$set": { +# "refresh_token": encrypted_new, +# "expires_at": pend.now().add(days=90) +# }} +# ) +# +# return { +# "access_token": new_access_token, +# "refresh_token": await encrypt_data(new_refresh_token) +# } +# +# except jwt.ExpiredSignatureError: +# raise HTTPException(status_code=403, detail="Refresh token expired") +# except jwt.exceptions.PyJWTError: +# raise HTTPException(status_code=403, detail="Invalid token") +# +# # 6) Get current user info +# @router.get("/users/me") +# async def read_users_me(current_user=Depends(get_current_user)): +# """ +# Returns the current user's information: +# - For ClashKing users: Returns decrypted email. +# - For Discord users: Fetches username & avatar from the Discord API. +# """ +# user_data = { +# "user_id": current_user["user_id"], +# "account_type": current_user.get("account_type", "unknown"), +# "created_at": current_user.get("created_at"), +# } +# +# # If the user is a ClashKing account, return the decrypted email +# if current_user["account_type"] == "clashking": +# decrypted_email = None +# if "email" in current_user: +# try: +# decrypted_email = await decrypt_data(current_user["email"]) +# except: +# decrypted_email = "(error decrypting email)" +# user_data["email"] = decrypted_email +# +# # If the user is a Discord account, fetch their username and avatar +# elif current_user["account_type"] == "discord": +# try: +# # Decrypt the stored Discord access token +# discord_access = await decrypt_data(current_user["discord_access_token"]) +# +# # Call Discord API to get user information +# response = requests.get( +# "https://discord.com/api/users/@me", +# headers={"Authorization": f"Bearer {discord_access}"} +# ) +# +# if response.status_code == 200: +# discord_data = response.json() +# user_data["discord_username"] = discord_data["username"] +# user_data["avatar_url"] = f"https://cdn.discordapp.com/avatars/{discord_data['id']}/{discord_data['avatar']}.png" +# else: +# raise HTTPException(status_code=500, detail="Error from Discord API") +# +# except Exception as e: +# raise HTTPException(status_code=500, detail=f"Failed to fetch Discord profile: {str(e)}") +# +# return user_data +# +# # 7) Get all user sessions +# @router.get("/users/sessions") +# async def get_sessions(current_user=Depends(get_current_user)): +# """ +# This endpoint fetches all active sessions (refresh tokens) associated +# with the current user. +# """ +# user_id = current_user["user_id"] +# sessions = await db_client.app_tokens.find({"user_id": user_id}).to_list(None) +# return [ +# { +# "device_id": s.get("device_id"), +# "expires_at": s.get("expires_at") +# } for s in sessions +# ] +# +# # 8) Logout (invalidate one session) +# @router.post("/logout") +# async def logout(token: str): +# """ +# This endpoint invalidates (removes) a refresh token from the DB, +# effectively logging out of one session. Optionally, you can also +# blacklist the associated access token if you need immediate invalidation. +# """ +# encrypted_token = await encrypt_data(token) +# result = await db_client.app_tokens.delete_one({"refresh_token": encrypted_token}) +# if result.deleted_count == 0: +# raise HTTPException(status_code=404, detail="No session found for given token") +# +# # Optionally add the token to the blacklist +# # add_to_blacklist(token) +# +# return {"message": "Successfully logged out"} +# +# @router.get("/discord/me") +# async def get_discord_profile(current_user=Depends(get_current_user)): +# user_id = current_user["user_id"] +# +# # Retrieve the stored Discord tokens +# user_record = await db_client.app_users.find_one({"user_id": user_id}) +# if not user_record or "discord_access_token" not in user_record: +# raise HTTPException(status_code=404, detail="No Discord token found") +# +# # Decrypt the access token +# discord_access_token = await decrypt_data(user_record["discord_access_token"]) +# +# # 1) Tenter d'appeler l'API Discord +# response = requests.get( +# "https://discord.com/api/users/@me", +# headers={"Authorization": f"Bearer {discord_access_token}"} +# ) +# +# # 2) Si le token Discord est expiré (401), on tente un refresh +# if response.status_code == 401: +# if "discord_refresh_token" not in user_record or not user_record["discord_refresh_token"]: +# raise HTTPException(status_code=401, detail="No Discord refresh token stored") +# +# # On tente de rafraîchir le token +# try: +# new_discord_data = refresh_discord_access_token(user_record["discord_refresh_token"]) +# except Exception as e: +# raise HTTPException(status_code=500, detail=f"Error refreshing Discord token: {e}") +# +# # On met à jour la base avec les nouveaux tokens +# new_access = new_discord_data["access_token"] +# new_refresh = new_discord_data.get("refresh_token") # peut être None +# new_expires_in = new_discord_data.get("expires_in") +# +# encrypted_discord_access = await encrypt_data(new_access) +# encrypted_discord_refresh = await encrypt_data(new_refresh) if new_refresh else None +# +# await db_client.app_users.update_one( +# {"user_id": user_id}, +# { +# "$set": { +# "discord_access_token": encrypted_discord_access, +# "discord_refresh_token": encrypted_discord_refresh, +# "discord_expires_in": new_expires_in, +# "updated_at": pend.now() +# } +# } +# ) +# +# # On refait l'appel à Discord avec le nouveau token +# response = requests.get( +# "https://discord.com/api/users/@me", +# headers={"Authorization": f"Bearer {new_access}"} +# ) +# +# if response.status_code != 200: +# raise HTTPException( +# status_code=500, +# detail=f"Error from Discord: {response.json()}" +# ) +# +# return response.json() +# +# async def refresh_discord_access_token(encrypted_refresh_token: str) -> dict: +# """ +# Refreshes the Discord access token using the stored refresh token. +# """ +# try: +# refresh_token = await decrypt_data(encrypted_refresh_token) +# token_data = { +# "client_id": DISCORD_CLIENT_ID, +# "client_secret": DISCORD_CLIENT_SECRET, +# "grant_type": "refresh_token", +# "refresh_token": refresh_token +# } +# headers = {"Content-Type": "application/x-www-form-urlencoded"} +# token_response = requests.post("https://discord.com/api/oauth2/token", data=token_data, headers=headers) +# +# if token_response.status_code == 200: +# return token_response.json() +# else: +# raise HTTPException( +# status_code=401, +# detail=f"Failed to refresh Discord token: {token_response.json()}" +# ) +# except Exception as e: +# raise HTTPException(status_code=500, detail=f"Error refreshing Discord token: {str(e)}") From 8f5875c0e15df028d11ccee95228ac24d2758b90 Mon Sep 17 00:00:00 2001 From: Destinea Date: Mon, 3 Mar 2025 17:09:44 +0100 Subject: [PATCH 024/174] fix: Hash token --- routers/app/auth.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/routers/app/auth.py b/routers/app/auth.py index 718ebd06..803ebd9a 100644 --- a/routers/app/auth.py +++ b/routers/app/auth.py @@ -11,6 +11,7 @@ from utils.utils import db_client from passlib.context import CryptContext from cryptography.fernet import Fernet +import hashlib ############################ # Load environment variables @@ -50,11 +51,15 @@ class Token(BaseModel): # Utility functions ############################ +# Hash the token using SHA-256 +async def hash_token(token: str) -> str: + """Hash le token avec SHA-256 pour garantir un stockage sécurisé et déterministe.""" + return hashlib.sha256(token.encode()).hexdigest() + # Encrypt data (string) using Fernet async def encrypt_data(data: str) -> str: return cipher.encrypt(data.encode()).decode() - # Decrypt data (string) using Fernet async def decrypt_data(data: str) -> str: return cipher.decrypt(data.encode()).decode() @@ -119,7 +124,7 @@ async def get_current_user(authorization: str = Header(None)): token = authorization.split("Bearer ")[1] - encrypt_token = await encrypt_data(token) + encrypt_token = await hash_token(token) current_user = await db_client.app_clashking_tokens.find_one({"access_token": encrypt_token}) if not current_user: @@ -207,7 +212,7 @@ async def auth_discord(request: Request): ) access_token = generate_clashking_access_token(discord_user_id, device_id) - encrypted_token = await encrypt_data(access_token) + encrypted_token = await hash_token(access_token) await db_client.app_clashking_tokens.insert_one({ "user_id": discord_user_id, From 7b14cb8883c8837323d6463b63d742e72ff14179 Mon Sep 17 00:00:00 2001 From: Destinea Date: Mon, 3 Mar 2025 17:29:58 +0100 Subject: [PATCH 025/174] fix: UTF8 encryption --- routers/app/auth.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/routers/app/auth.py b/routers/app/auth.py index 803ebd9a..f407ceb6 100644 --- a/routers/app/auth.py +++ b/routers/app/auth.py @@ -12,6 +12,8 @@ from passlib.context import CryptContext from cryptography.fernet import Fernet import hashlib +import base64 + ############################ # Load environment variables @@ -58,11 +60,20 @@ async def hash_token(token: str) -> str: # Encrypt data (string) using Fernet async def encrypt_data(data: str) -> str: - return cipher.encrypt(data.encode()).decode() + """Encrypt data using Fernet.""" + encrypted = cipher.encrypt(data.encode("utf-8")).decode("utf-8") + return encrypted # Decrypt data (string) using Fernet async def decrypt_data(data: str) -> str: - return cipher.decrypt(data.encode()).decode() + """Decrypt data using Fernet.""" + try: + data_bytes = base64.b64decode(data) + decrypted = cipher.decrypt(data_bytes).decode("utf-8") + return decrypted + except Exception as e: + print(f"❌ Error decrypting data: {str(e)}") + raise HTTPException(status_code=500, detail="Failed to decrypt data") # Verify a plaintext password against a hashed one def verify_password(plain_password: str, hashed_password: str) -> bool: From 4c0702888238fefcec5aa2902d158c0c10b1ff31 Mon Sep 17 00:00:00 2001 From: Destinea Date: Tue, 4 Mar 2025 09:05:42 +0100 Subject: [PATCH 026/174] fix: jwt --- routers/app/auth.py | 140 +++++++++++++++++++++++++++++++++----------- 1 file changed, 105 insertions(+), 35 deletions(-) diff --git a/routers/app/auth.py b/routers/app/auth.py index f407ceb6..8c0373a7 100644 --- a/routers/app/auth.py +++ b/routers/app/auth.py @@ -11,10 +11,8 @@ from utils.utils import db_client from passlib.context import CryptContext from cryptography.fernet import Fernet -import hashlib import base64 - ############################ # Load environment variables ############################ @@ -29,6 +27,7 @@ DISCORD_CLIENT_SECRET = os.getenv('DISCORD_CLIENT_SECRET') DISCORD_REDIRECT_URI = os.getenv('DISCORD_REDIRECT_URI') ENCRYPTION_KEY = os.getenv('ENCRYPTION_KEY') +ALGORITHM = "HS256" # Fernet cipher for encryption/decryption cipher = Fernet(ENCRYPTION_KEY) @@ -49,21 +48,36 @@ class Token(BaseModel): access_token: str + +class UserInfo(BaseModel): + user_id: str + username: str + avatar_url: str + + +class AuthResponse(BaseModel): + access_token: str + refresh_token: str + user: UserInfo + + +class RefreshTokenRequest(BaseModel): + refresh_token: str + device_id: str + ############################ # Utility functions ############################ -# Hash the token using SHA-256 -async def hash_token(token: str) -> str: - """Hash le token avec SHA-256 pour garantir un stockage sécurisé et déterministe.""" - return hashlib.sha256(token.encode()).hexdigest() - # Encrypt data (string) using Fernet async def encrypt_data(data: str) -> str: """Encrypt data using Fernet.""" + print(f"🔒 Data: {data}") encrypted = cipher.encrypt(data.encode("utf-8")).decode("utf-8") + print(f"🔒 Encrypted data: {encrypted}") return encrypted + # Decrypt data (string) using Fernet async def decrypt_data(data: str) -> str: """Decrypt data using Fernet.""" @@ -75,10 +89,35 @@ async def decrypt_data(data: str) -> str: print(f"❌ Error decrypting data: {str(e)}") raise HTTPException(status_code=500, detail="Failed to decrypt data") + +def generate_jwt(user_id: str, device_id: str) -> str: + """Generate a JWT token for the user.""" + payload = { + "sub": user_id, + "device": device_id, + "exp": pend.now().add(days=90).int_timestamp + } + return jwt.encode(payload, SECRET_KEY, algorithm=ALGORITHM) + + +def decode_jwt(token: str) -> dict: + """Decode the JWT token and return the payload.""" + try: + decoded_token = jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM]) + return decoded_token + except jwt.ExpiredSignatureError: + raise HTTPException(status_code=401, detail="Expired token. Please refresh.") + except jwt.InvalidTokenError: + raise HTTPException(status_code=401, detail="Invalid token. Please login again.") + except Exception as e: + raise HTTPException(status_code=500, detail=f"Error decoding token: {str(e)}") + + # Verify a plaintext password against a hashed one def verify_password(plain_password: str, hashed_password: str) -> bool: return pwd_context.verify(plain_password, hashed_password) + # Generate a long-lived refresh token (90 days) def generate_clashking_access_token(user_id: str, device_id: str): payload = { @@ -88,6 +127,7 @@ def generate_clashking_access_token(user_id: str, device_id: str): } return jwt.encode(payload, REFRESH_SECRET, algorithm="HS256") + async def refresh_discord_access_token(encrypted_refresh_token: str) -> dict: """ Refreshes the Discord access token using the stored refresh token. @@ -113,6 +153,7 @@ async def refresh_discord_access_token(encrypted_refresh_token: str) -> dict: except Exception as e: raise HTTPException(status_code=500, detail=f"Error refreshing Discord token: {str(e)}") + async def get_valid_discord_access_token(user_id: str) -> str: discord_token = await db_client.app_discord_tokens.find_one({"user_id": user_id}) if not discord_token: @@ -124,6 +165,7 @@ async def get_valid_discord_access_token(user_id: str) -> str: new_token_data = await refresh_discord_access_token(refresh_token) return new_token_data["access_token"] + ############################ # Retrieve current user and validate token ############################ @@ -135,9 +177,10 @@ async def get_current_user(authorization: str = Header(None)): token = authorization.split("Bearer ")[1] - encrypt_token = await hash_token(token) + decoded_token = decode_jwt(token) - current_user = await db_client.app_clashking_tokens.find_one({"access_token": encrypt_token}) + user_id = decoded_token["sub"] + current_user = await db_client.app_users.find_one({"user_id": user_id}) if not current_user: raise HTTPException(status_code=404, detail="User not found") @@ -163,7 +206,8 @@ async def get_current_user(authorization: str = Header(None)): return current_user -@router.post("/auth/discord", response_model=Token) + +@router.post("/auth/discord", response_model=AuthResponse) async def auth_discord(request: Request): form = await request.form() code = form.get("code") @@ -173,6 +217,7 @@ async def auth_discord(request: Request): if not code or not code_verifier: raise HTTPException(status_code=400, detail="Missing Discord code or code_verifier") + # Get the access token from Discord token_url = "https://discord.com/api/oauth2/token" token_data = { "client_id": DISCORD_CLIENT_ID, @@ -190,11 +235,12 @@ async def auth_discord(request: Request): raise HTTPException(status_code=500, detail="Error during Discord authentication") discord_data = token_response.json() - refresh_token_discord = discord_data.get("refresh_token") + # Get the user info from Discord + async with httpx.AsyncClient() as client: user_response = await client.get( "https://discord.com/api/users/@me", - headers={"Authorization": f"Bearer {discord_data['access_token']}"} + headers={"Authorization": f"Bearer {discord_data['access_token']}"}, ) if user_response.status_code != 200: @@ -203,34 +249,58 @@ async def auth_discord(request: Request): user_data = user_response.json() discord_user_id = user_data["id"] + + # Verify if the user already exists in the database existing_user = await db_client.app_users.find_one({"user_id": discord_user_id}) if not existing_user: await db_client.app_users.insert_one({"user_id": discord_user_id, "created_at": pend.now()}) - encrypted_discord_access = await encrypt_data(discord_data["access_token"]) - encrypted_discord_refresh = await encrypt_data(refresh_token_discord) if refresh_token_discord else None - - await db_client.app_discord_tokens.replace_one( - {"user_id": discord_user_id, "device_id": device_id}, - { - "user_id": discord_user_id, - "device_id": device_id, - "discord_access_token": encrypted_discord_access, - "discord_refresh_token": encrypted_discord_refresh, - "expires_at": pend.now().add(days=180) - }, - upsert=True # Insert if not found + # Generate a JWT token for the user + access_token = generate_jwt(discord_user_id, device_id) + refresh_token = generate_refresh_token(discord_user_id) + + # Stocker le refresh_token dans la base + await db_client.app_refresh_tokens.update_one( + {"user_id": discord_user_id}, + {"$set": {"refresh_token": refresh_token, "expires_at": pend.now().add(days=30)}}, + upsert=True ) - access_token = generate_clashking_access_token(discord_user_id, device_id) - encrypted_token = await hash_token(access_token) + # Return the access token and user info + return AuthResponse( + access_token=access_token, + refresh_token=refresh_token, + user=UserInfo( + user_id=discord_user_id, + username=user_data["username"], + avatar_url=f"https://cdn.discordapp.com/avatars/{discord_user_id}/{user_data['avatar']}.png" + ) + ) - await db_client.app_clashking_tokens.insert_one({ - "user_id": discord_user_id, - "account_type": "discord", - "access_token": encrypted_token, - "device_id": device_id, - "expires_at": pend.now().add(days=180) - }) - return {"access_token": access_token} +@router.post("/auth/refresh") +async def refresh_access_token(request: RefreshTokenRequest) -> dict: + """Refresh the access token using the stored refresh token.""" + stored_refresh_token = await db_client.app_refresh_tokens.find_one({"refresh_token": request.refresh_token}) + + if not stored_refresh_token: + raise HTTPException(status_code=401, detail="Invalid refresh token.") + + if pend.now().int_timestamp > stored_refresh_token["expires_at"]: + raise HTTPException(status_code=401, detail="Expired refresh token. Please login again.") + + user_id = stored_refresh_token["user_id"] + + # Generate a new access token + new_access_token = generate_jwt(user_id, request.device_id) + + return {"access_token": new_access_token} + + +def generate_refresh_token(user_id: str) -> str: + """Generate a refresh token for the user.""" + payload = { + "sub": user_id, + "exp": pend.now().add(days=180).int_timestamp + } + return jwt.encode(payload, SECRET_KEY, algorithm=ALGORITHM) From 28db29480418b33efbc0df8f2b33dac2993ff4cb Mon Sep 17 00:00:00 2001 From: Destinea Date: Tue, 4 Mar 2025 09:44:01 +0100 Subject: [PATCH 027/174] fix: refresh_token collection --- utils/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/utils.py b/utils/utils.py index 0cbdbb1a..bfe4c1f9 100644 --- a/utils/utils.py +++ b/utils/utils.py @@ -104,7 +104,7 @@ def __init__(self): self.app = client.get_database("app") self.app_users: collection_class = self.app.users self.app_discord_tokens: collection_class = self.app.discord_tokens - self.app_clashking_tokens: collection_class = self.app.clashking_tokens + self.app_refresh_tokens: collection_class = self.app.refresh_tokens self.user_clash_accounts: collection_class = client.clashking.coc_accounts db_client = DBClient() From fc56d3d4c6b68bdb404f6606727ed25a6dbb1837 Mon Sep 17 00:00:00 2001 From: Destinea Date: Tue, 4 Mar 2025 10:23:17 +0100 Subject: [PATCH 028/174] fix: discord token --- routers/app/auth.py | 80 ++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 71 insertions(+), 9 deletions(-) diff --git a/routers/app/auth.py b/routers/app/auth.py index 8c0373a7..cd4d5f63 100644 --- a/routers/app/auth.py +++ b/routers/app/auth.py @@ -12,6 +12,7 @@ from passlib.context import CryptContext from cryptography.fernet import Fernet import base64 +import uuid ############################ # Load environment variables @@ -65,6 +66,7 @@ class RefreshTokenRequest(BaseModel): refresh_token: str device_id: str + ############################ # Utility functions ############################ @@ -155,14 +157,46 @@ async def refresh_discord_access_token(encrypted_refresh_token: str) -> dict: async def get_valid_discord_access_token(user_id: str) -> str: + """ + Verifies if the Discord access token is still valid and refreshes it if needed. + """ discord_token = await db_client.app_discord_tokens.find_one({"user_id": user_id}) if not discord_token: raise HTTPException(status_code=401, detail="Missing Discord refresh token") - refresh_token = await decrypt_data(discord_token["discord_refresh_token"]) + # Decrypt the access and refresh tokens + encrypted_access_token = discord_token.get("discord_access_token") + encrypted_refresh_token = discord_token.get("discord_refresh_token") + + if not encrypted_access_token or not encrypted_refresh_token: + raise HTTPException(status_code=401, detail="Invalid stored tokens") + + access_token = await decrypt_data(encrypted_access_token) + refresh_token = await decrypt_data(encrypted_refresh_token) - # Generate a new access token if the current one is expired + # Check if the access token is still valid (add a buffer of 60s to prevent expiration race condition) + if pend.now().int_timestamp < discord_token["expires_at"] - 60: + return access_token + + print("🔄 Access Token expired, refreshing...") + + # Refresh the access token new_token_data = await refresh_discord_access_token(refresh_token) + + # Encrypt and store the new access token with updated expiration time + new_encrypted_access = await encrypt_data(new_token_data["access_token"]) + new_expires_in = new_token_data.get("expires_in", 604800) # Default: 7 days (7 * 24 * 60 * 60) + + await db_client.app_discord_tokens.update_one( + {"user_id": user_id}, + { + "$set": { + "discord_access_token": new_encrypted_access, + "expires_at": pend.now().add(seconds=new_expires_in).int_timestamp + } + } + ) + return new_token_data["access_token"] @@ -217,7 +251,7 @@ async def auth_discord(request: Request): if not code or not code_verifier: raise HTTPException(status_code=400, detail="Missing Discord code or code_verifier") - # Get the access token from Discord + # Get the access token and refresh token from Discord token_url = "https://discord.com/api/oauth2/token" token_data = { "client_id": DISCORD_CLIENT_ID, @@ -235,12 +269,15 @@ async def auth_discord(request: Request): raise HTTPException(status_code=500, detail="Error during Discord authentication") discord_data = token_response.json() + access_token_discord = discord_data["access_token"] + refresh_token_discord = discord_data["refresh_token"] + expires_in = discord_data["expires_in"] - # Get the user info from Discord + # Get the user data from Discord async with httpx.AsyncClient() as client: user_response = await client.get( "https://discord.com/api/users/@me", - headers={"Authorization": f"Bearer {discord_data['access_token']}"}, + headers={"Authorization": f"Bearer {access_token_discord}"}, ) if user_response.status_code != 200: @@ -253,20 +290,45 @@ async def auth_discord(request: Request): # Verify if the user already exists in the database existing_user = await db_client.app_users.find_one({"user_id": discord_user_id}) if not existing_user: - await db_client.app_users.insert_one({"user_id": discord_user_id, "created_at": pend.now()}) + await db_client.app_users.insert_one( + {"user_id": discord_user_id, "_id": uuid.uuid4(), "created_at": pend.now()}) + + # Encrypt the tokens + encrypted_discord_access = await encrypt_data(access_token_discord) + encrypted_discord_refresh = await encrypt_data(refresh_token_discord) + + # Store the tokens in the database + await db_client.app_discord_tokens.update_one( + {"user_id": discord_user_id, "device_id": device_id}, + { + "$setOnInsert": {"_id": uuid.uuid4()}, + "$set": { + "discord_access_token": encrypted_discord_access, + "discord_refresh_token": encrypted_discord_refresh, + "expires_at": pend.now().add(seconds=expires_in) + } + }, + upsert=True + ) # Generate a JWT token for the user access_token = generate_jwt(discord_user_id, device_id) refresh_token = generate_refresh_token(discord_user_id) - # Stocker le refresh_token dans la base + # Store the refresh token in the database await db_client.app_refresh_tokens.update_one( {"user_id": discord_user_id}, - {"$set": {"refresh_token": refresh_token, "expires_at": pend.now().add(days=30)}}, + { + "$setOnInsert": {"_id": uuid.uuid4()}, + "$set": { + "refresh_token": refresh_token, + "expires_at": pend.now().add(days=30) + } + }, upsert=True ) - # Return the access token and user info + # Return the response return AuthResponse( access_token=access_token, refresh_token=refresh_token, From 53a9d8cdf9a921ae062ed38ae970fdd938158e0a Mon Sep 17 00:00:00 2001 From: Destinea Date: Tue, 4 Mar 2025 10:32:47 +0100 Subject: [PATCH 029/174] fix: uuid --- routers/app/auth.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/routers/app/auth.py b/routers/app/auth.py index cd4d5f63..705f7837 100644 --- a/routers/app/auth.py +++ b/routers/app/auth.py @@ -13,6 +13,7 @@ from cryptography.fernet import Fernet import base64 import uuid +from bson import Binary ############################ # Load environment variables @@ -291,7 +292,7 @@ async def auth_discord(request: Request): existing_user = await db_client.app_users.find_one({"user_id": discord_user_id}) if not existing_user: await db_client.app_users.insert_one( - {"user_id": discord_user_id, "_id": uuid.uuid4(), "created_at": pend.now()}) + {"user_id": discord_user_id, "_id": Binary.from_uuid(uuid.uuid4()), "created_at": pend.now()}) # Encrypt the tokens encrypted_discord_access = await encrypt_data(access_token_discord) @@ -301,7 +302,7 @@ async def auth_discord(request: Request): await db_client.app_discord_tokens.update_one( {"user_id": discord_user_id, "device_id": device_id}, { - "$setOnInsert": {"_id": uuid.uuid4()}, + "$setOnInsert": {"_id": Binary.from_uuid(uuid.uuid4())}, "$set": { "discord_access_token": encrypted_discord_access, "discord_refresh_token": encrypted_discord_refresh, @@ -319,7 +320,7 @@ async def auth_discord(request: Request): await db_client.app_refresh_tokens.update_one( {"user_id": discord_user_id}, { - "$setOnInsert": {"_id": uuid.uuid4()}, + "$setOnInsert": {"_id": Binary.from_uuid(uuid.uuid4())}, "$set": { "refresh_token": refresh_token, "expires_at": pend.now().add(days=30) From 81d034240c3a80ecf161d1e7f9978de72d2a9936 Mon Sep 17 00:00:00 2001 From: Destinea Date: Tue, 4 Mar 2025 10:51:43 +0100 Subject: [PATCH 030/174] fix: uuid --- routers/app/auth.py | 10 ++++------ utils/utils.py | 10 ++++++++++ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/routers/app/auth.py b/routers/app/auth.py index 705f7837..65ca72ee 100644 --- a/routers/app/auth.py +++ b/routers/app/auth.py @@ -8,12 +8,10 @@ from fastapi import Header, HTTPException, Request, APIRouter from fastapi.security import OAuth2PasswordBearer from pydantic import BaseModel -from utils.utils import db_client +from utils.utils import db_client, generate_custom_id from passlib.context import CryptContext from cryptography.fernet import Fernet import base64 -import uuid -from bson import Binary ############################ # Load environment variables @@ -292,7 +290,7 @@ async def auth_discord(request: Request): existing_user = await db_client.app_users.find_one({"user_id": discord_user_id}) if not existing_user: await db_client.app_users.insert_one( - {"user_id": discord_user_id, "_id": Binary.from_uuid(uuid.uuid4()), "created_at": pend.now()}) + {"user_id": discord_user_id, "_id": generate_custom_id(int(discord_user_id)), "created_at": pend.now()}) # Encrypt the tokens encrypted_discord_access = await encrypt_data(access_token_discord) @@ -302,7 +300,7 @@ async def auth_discord(request: Request): await db_client.app_discord_tokens.update_one( {"user_id": discord_user_id, "device_id": device_id}, { - "$setOnInsert": {"_id": Binary.from_uuid(uuid.uuid4())}, + "$setOnInsert": {"_id": generate_custom_id(int(discord_user_id))}, "$set": { "discord_access_token": encrypted_discord_access, "discord_refresh_token": encrypted_discord_refresh, @@ -320,7 +318,7 @@ async def auth_discord(request: Request): await db_client.app_refresh_tokens.update_one( {"user_id": discord_user_id}, { - "$setOnInsert": {"_id": Binary.from_uuid(uuid.uuid4())}, + "$setOnInsert": {"_id": generate_custom_id(int(discord_user_id))}, "$set": { "refresh_token": refresh_token, "expires_at": pend.now().add(days=30) diff --git a/utils/utils.py b/utils/utils.py index bfe4c1f9..1ed87e62 100644 --- a/utils/utils.py +++ b/utils/utils.py @@ -1,3 +1,5 @@ +from random import random + import motor.motor_asyncio from redis import asyncio as aioredis import redis @@ -359,3 +361,11 @@ def utc_to_local(utc_time: datetime, timezone: str = "Europe/Paris") -> str: utc_dt = utc_time.replace(tzinfo=pytz.utc) local_dt = utc_dt.astimezone(local_tz) return local_dt.strftime("%Y-%m-%d %H:%M") # Format for display + +def generate_custom_id(input_number): + base_number = ( + input_number + + int(pend.now(tz=pend.UTC).timestamp()) + + random.randint(1000000000, 9999999999) # Use random.randint + ) + return base_number \ No newline at end of file From 687e53fe3e0458b49f98a1edebfcb56430df140a Mon Sep 17 00:00:00 2001 From: Destinea Date: Tue, 4 Mar 2025 10:56:44 +0100 Subject: [PATCH 031/174] fix: randint --- utils/utils.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/utils/utils.py b/utils/utils.py index 1ed87e62..d2615c04 100644 --- a/utils/utils.py +++ b/utils/utils.py @@ -1,4 +1,4 @@ -from random import random +import random import motor.motor_asyncio from redis import asyncio as aioredis @@ -366,6 +366,6 @@ def generate_custom_id(input_number): base_number = ( input_number + int(pend.now(tz=pend.UTC).timestamp()) - + random.randint(1000000000, 9999999999) # Use random.randint + + random.randint(1000000000, 9999999999) ) return base_number \ No newline at end of file From 96d3bbba2f6e94b36b3b77dc8191acba919d713c Mon Sep 17 00:00:00 2001 From: Destinea Date: Tue, 4 Mar 2025 11:20:20 +0100 Subject: [PATCH 032/174] chore: debug --- routers/app/auth.py | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/routers/app/auth.py b/routers/app/auth.py index 65ca72ee..a8a2ea4b 100644 --- a/routers/app/auth.py +++ b/routers/app/auth.py @@ -173,6 +173,9 @@ async def get_valid_discord_access_token(user_id: str) -> str: access_token = await decrypt_data(encrypted_access_token) refresh_token = await decrypt_data(encrypted_refresh_token) + print(f"🔒 Access Token: {access_token}") + print(f"🔒 Refresh Token: {refresh_token}") + # Check if the access token is still valid (add a buffer of 60s to prevent expiration race condition) if pend.now().int_timestamp < discord_token["expires_at"] - 60: return access_token @@ -217,27 +220,24 @@ async def get_current_user(authorization: str = Header(None)): if not current_user: raise HTTPException(status_code=404, detail="User not found") - if current_user.get("account_type") == "discord": - discord_access = await get_valid_discord_access_token(current_user["user_id"]) - - async with httpx.AsyncClient() as client: - response = await client.get( - "https://discord.com/api/users/@me", - headers={"Authorization": f"Bearer {discord_access}"} - ) + discord_access = await get_valid_discord_access_token(current_user["user_id"]) - if response.status_code == 200: - discord_data = response.json() + async with httpx.AsyncClient() as client: + response = await client.get( + "https://discord.com/api/users/@me", + headers={"Authorization": f"Bearer {discord_access}"} + ) - return { - "user_id": current_user["user_id"], - "discord_username": discord_data["username"], - "avatar_url": f"https://cdn.discordapp.com/avatars/{discord_data['id']}/{discord_data['avatar']}.png" - } + if response.status_code == 200: + discord_data = response.json() - raise HTTPException(status_code=500, detail="Error retrieving Discord profile") + return { + "user_id": current_user["user_id"], + "discord_username": discord_data["username"], + "avatar_url": f"https://cdn.discordapp.com/avatars/{discord_data['id']}/{discord_data['avatar']}.png" + } - return current_user + raise HTTPException(status_code=500, detail="Error retrieving Discord profile") @router.post("/auth/discord", response_model=AuthResponse) From 31e281d78eb5f313373b883903efedf69306033d Mon Sep 17 00:00:00 2001 From: Destinea Date: Tue, 4 Mar 2025 11:27:47 +0100 Subject: [PATCH 033/174] chore: debug --- routers/app/auth.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/routers/app/auth.py b/routers/app/auth.py index a8a2ea4b..9745a944 100644 --- a/routers/app/auth.py +++ b/routers/app/auth.py @@ -73,7 +73,7 @@ class RefreshTokenRequest(BaseModel): # Encrypt data (string) using Fernet async def encrypt_data(data: str) -> str: """Encrypt data using Fernet.""" - print(f"🔒 Data: {data}") + print(f"🔓 Data: {data}") encrypted = cipher.encrypt(data.encode("utf-8")).decode("utf-8") print(f"🔒 Encrypted data: {encrypted}") return encrypted @@ -83,8 +83,10 @@ async def encrypt_data(data: str) -> str: async def decrypt_data(data: str) -> str: """Decrypt data using Fernet.""" try: + print(f"🔒 Encrypted data: {data}") data_bytes = base64.b64decode(data) decrypted = cipher.decrypt(data_bytes).decode("utf-8") + print(f"🔓 Decrypted data: {decrypted}") return decrypted except Exception as e: print(f"❌ Error decrypting data: {str(e)}") @@ -173,9 +175,6 @@ async def get_valid_discord_access_token(user_id: str) -> str: access_token = await decrypt_data(encrypted_access_token) refresh_token = await decrypt_data(encrypted_refresh_token) - print(f"🔒 Access Token: {access_token}") - print(f"🔒 Refresh Token: {refresh_token}") - # Check if the access token is still valid (add a buffer of 60s to prevent expiration race condition) if pend.now().int_timestamp < discord_token["expires_at"] - 60: return access_token From cfe60368dcabec4e6c8f9572be4df2293d6b4791 Mon Sep 17 00:00:00 2001 From: Destinea Date: Tue, 4 Mar 2025 11:32:54 +0100 Subject: [PATCH 034/174] chore: debug --- routers/app/auth.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/routers/app/auth.py b/routers/app/auth.py index 9745a944..3062be5f 100644 --- a/routers/app/auth.py +++ b/routers/app/auth.py @@ -84,8 +84,7 @@ async def decrypt_data(data: str) -> str: """Decrypt data using Fernet.""" try: print(f"🔒 Encrypted data: {data}") - data_bytes = base64.b64decode(data) - decrypted = cipher.decrypt(data_bytes).decode("utf-8") + decrypted = cipher.decrypt(data).decode("utf-8") print(f"🔓 Decrypted data: {decrypted}") return decrypted except Exception as e: @@ -244,7 +243,7 @@ async def auth_discord(request: Request): form = await request.form() code = form.get("code") code_verifier = form.get("code_verifier") - device_id = request.headers.get("X-Device-ID", "unknown") + device_id = form.get("device_id") if not code or not code_verifier: raise HTTPException(status_code=400, detail="Missing Discord code or code_verifier") From d9613ddd8e68f62d6d557259d566d4d461b8f71f Mon Sep 17 00:00:00 2001 From: Destinea Date: Tue, 4 Mar 2025 11:48:59 +0100 Subject: [PATCH 035/174] chore: debug --- routers/app/auth.py | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/routers/app/auth.py b/routers/app/auth.py index 3062be5f..ccf31010 100644 --- a/routers/app/auth.py +++ b/routers/app/auth.py @@ -70,26 +70,21 @@ class RefreshTokenRequest(BaseModel): # Utility functions ############################ -# Encrypt data (string) using Fernet +# Encrypt data using Fernet async def encrypt_data(data: str) -> str: """Encrypt data using Fernet.""" - print(f"🔓 Data: {data}") - encrypted = cipher.encrypt(data.encode("utf-8")).decode("utf-8") - print(f"🔒 Encrypted data: {encrypted}") - return encrypted + encrypted = cipher.encrypt(data.encode("utf-8")) # Returns bytes + return base64.urlsafe_b64encode(encrypted).decode("utf-8") # Convert to str for storage - -# Decrypt data (string) using Fernet +# Decrypt data using Fernet async def decrypt_data(data: str) -> str: """Decrypt data using Fernet.""" try: - print(f"🔒 Encrypted data: {data}") - decrypted = cipher.decrypt(data).decode("utf-8") - print(f"🔓 Decrypted data: {decrypted}") + data_bytes = base64.urlsafe_b64decode(data.encode("utf-8")) # Convert back to bytes + decrypted = cipher.decrypt(data_bytes).decode("utf-8") # Decrypt and decode return decrypted except Exception as e: - print(f"❌ Error decrypting data: {str(e)}") - raise HTTPException(status_code=500, detail="Failed to decrypt data") + raise HTTPException(status_code=500, detail=f"Failed to decrypt data: {str(e)}") def generate_jwt(user_id: str, device_id: str) -> str: From 6200fe57622a2df97eb0890a13c2966b7385f5ec Mon Sep 17 00:00:00 2001 From: Destinea Date: Tue, 4 Mar 2025 11:56:58 +0100 Subject: [PATCH 036/174] fix: timestamp --- routers/app/auth.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/routers/app/auth.py b/routers/app/auth.py index ccf31010..f6a127e2 100644 --- a/routers/app/auth.py +++ b/routers/app/auth.py @@ -297,7 +297,7 @@ async def auth_discord(request: Request): "$set": { "discord_access_token": encrypted_discord_access, "discord_refresh_token": encrypted_discord_refresh, - "expires_at": pend.now().add(seconds=expires_in) + "expires_at": pend.now().add(seconds=expires_in).int_timestamp } }, upsert=True @@ -314,7 +314,7 @@ async def auth_discord(request: Request): "$setOnInsert": {"_id": generate_custom_id(int(discord_user_id))}, "$set": { "refresh_token": refresh_token, - "expires_at": pend.now().add(days=30) + "expires_at": pend.now().add(days=30).int_timestamp } }, upsert=True From 90bf821404b65c2ade00061ddbbbdce01b71fb86 Mon Sep 17 00:00:00 2001 From: Destinea Date: Tue, 4 Mar 2025 13:37:57 +0100 Subject: [PATCH 037/174] feat: coc accounts endpoints --- routers/app/accounts.py | 125 +++++++++++++++--------------- routers/app/auth.py | 158 +++----------------------------------- utils/auth_utils.py | 166 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 236 insertions(+), 213 deletions(-) create mode 100644 utils/auth_utils.py diff --git a/routers/app/accounts.py b/routers/app/accounts.py index 258f6d38..d4929da8 100644 --- a/routers/app/accounts.py +++ b/routers/app/accounts.py @@ -2,37 +2,20 @@ import pendulum as pend import re from dotenv import load_dotenv -from fastapi import Depends, HTTPException, Header, APIRouter -from pydantic import BaseModel +from fastapi import HTTPException, Header, APIRouter from utils.utils import db_client +from utils.auth_utils import decode_jwt # Import JWT decoder # Load environment variables load_dotenv() router = APIRouter(tags=["Coc Accounts"], include_in_schema=True) -class Token(BaseModel): - access_token: str - refresh_token: str ################ # Utility functions ################ -async def get_current_user(authorization: str = Header(None)): - """Retrieve user information from the ClashKing token.""" - - if not authorization or not authorization.startswith("Bearer "): - raise HTTPException(status_code=401, detail="Missing or invalid authentication token") - - token = authorization.split("Bearer ")[1] - - current_user = await db_client.app_clashking_tokens.find_one({"access_token": token}) - if not current_user: - raise HTTPException(status_code=403, detail="Invalid authentication token") - - return current_user # Returns user data - async def is_coc_tag_valid(coc_tag: str) -> bool: """Check if the Clash of Clans account exists using the API.""" coc_tag = coc_tag.replace("#", "%23") @@ -40,6 +23,7 @@ async def is_coc_tag_valid(coc_tag: str) -> bool: response = requests.get(url) return response.status_code == 200 # Returns True if the account exists + async def verify_coc_ownership(coc_tag: str, player_token: str) -> bool: """Verify if the provided player token matches the given Clash of Clans account.""" coc_tag = coc_tag.replace("#", "%23") @@ -47,6 +31,13 @@ async def verify_coc_ownership(coc_tag: str, player_token: str) -> bool: response = requests.post(url, json={"token": player_token}) return response.status_code == 200 # Returns True if the ownership is verified + +async def is_coc_account_linked(coc_tag: str) -> bool: + """Check if the Clash of Clans account is already linked to another user.""" + existing_account = await db_client.coc_accounts.find_one({"coc_tag": coc_tag}) + return existing_account is not None + + ################ # Endpoints ################ @@ -55,8 +46,9 @@ async def verify_coc_ownership(coc_tag: str, player_token: str) -> bool: async def add_coc_account(coc_tag: str, authorization: str = Header(None)): """Associate a Clash of Clans account (tag) with a user WITHOUT ownership verification.""" - current_user = await get_current_user(authorization) - user_id = current_user["user_id"] + token = authorization.split("Bearer ")[1] + decoded_token = decode_jwt(token) + user_id = decoded_token["sub"] if not re.match(r"^#?[A-Z0-9]{5,12}$", coc_tag): raise HTTPException(status_code=400, detail="Invalid Clash of Clans tag format") @@ -67,30 +59,25 @@ async def add_coc_account(coc_tag: str, authorization: str = Header(None)): if not await is_coc_tag_valid(coc_tag): raise HTTPException(status_code=404, detail="Clash of Clans account does not exist") - user = await db_client.user_clash_accounts.find_one({"user_id": user_id}) - - if user: - if any(account["coc_tag"] == coc_tag for account in user["coc_accounts"]): - raise HTTPException(status_code=400, detail="This Clash of Clans account is already linked to your profile") + if await is_coc_account_linked(coc_tag): + raise HTTPException(status_code=400, detail="This Clash of Clans account is already linked to another user") - await db_client.user_clash_accounts.update_one( - {"user_id": user_id}, - {"$push": {"coc_accounts": {"coc_tag": coc_tag, "added_at": pend.now()}}} - ) - else: - await db_client.user_clash_accounts.insert_one({ - "user_id": user_id, - "coc_accounts": [{"coc_tag": coc_tag, "added_at": pend.now()}] - }) + await db_client.coc_accounts.insert_one({ + "user_id": user_id, + "coc_tag": coc_tag, + "added_at": pend.now() + }) return {"message": "Clash of Clans account linked successfully"} + @router.post("/users/add-coc-account-with-token") async def add_coc_account_with_verification(coc_tag: str, player_token: str, authorization: str = Header(None)): """Associate a Clash of Clans account with a user WITH ownership verification.""" - current_user = await get_current_user(authorization) - user_id = current_user["user_id"] + token = authorization.split("Bearer ")[1] + decoded_token = decode_jwt(token) + user_id = decoded_token["sub"] if not re.match(r"^#?[A-Z0-9]{5,12}$", coc_tag): raise HTTPException(status_code=400, detail="Invalid Clash of Clans tag format") @@ -104,54 +91,64 @@ async def add_coc_account_with_verification(coc_tag: str, player_token: str, aut if not await verify_coc_ownership(coc_tag, player_token): raise HTTPException(status_code=403, detail="Invalid player token. You do not own this account.") - user = await db_client.user_clash_accounts.find_one({"user_id": user_id}) - - if user: - if any(account["coc_tag"] == coc_tag for account in user["coc_accounts"]): - raise HTTPException(status_code=400, detail="This Clash of Clans account is already linked to your profile") + if await is_coc_account_linked(coc_tag): + raise HTTPException(status_code=400, detail="This Clash of Clans account is already linked to another user") - await db_client.user_clash_accounts.update_one( - {"user_id": user_id}, - {"$push": {"coc_accounts": {"coc_tag": coc_tag, "added_at": pend.now()}}} - ) - else: - await db_client.user_clash_accounts.insert_one({ - "user_id": user_id, - "coc_accounts": [{"coc_tag": coc_tag, "added_at": pend.now()}] - }) + await db_client.coc_accounts.insert_one({ + "user_id": user_id, + "coc_tag": coc_tag, + "added_at": pend.now() + }) return {"message": "Clash of Clans account linked successfully with ownership verification"} + @router.get("/users/coc-accounts") async def get_coc_accounts(authorization: str = Header(None)): """Retrieve all Clash of Clans accounts linked to a user.""" - current_user = await get_current_user(authorization) - user_id = current_user["user_id"] + token = authorization.split("Bearer ")[1] + decoded_token = decode_jwt(token) + user_id = decoded_token["sub"] - user = await db_client.user_clash_accounts.find_one({"user_id": user_id}) + accounts = await db_client.coc_accounts.find({"user_id": user_id}).to_list(length=None) - if not user: - return {"coc_accounts": []} + return {"coc_accounts": accounts} - return {"coc_accounts": user["coc_accounts"]} @router.delete("/users/remove-coc-account") async def remove_coc_account(coc_tag: str, authorization: str = Header(None)): """Remove a specific Clash of Clans account linked to a user.""" - current_user = await get_current_user(authorization) - user_id = current_user["user_id"] + token = authorization.split("Bearer ")[1] + decoded_token = decode_jwt(token) + user_id = decoded_token["sub"] if not coc_tag.startswith("#"): coc_tag = f"#{coc_tag}" - result = await db_client.user_clash_accounts.update_one( - {"user_id": user_id}, - {"$pull": {"coc_accounts": {"coc_tag": coc_tag}}} - ) + result = await db_client.coc_accounts.delete_one({"user_id": user_id, "coc_tag": coc_tag}) - if result.modified_count == 0: + if result.deleted_count == 0: raise HTTPException(status_code=404, detail="Clash of Clans account not found or not linked to your profile") return {"message": "Clash of Clans account unlinked successfully"} + + +@router.get("/users/check-coc-account") +async def check_coc_account(coc_tag: str): + """Check if a Clash of Clans account is linked to any user.""" + + if not coc_tag.startswith("#"): + coc_tag = f"#{coc_tag}" + + existing_account = await db_client.coc_accounts.find_one({"coc_tag": coc_tag}) + + if not existing_account: + return {"linked": False, "message": "This Clash of Clans account is not linked to any user."} + + return { + "linked": True, + "user_id": existing_account["user_id"], + "message": "This Clash of Clans account is already linked to a user." + } \ No newline at end of file diff --git a/routers/app/auth.py b/routers/app/auth.py index f6a127e2..ed5fe396 100644 --- a/routers/app/auth.py +++ b/routers/app/auth.py @@ -1,13 +1,14 @@ import os import httpx -import jwt -import requests import pendulum as pend from dotenv import load_dotenv from fastapi import Header, HTTPException, Request, APIRouter from fastapi.security import OAuth2PasswordBearer from pydantic import BaseModel + +from utils.auth_utils import get_valid_discord_access_token, decode_jwt, encrypt_data, generate_jwt, \ + generate_refresh_token from utils.utils import db_client, generate_custom_id from passlib.context import CryptContext from cryptography.fernet import Fernet @@ -45,9 +46,6 @@ ############################ # Data models ############################ -class Token(BaseModel): - access_token: str - class UserInfo(BaseModel): user_id: str @@ -65,138 +63,8 @@ class RefreshTokenRequest(BaseModel): refresh_token: str device_id: str - ############################ -# Utility functions -############################ - -# Encrypt data using Fernet -async def encrypt_data(data: str) -> str: - """Encrypt data using Fernet.""" - encrypted = cipher.encrypt(data.encode("utf-8")) # Returns bytes - return base64.urlsafe_b64encode(encrypted).decode("utf-8") # Convert to str for storage - -# Decrypt data using Fernet -async def decrypt_data(data: str) -> str: - """Decrypt data using Fernet.""" - try: - data_bytes = base64.urlsafe_b64decode(data.encode("utf-8")) # Convert back to bytes - decrypted = cipher.decrypt(data_bytes).decode("utf-8") # Decrypt and decode - return decrypted - except Exception as e: - raise HTTPException(status_code=500, detail=f"Failed to decrypt data: {str(e)}") - - -def generate_jwt(user_id: str, device_id: str) -> str: - """Generate a JWT token for the user.""" - payload = { - "sub": user_id, - "device": device_id, - "exp": pend.now().add(days=90).int_timestamp - } - return jwt.encode(payload, SECRET_KEY, algorithm=ALGORITHM) - - -def decode_jwt(token: str) -> dict: - """Decode the JWT token and return the payload.""" - try: - decoded_token = jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM]) - return decoded_token - except jwt.ExpiredSignatureError: - raise HTTPException(status_code=401, detail="Expired token. Please refresh.") - except jwt.InvalidTokenError: - raise HTTPException(status_code=401, detail="Invalid token. Please login again.") - except Exception as e: - raise HTTPException(status_code=500, detail=f"Error decoding token: {str(e)}") - - -# Verify a plaintext password against a hashed one -def verify_password(plain_password: str, hashed_password: str) -> bool: - return pwd_context.verify(plain_password, hashed_password) - - -# Generate a long-lived refresh token (90 days) -def generate_clashking_access_token(user_id: str, device_id: str): - payload = { - "sub": user_id, - "device": device_id, - "exp": pend.now().add(days=90).int_timestamp - } - return jwt.encode(payload, REFRESH_SECRET, algorithm="HS256") - - -async def refresh_discord_access_token(encrypted_refresh_token: str) -> dict: - """ - Refreshes the Discord access token using the stored refresh token. - """ - try: - refresh_token = await decrypt_data(encrypted_refresh_token) - token_data = { - "client_id": DISCORD_CLIENT_ID, - "client_secret": DISCORD_CLIENT_SECRET, - "grant_type": "refresh_token", - "refresh_token": refresh_token - } - headers = {"Content-Type": "application/x-www-form-urlencoded"} - token_response = requests.post("https://discord.com/api/oauth2/token", data=token_data, headers=headers) - - if token_response.status_code == 200: - return token_response.json() - else: - raise HTTPException( - status_code=401, - detail=f"Failed to refresh Discord token: {token_response.json()}" - ) - except Exception as e: - raise HTTPException(status_code=500, detail=f"Error refreshing Discord token: {str(e)}") - - -async def get_valid_discord_access_token(user_id: str) -> str: - """ - Verifies if the Discord access token is still valid and refreshes it if needed. - """ - discord_token = await db_client.app_discord_tokens.find_one({"user_id": user_id}) - if not discord_token: - raise HTTPException(status_code=401, detail="Missing Discord refresh token") - - # Decrypt the access and refresh tokens - encrypted_access_token = discord_token.get("discord_access_token") - encrypted_refresh_token = discord_token.get("discord_refresh_token") - - if not encrypted_access_token or not encrypted_refresh_token: - raise HTTPException(status_code=401, detail="Invalid stored tokens") - - access_token = await decrypt_data(encrypted_access_token) - refresh_token = await decrypt_data(encrypted_refresh_token) - - # Check if the access token is still valid (add a buffer of 60s to prevent expiration race condition) - if pend.now().int_timestamp < discord_token["expires_at"] - 60: - return access_token - - print("🔄 Access Token expired, refreshing...") - - # Refresh the access token - new_token_data = await refresh_discord_access_token(refresh_token) - - # Encrypt and store the new access token with updated expiration time - new_encrypted_access = await encrypt_data(new_token_data["access_token"]) - new_expires_in = new_token_data.get("expires_in", 604800) # Default: 7 days (7 * 24 * 60 * 60) - - await db_client.app_discord_tokens.update_one( - {"user_id": user_id}, - { - "$set": { - "discord_access_token": new_encrypted_access, - "expires_at": pend.now().add(seconds=new_expires_in).int_timestamp - } - } - ) - - return new_token_data["access_token"] - - -############################ -# Retrieve current user and validate token +# Endpoints ############################ @router.get("/auth/me") @@ -239,6 +107,7 @@ async def auth_discord(request: Request): code = form.get("code") code_verifier = form.get("code_verifier") device_id = form.get("device_id") + device_name = form.get("device_name") if not code or not code_verifier: raise HTTPException(status_code=400, detail="Missing Discord code or code_verifier") @@ -291,13 +160,13 @@ async def auth_discord(request: Request): # Store the tokens in the database await db_client.app_discord_tokens.update_one( - {"user_id": discord_user_id, "device_id": device_id}, + {"user_id": discord_user_id, "device_id": device_id, "device_name": device_name}, { "$setOnInsert": {"_id": generate_custom_id(int(discord_user_id))}, "$set": { "discord_access_token": encrypted_discord_access, "discord_refresh_token": encrypted_discord_refresh, - "expires_at": pend.now().add(seconds=expires_in).int_timestamp + "expires_at": pend.now().add(seconds=expires_in) } }, upsert=True @@ -314,7 +183,7 @@ async def auth_discord(request: Request): "$setOnInsert": {"_id": generate_custom_id(int(discord_user_id))}, "$set": { "refresh_token": refresh_token, - "expires_at": pend.now().add(days=30).int_timestamp + "expires_at": pend.now().add(days=30) } }, upsert=True @@ -340,7 +209,7 @@ async def refresh_access_token(request: RefreshTokenRequest) -> dict: if not stored_refresh_token: raise HTTPException(status_code=401, detail="Invalid refresh token.") - if pend.now().int_timestamp > stored_refresh_token["expires_at"]: + if pend.now().int_timestamp > stored_refresh_token["expires_at"].timestamp() : raise HTTPException(status_code=401, detail="Expired refresh token. Please login again.") user_id = stored_refresh_token["user_id"] @@ -349,12 +218,3 @@ async def refresh_access_token(request: RefreshTokenRequest) -> dict: new_access_token = generate_jwt(user_id, request.device_id) return {"access_token": new_access_token} - - -def generate_refresh_token(user_id: str) -> str: - """Generate a refresh token for the user.""" - payload = { - "sub": user_id, - "exp": pend.now().add(days=180).int_timestamp - } - return jwt.encode(payload, SECRET_KEY, algorithm=ALGORITHM) diff --git a/utils/auth_utils.py b/utils/auth_utils.py new file mode 100644 index 00000000..47d37fe4 --- /dev/null +++ b/utils/auth_utils.py @@ -0,0 +1,166 @@ +import os +import jwt +import requests +import pendulum as pend +from dotenv import load_dotenv +from fastapi import HTTPException +from utils.utils import db_client +from passlib.context import CryptContext +from cryptography.fernet import Fernet +import base64 + +############################ +# Load environment variables +############################ +load_dotenv() + +############################ +# Global configuration +############################ +SECRET_KEY = os.getenv('SECRET_KEY') +REFRESH_SECRET = os.getenv('REFRESH_SECRET') +DISCORD_CLIENT_ID = os.getenv('DISCORD_CLIENT_ID') +DISCORD_CLIENT_SECRET = os.getenv('DISCORD_CLIENT_SECRET') +ENCRYPTION_KEY = os.getenv('ENCRYPTION_KEY') +ALGORITHM = "HS256" + +# Fernet cipher for encryption/decryption +cipher = Fernet(ENCRYPTION_KEY) + +# Password hashing configuration +pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") + + +############################ +# Utility functions +############################ + +# Encrypt data using Fernet +async def encrypt_data(data: str) -> str: + """Encrypt data using Fernet.""" + encrypted = cipher.encrypt(data.encode("utf-8")) # Returns bytes + return base64.urlsafe_b64encode(encrypted).decode("utf-8") # Convert to str for storage + +# Decrypt data using Fernet +async def decrypt_data(data: str) -> str: + """Decrypt data using Fernet.""" + try: + data_bytes = base64.urlsafe_b64decode(data.encode("utf-8")) # Convert back to bytes + decrypted = cipher.decrypt(data_bytes).decode("utf-8") # Decrypt and decode + return decrypted + except Exception as e: + raise HTTPException(status_code=500, detail=f"Failed to decrypt data: {str(e)}") + + +def generate_jwt(user_id: str, device_id: str) -> str: + """Generate a JWT token for the user.""" + payload = { + "sub": user_id, + "device": device_id, + "exp": pend.now().add(days=90).int_timestamp + } + return jwt.encode(payload, SECRET_KEY, algorithm=ALGORITHM) + + +def decode_jwt(token: str) -> dict: + """Decode the JWT token and return the payload.""" + try: + decoded_token = jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM]) + return decoded_token + except jwt.ExpiredSignatureError: + raise HTTPException(status_code=401, detail="Expired token. Please refresh.") + except jwt.InvalidTokenError: + raise HTTPException(status_code=401, detail="Invalid token. Please login again.") + except Exception as e: + raise HTTPException(status_code=500, detail=f"Error decoding token: {str(e)}") + +# Verify a plaintext password against a hashed one +def verify_password(plain_password: str, hashed_password: str) -> bool: + return pwd_context.verify(plain_password, hashed_password) + + +# Generate a long-lived refresh token (90 days) +def generate_clashking_access_token(user_id: str, device_id: str): + payload = { + "sub": user_id, + "device": device_id, + "exp": pend.now().add(days=90).int_timestamp + } + return jwt.encode(payload, REFRESH_SECRET, algorithm="HS256") + + +async def refresh_discord_access_token(encrypted_refresh_token: str) -> dict: + """ + Refreshes the Discord access token using the stored refresh token. + """ + try: + refresh_token = await decrypt_data(encrypted_refresh_token) + token_data = { + "client_id": DISCORD_CLIENT_ID, + "client_secret": DISCORD_CLIENT_SECRET, + "grant_type": "refresh_token", + "refresh_token": refresh_token + } + headers = {"Content-Type": "application/x-www-form-urlencoded"} + token_response = requests.post("https://discord.com/api/oauth2/token", data=token_data, headers=headers) + + if token_response.status_code == 200: + return token_response.json() + else: + raise HTTPException( + status_code=401, + detail=f"Failed to refresh Discord token: {token_response.json()}" + ) + except Exception as e: + raise HTTPException(status_code=500, detail=f"Error refreshing Discord token: {str(e)}") + + +async def get_valid_discord_access_token(user_id: str) -> str: + """ + Verifies if the Discord access token is still valid and refreshes it if needed. + """ + discord_token = await db_client.app_discord_tokens.find_one({"user_id": user_id}) + if not discord_token: + raise HTTPException(status_code=401, detail="Missing Discord refresh token") + + # Decrypt the access and refresh tokens + encrypted_access_token = discord_token.get("discord_access_token") + encrypted_refresh_token = discord_token.get("discord_refresh_token") + + if not encrypted_access_token or not encrypted_refresh_token: + raise HTTPException(status_code=401, detail="Invalid stored tokens") + + access_token = await decrypt_data(encrypted_access_token) + refresh_token = await decrypt_data(encrypted_refresh_token) + + # Check if the access token is still valid (add a buffer of 60s to prevent expiration race condition) + if pend.now().int_timestamp < discord_token["expires_at"].timestamp() - 60: + return access_token + + # Refresh the access token + new_token_data = await refresh_discord_access_token(refresh_token) + + # Encrypt and store the new access token with updated expiration time + new_encrypted_access = await encrypt_data(new_token_data["access_token"]) + new_expires_in = new_token_data.get("expires_in", 604800) # Default: 7 days (7 * 24 * 60 * 60) + + await db_client.app_discord_tokens.update_one( + {"user_id": user_id}, + { + "$set": { + "discord_access_token": new_encrypted_access, + "expires_at": pend.now().add(seconds=new_expires_in) + } + } + ) + + return new_token_data["access_token"] + + +def generate_refresh_token(user_id: str) -> str: + """Generate a refresh token for the user.""" + payload = { + "sub": user_id, + "exp": pend.now().add(days=180) + } + return jwt.encode(payload, SECRET_KEY, algorithm=ALGORITHM) From e0b07aea40ef133560464e647d4c8d7ad4454909 Mon Sep 17 00:00:00 2001 From: Destinea Date: Tue, 4 Mar 2025 14:08:58 +0100 Subject: [PATCH 038/174] fix: coc accounts db --- utils/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/utils.py b/utils/utils.py index d2615c04..e7a4712c 100644 --- a/utils/utils.py +++ b/utils/utils.py @@ -107,7 +107,7 @@ def __init__(self): self.app_users: collection_class = self.app.users self.app_discord_tokens: collection_class = self.app.discord_tokens self.app_refresh_tokens: collection_class = self.app.refresh_tokens - self.user_clash_accounts: collection_class = client.clashking.coc_accounts + self.coc_accounts: collection_class = client.clashking.coc_accounts db_client = DBClient() From 16e8c0a30c3b92cd881aa63737f21ddadef8af9b Mon Sep 17 00:00:00 2001 From: Destinea Date: Tue, 4 Mar 2025 14:55:53 +0100 Subject: [PATCH 039/174] feat: Send name and townhall level when adding account --- routers/app/accounts.py | 48 ++++++++++++++++++++++++++++++----------- routers/app/auth.py | 15 +++++++++++-- 2 files changed, 48 insertions(+), 15 deletions(-) diff --git a/routers/app/accounts.py b/routers/app/accounts.py index d4929da8..4f3bd7e1 100644 --- a/routers/app/accounts.py +++ b/routers/app/accounts.py @@ -16,12 +16,16 @@ # Utility functions ################ -async def is_coc_tag_valid(coc_tag: str) -> bool: - """Check if the Clash of Clans account exists using the API.""" +async def fetch_coc_account_data(coc_tag: str) -> dict: + """Retrieve Clash of Clans account details using the API.""" coc_tag = coc_tag.replace("#", "%23") url = f"https://proxy.clashk.ing/v1/players/{coc_tag}" response = requests.get(url) - return response.status_code == 200 # Returns True if the account exists + + if response.status_code != 200: + raise HTTPException(status_code=404, detail="Clash of Clans account does not exist") + + return response.json() # Return the account data async def verify_coc_ownership(coc_tag: str, player_token: str) -> bool: @@ -56,19 +60,28 @@ async def add_coc_account(coc_tag: str, authorization: str = Header(None)): if not coc_tag.startswith("#"): coc_tag = f"#{coc_tag}" - if not await is_coc_tag_valid(coc_tag): - raise HTTPException(status_code=404, detail="Clash of Clans account does not exist") + # Fetch account details from the API + coc_account_data = await fetch_coc_account_data(coc_tag) if await is_coc_account_linked(coc_tag): raise HTTPException(status_code=400, detail="This Clash of Clans account is already linked to another user") + # Store in the database await db_client.coc_accounts.insert_one({ "user_id": user_id, - "coc_tag": coc_tag, + "coc_tag": coc_account_data["tag"], "added_at": pend.now() }) - return {"message": "Clash of Clans account linked successfully"} + # Return account details to the front-end + return { + "message": "Clash of Clans account linked successfully", + "account": { + "tag": coc_account_data["tag"], + "name": coc_account_data["name"], + "townHallLevel": coc_account_data["townHallLevel"] + } + } @router.post("/users/add-coc-account-with-token") @@ -85,22 +98,31 @@ async def add_coc_account_with_verification(coc_tag: str, player_token: str, aut if not coc_tag.startswith("#"): coc_tag = f"#{coc_tag}" - if not await is_coc_tag_valid(coc_tag): - raise HTTPException(status_code=404, detail="Clash of Clans account does not exist") - if not await verify_coc_ownership(coc_tag, player_token): raise HTTPException(status_code=403, detail="Invalid player token. You do not own this account.") + # Fetch account details from the API + coc_account_data = await fetch_coc_account_data(coc_tag) + if await is_coc_account_linked(coc_tag): raise HTTPException(status_code=400, detail="This Clash of Clans account is already linked to another user") + # Store in the database await db_client.coc_accounts.insert_one({ "user_id": user_id, - "coc_tag": coc_tag, + "coc_tag": coc_account_data["tag"], "added_at": pend.now() }) - return {"message": "Clash of Clans account linked successfully with ownership verification"} + # Return account details to the front-end + return { + "message": "Clash of Clans account linked successfully with ownership verification", + "account": { + "tag": coc_account_data["tag"], + "name": coc_account_data["name"], + "townHallLevel": coc_account_data["townHallLevel"] + } + } @router.get("/users/coc-accounts") @@ -151,4 +173,4 @@ async def check_coc_account(coc_tag: str): "linked": True, "user_id": existing_account["user_id"], "message": "This Clash of Clans account is already linked to a user." - } \ No newline at end of file + } diff --git a/routers/app/auth.py b/routers/app/auth.py index ed5fe396..259bf3fb 100644 --- a/routers/app/auth.py +++ b/routers/app/auth.py @@ -92,10 +92,21 @@ async def get_current_user(authorization: str = Header(None)): if response.status_code == 200: discord_data = response.json() + # Fallback to username if global_name is missing + username = discord_data.get("global_name") or discord_data.get("username") + + # Fallback avatar if missing + avatar = discord_data.get("avatar") + avatar_url = ( + f"https://cdn.discordapp.com/avatars/{discord_data['id']}/{avatar}.png" + if avatar + else "https://clashkingfiles.b-cdn.net/stickers/Troop_HV_Goblin.png" + ) + return { "user_id": current_user["user_id"], - "discord_username": discord_data["username"], - "avatar_url": f"https://cdn.discordapp.com/avatars/{discord_data['id']}/{discord_data['avatar']}.png" + "discord_username": username, + "avatar_url": avatar_url } raise HTTPException(status_code=500, detail="Error retrieving Discord profile") From 71df6beb829a2942d6ac3d170b1769c2d5f306da Mon Sep 17 00:00:00 2001 From: Destinea Date: Tue, 4 Mar 2025 15:20:49 +0100 Subject: [PATCH 040/174] fix: Coc Account management --- routers/app/accounts.py | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/routers/app/accounts.py b/routers/app/accounts.py index 4f3bd7e1..d07eca18 100644 --- a/routers/app/accounts.py +++ b/routers/app/accounts.py @@ -3,7 +3,9 @@ import re from dotenv import load_dotenv from fastapi import HTTPException, Header, APIRouter -from utils.utils import db_client +from pydantic import BaseModel + +from utils.utils import db_client, generate_custom_id from utils.auth_utils import decode_jwt # Import JWT decoder # Load environment variables @@ -11,6 +13,12 @@ router = APIRouter(tags=["Coc Accounts"], include_in_schema=True) +################ +# Data models +################ + +class CocAccountRequest(BaseModel): + coc_tag: str ################ # Utility functions @@ -20,7 +28,9 @@ async def fetch_coc_account_data(coc_tag: str) -> dict: """Retrieve Clash of Clans account details using the API.""" coc_tag = coc_tag.replace("#", "%23") url = f"https://proxy.clashk.ing/v1/players/{coc_tag}" + print(url) response = requests.get(url) + print(response) if response.status_code != 200: raise HTTPException(status_code=404, detail="Clash of Clans account does not exist") @@ -47,12 +57,12 @@ async def is_coc_account_linked(coc_tag: str) -> bool: ################ @router.post("/users/add-coc-account") -async def add_coc_account(coc_tag: str, authorization: str = Header(None)): +async def add_coc_account(request: CocAccountRequest, authorization: str = Header(None)): """Associate a Clash of Clans account (tag) with a user WITHOUT ownership verification.""" - token = authorization.split("Bearer ")[1] decoded_token = decode_jwt(token) user_id = decoded_token["sub"] + coc_tag = request.coc_tag if not re.match(r"^#?[A-Z0-9]{5,12}$", coc_tag): raise HTTPException(status_code=400, detail="Invalid Clash of Clans tag format") @@ -68,6 +78,7 @@ async def add_coc_account(coc_tag: str, authorization: str = Header(None)): # Store in the database await db_client.coc_accounts.insert_one({ + "_id": generate_custom_id(int(user_id)), "user_id": user_id, "coc_tag": coc_account_data["tag"], "added_at": pend.now() @@ -109,6 +120,7 @@ async def add_coc_account_with_verification(coc_tag: str, player_token: str, aut # Store in the database await db_client.coc_accounts.insert_one({ + "_id": generate_custom_id(int(user_id)), "user_id": user_id, "coc_tag": coc_account_data["tag"], "added_at": pend.now() @@ -139,12 +151,13 @@ async def get_coc_accounts(authorization: str = Header(None)): @router.delete("/users/remove-coc-account") -async def remove_coc_account(coc_tag: str, authorization: str = Header(None)): +async def remove_coc_account(request: CocAccountRequest, authorization: str = Header(None)): """Remove a specific Clash of Clans account linked to a user.""" token = authorization.split("Bearer ")[1] decoded_token = decode_jwt(token) user_id = decoded_token["sub"] + coc_tag = request.coc_tag if not coc_tag.startswith("#"): coc_tag = f"#{coc_tag}" From ff33a7be1b2d9dc554a6de792afb9e2e2c599b4a Mon Sep 17 00:00:00 2001 From: Destinea Date: Tue, 4 Mar 2025 17:36:11 +0100 Subject: [PATCH 041/174] fix: add coc account with token --- routers/app/accounts.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/routers/app/accounts.py b/routers/app/accounts.py index d07eca18..d2284a6e 100644 --- a/routers/app/accounts.py +++ b/routers/app/accounts.py @@ -19,6 +19,7 @@ class CocAccountRequest(BaseModel): coc_tag: str + player_token: str = None ################ # Utility functions @@ -28,9 +29,7 @@ async def fetch_coc_account_data(coc_tag: str) -> dict: """Retrieve Clash of Clans account details using the API.""" coc_tag = coc_tag.replace("#", "%23") url = f"https://proxy.clashk.ing/v1/players/{coc_tag}" - print(url) response = requests.get(url) - print(response) if response.status_code != 200: raise HTTPException(status_code=404, detail="Clash of Clans account does not exist") @@ -74,7 +73,7 @@ async def add_coc_account(request: CocAccountRequest, authorization: str = Heade coc_account_data = await fetch_coc_account_data(coc_tag) if await is_coc_account_linked(coc_tag): - raise HTTPException(status_code=400, detail="This Clash of Clans account is already linked to another user") + raise HTTPException(status_code=409, detail="This Clash of Clans account is already linked to another user") # Store in the database await db_client.coc_accounts.insert_one({ @@ -96,12 +95,13 @@ async def add_coc_account(request: CocAccountRequest, authorization: str = Heade @router.post("/users/add-coc-account-with-token") -async def add_coc_account_with_verification(coc_tag: str, player_token: str, authorization: str = Header(None)): +async def add_coc_account_with_verification(request: CocAccountRequest, authorization: str = Header(None)): """Associate a Clash of Clans account with a user WITH ownership verification.""" - token = authorization.split("Bearer ")[1] decoded_token = decode_jwt(token) user_id = decoded_token["sub"] + coc_tag = request.coc_tag + player_token = request.player_token if not re.match(r"^#?[A-Z0-9]{5,12}$", coc_tag): raise HTTPException(status_code=400, detail="Invalid Clash of Clans tag format") @@ -110,13 +110,13 @@ async def add_coc_account_with_verification(coc_tag: str, player_token: str, aut coc_tag = f"#{coc_tag}" if not await verify_coc_ownership(coc_tag, player_token): - raise HTTPException(status_code=403, detail="Invalid player token. You do not own this account.") + raise HTTPException(status_code=403, detail="Invalid player token. Check your Clash of Clans account settings and try again.") # Fetch account details from the API coc_account_data = await fetch_coc_account_data(coc_tag) - if await is_coc_account_linked(coc_tag): - raise HTTPException(status_code=400, detail="This Clash of Clans account is already linked to another user") + # Remove the link to the other user if it exists + await db_client.coc_accounts.delete_many({"coc_tag": coc_tag}) # Store in the database await db_client.coc_accounts.insert_one({ From 17f9d03ec3465019b56b084a876d77a7591c3299 Mon Sep 17 00:00:00 2001 From: Destinea Date: Tue, 4 Mar 2025 18:12:47 +0100 Subject: [PATCH 042/174] fix: add coc account with token --- routers/app/accounts.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/routers/app/accounts.py b/routers/app/accounts.py index d2284a6e..38be93c5 100644 --- a/routers/app/accounts.py +++ b/routers/app/accounts.py @@ -36,13 +36,20 @@ async def fetch_coc_account_data(coc_tag: str) -> dict: return response.json() # Return the account data - async def verify_coc_ownership(coc_tag: str, player_token: str) -> bool: """Verify if the provided player token matches the given Clash of Clans account.""" coc_tag = coc_tag.replace("#", "%23") url = f"https://proxy.clashk.ing/v1/players/{coc_tag}/verifytoken" response = requests.post(url, json={"token": player_token}) - return response.status_code == 200 # Returns True if the ownership is verified + + if response.status_code != 200: + return False # API error, consider it invalid + + try: + data = response.json() + return data.get("status") == "ok" + except ValueError: + return False # If JSON parsing fails, assume invalid async def is_coc_account_linked(coc_tag: str) -> bool: @@ -97,9 +104,10 @@ async def add_coc_account(request: CocAccountRequest, authorization: str = Heade @router.post("/users/add-coc-account-with-token") async def add_coc_account_with_verification(request: CocAccountRequest, authorization: str = Header(None)): """Associate a Clash of Clans account with a user WITH ownership verification.""" - token = authorization.split("Bearer ")[1] - decoded_token = decode_jwt(token) - user_id = decoded_token["sub"] + #token = authorization.split("Bearer ")[1] + #decoded_token = decode_jwt(token) + #user_id = decoded_token["sub"] + user_id = "506210109790093342" coc_tag = request.coc_tag player_token = request.player_token From f5f6f6ca6e154b074b7e77d94b80f5a7119db1d6 Mon Sep 17 00:00:00 2001 From: Destinea Date: Wed, 5 Mar 2025 15:42:35 +0100 Subject: [PATCH 043/174] chore: move files --- models/app.py | 23 +++ routers/app/auth.py | 231 ------------------------- routers/app/player.py | 95 +++++++++++ routers/{app => v2}/accounts.py | 10 +- routers/v2/auth.py | 291 ++++++++++++++++++++++---------- 5 files changed, 319 insertions(+), 331 deletions(-) create mode 100644 models/app.py delete mode 100644 routers/app/auth.py create mode 100644 routers/app/player.py rename routers/{app => v2}/accounts.py (97%) diff --git a/models/app.py b/models/app.py new file mode 100644 index 00000000..095657dd --- /dev/null +++ b/models/app.py @@ -0,0 +1,23 @@ +from pydantic import BaseModel + + +class CocAccountRequest(BaseModel): + coc_tag: str + player_token: str = None + +class CocAccountsRequest(BaseModel): + coc_tags: list[str] + +class UserInfo(BaseModel): + user_id: str + username: str + avatar_url: str + +class AuthResponse(BaseModel): + access_token: str + refresh_token: str + user: UserInfo + +class RefreshTokenRequest(BaseModel): + refresh_token: str + device_id: str diff --git a/routers/app/auth.py b/routers/app/auth.py deleted file mode 100644 index 259bf3fb..00000000 --- a/routers/app/auth.py +++ /dev/null @@ -1,231 +0,0 @@ -import os - -import httpx -import pendulum as pend -from dotenv import load_dotenv -from fastapi import Header, HTTPException, Request, APIRouter -from fastapi.security import OAuth2PasswordBearer -from pydantic import BaseModel - -from utils.auth_utils import get_valid_discord_access_token, decode_jwt, encrypt_data, generate_jwt, \ - generate_refresh_token -from utils.utils import db_client, generate_custom_id -from passlib.context import CryptContext -from cryptography.fernet import Fernet -import base64 - -############################ -# Load environment variables -############################ -load_dotenv() - -############################ -# Global configuration -############################ -SECRET_KEY = os.getenv('SECRET_KEY') -REFRESH_SECRET = os.getenv('REFRESH_SECRET') -DISCORD_CLIENT_ID = os.getenv('DISCORD_CLIENT_ID') -DISCORD_CLIENT_SECRET = os.getenv('DISCORD_CLIENT_SECRET') -DISCORD_REDIRECT_URI = os.getenv('DISCORD_REDIRECT_URI') -ENCRYPTION_KEY = os.getenv('ENCRYPTION_KEY') -ALGORITHM = "HS256" - -# Fernet cipher for encryption/decryption -cipher = Fernet(ENCRYPTION_KEY) - -# Password hashing configuration -pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") - -# OAuth2 scheme -oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token") - -# FastAPI router -router = APIRouter(tags=["Authentication"], include_in_schema=True) - - -############################ -# Data models -############################ - -class UserInfo(BaseModel): - user_id: str - username: str - avatar_url: str - - -class AuthResponse(BaseModel): - access_token: str - refresh_token: str - user: UserInfo - - -class RefreshTokenRequest(BaseModel): - refresh_token: str - device_id: str - -############################ -# Endpoints -############################ - -@router.get("/auth/me") -async def get_current_user(authorization: str = Header(None)): - if not authorization or not authorization.startswith("Bearer "): - raise HTTPException(status_code=401, detail="Missing or invalid authentication token") - - token = authorization.split("Bearer ")[1] - - decoded_token = decode_jwt(token) - - user_id = decoded_token["sub"] - current_user = await db_client.app_users.find_one({"user_id": user_id}) - if not current_user: - raise HTTPException(status_code=404, detail="User not found") - - discord_access = await get_valid_discord_access_token(current_user["user_id"]) - - async with httpx.AsyncClient() as client: - response = await client.get( - "https://discord.com/api/users/@me", - headers={"Authorization": f"Bearer {discord_access}"} - ) - - if response.status_code == 200: - discord_data = response.json() - - # Fallback to username if global_name is missing - username = discord_data.get("global_name") or discord_data.get("username") - - # Fallback avatar if missing - avatar = discord_data.get("avatar") - avatar_url = ( - f"https://cdn.discordapp.com/avatars/{discord_data['id']}/{avatar}.png" - if avatar - else "https://clashkingfiles.b-cdn.net/stickers/Troop_HV_Goblin.png" - ) - - return { - "user_id": current_user["user_id"], - "discord_username": username, - "avatar_url": avatar_url - } - - raise HTTPException(status_code=500, detail="Error retrieving Discord profile") - - -@router.post("/auth/discord", response_model=AuthResponse) -async def auth_discord(request: Request): - form = await request.form() - code = form.get("code") - code_verifier = form.get("code_verifier") - device_id = form.get("device_id") - device_name = form.get("device_name") - - if not code or not code_verifier: - raise HTTPException(status_code=400, detail="Missing Discord code or code_verifier") - - # Get the access token and refresh token from Discord - token_url = "https://discord.com/api/oauth2/token" - token_data = { - "client_id": DISCORD_CLIENT_ID, - "code": code, - "grant_type": "authorization_code", - "redirect_uri": DISCORD_REDIRECT_URI, - "code_verifier": code_verifier - } - - async with httpx.AsyncClient() as client: - token_response = await client.post(token_url, data=token_data, - headers={"Content-Type": "application/x-www-form-urlencoded"}) - - if token_response.status_code != 200: - raise HTTPException(status_code=500, detail="Error during Discord authentication") - - discord_data = token_response.json() - access_token_discord = discord_data["access_token"] - refresh_token_discord = discord_data["refresh_token"] - expires_in = discord_data["expires_in"] - - # Get the user data from Discord - async with httpx.AsyncClient() as client: - user_response = await client.get( - "https://discord.com/api/users/@me", - headers={"Authorization": f"Bearer {access_token_discord}"}, - ) - - if user_response.status_code != 200: - raise HTTPException(status_code=500, detail="Error retrieving user info") - - user_data = user_response.json() - - discord_user_id = user_data["id"] - - # Verify if the user already exists in the database - existing_user = await db_client.app_users.find_one({"user_id": discord_user_id}) - if not existing_user: - await db_client.app_users.insert_one( - {"user_id": discord_user_id, "_id": generate_custom_id(int(discord_user_id)), "created_at": pend.now()}) - - # Encrypt the tokens - encrypted_discord_access = await encrypt_data(access_token_discord) - encrypted_discord_refresh = await encrypt_data(refresh_token_discord) - - # Store the tokens in the database - await db_client.app_discord_tokens.update_one( - {"user_id": discord_user_id, "device_id": device_id, "device_name": device_name}, - { - "$setOnInsert": {"_id": generate_custom_id(int(discord_user_id))}, - "$set": { - "discord_access_token": encrypted_discord_access, - "discord_refresh_token": encrypted_discord_refresh, - "expires_at": pend.now().add(seconds=expires_in) - } - }, - upsert=True - ) - - # Generate a JWT token for the user - access_token = generate_jwt(discord_user_id, device_id) - refresh_token = generate_refresh_token(discord_user_id) - - # Store the refresh token in the database - await db_client.app_refresh_tokens.update_one( - {"user_id": discord_user_id}, - { - "$setOnInsert": {"_id": generate_custom_id(int(discord_user_id))}, - "$set": { - "refresh_token": refresh_token, - "expires_at": pend.now().add(days=30) - } - }, - upsert=True - ) - - # Return the response - return AuthResponse( - access_token=access_token, - refresh_token=refresh_token, - user=UserInfo( - user_id=discord_user_id, - username=user_data["username"], - avatar_url=f"https://cdn.discordapp.com/avatars/{discord_user_id}/{user_data['avatar']}.png" - ) - ) - - -@router.post("/auth/refresh") -async def refresh_access_token(request: RefreshTokenRequest) -> dict: - """Refresh the access token using the stored refresh token.""" - stored_refresh_token = await db_client.app_refresh_tokens.find_one({"refresh_token": request.refresh_token}) - - if not stored_refresh_token: - raise HTTPException(status_code=401, detail="Invalid refresh token.") - - if pend.now().int_timestamp > stored_refresh_token["expires_at"].timestamp() : - raise HTTPException(status_code=401, detail="Expired refresh token. Please login again.") - - user_id = stored_refresh_token["user_id"] - - # Generate a new access token - new_access_token = generate_jwt(user_id, request.device_id) - - return {"access_token": new_access_token} diff --git a/routers/app/player.py b/routers/app/player.py new file mode 100644 index 00000000..4be93d42 --- /dev/null +++ b/routers/app/player.py @@ -0,0 +1,95 @@ +import os + +import aiohttp +import httpx +import pendulum as pend +from dotenv import load_dotenv +from fastapi import Header, HTTPException, Request, APIRouter +from fastapi.security import OAuth2PasswordBearer + +from models.app import CocAccountRequest, CocAccountsRequest +from utils.auth_utils import decode_jwt +from passlib.context import CryptContext +from cryptography.fernet import Fernet +import re + +from utils.utils import fix_tag, db_client + +############################ +# Load environment variables +############################ +load_dotenv() + +############################ +# Global configuration +############################ +SECRET_KEY = os.getenv('SECRET_KEY') +REFRESH_SECRET = os.getenv('REFRESH_SECRET') +DISCORD_CLIENT_ID = os.getenv('DISCORD_CLIENT_ID') +DISCORD_CLIENT_SECRET = os.getenv('DISCORD_CLIENT_SECRET') +DISCORD_REDIRECT_URI = os.getenv('DISCORD_REDIRECT_URI') +ENCRYPTION_KEY = os.getenv('ENCRYPTION_KEY') +ALGORITHM = "HS256" + +# Fernet cipher for encryption/decryption +cipher = Fernet(ENCRYPTION_KEY) + +# Password hashing configuration +pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") + +# OAuth2 scheme +oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token") + +# FastAPI router +router = APIRouter(tags=["App Player"], include_in_schema=True) + + +@router.post("/app/coc-accounts/stats") +async def add_coc_account(request: CocAccountsRequest, authorization: str = Header(None)): + """Associate a Clash of Clans account (tag) with a user WITHOUT ownership verification.""" + token = authorization.split("Bearer ")[1] + decoded_token = decode_jwt(token) + user_id = decoded_token["sub"] + player_tags = request.player_tags + return_data = {"items": []} + + for player_tag in player_tags: + player_tag = fix_tag(player_tag) + + player_data = await db_client.player_stats_db.find_one({"tag": player_tag}, + {"tag": 1, "name": 1, "clan_tag": 1, "townhall": 1, + "donations": 1, "legends": 1, + "clan_games": 1, "season_pass": 1, "activity": 1, + "last_online": 1, "last_online_time": 1, + "attack_wins": 1, "dark_elixir": 1, "gold": 1, + "clancapitalcontributions": 1, "capital_gold": 1, + "warstars": 1, "league": 1, "season_trophies": 1, + "last_updated": 1, + }) + player_data = player_data or {} + + return_data["items"].append( + { + "tag": player_tag, + "name": player_data.get("name"), + "clan_tag": player_data.get("clan_tag"), + "town_hall": player_data.get("townhall"), + "donations": player_data.get("donations"), + "legends": player_data.get("legends"), + "clan_games": player_data.get("clan_games"), + "season_pass": player_data.get("season_pass"), + "activity": player_data.get("activity"), + "last_online": player_data.get("last_online"), + "last_online_time": player_data.get("last_online_time"), + "attack_wins": player_data.get("attack_wins"), + "dark_elixir": player_data.get("dark_elixir"), + "gold": player_data.get("gold"), + "capital_gold": player_data.get("capital_gold"), + "clan_capital_contributions": player_data.get("clancapitalcontributions"), + "war_stars": player_data.get("warstars"), + "league": player_data.get("league"), + "is_in_legend_league": player_data.get("league") == "Legend League", + "season_trophies": player_data.get("season_trophies"), + "last_updated": player_data.get("last_updated"), + } + ) diff --git a/routers/app/accounts.py b/routers/v2/accounts.py similarity index 97% rename from routers/app/accounts.py rename to routers/v2/accounts.py index 38be93c5..feaa4a2a 100644 --- a/routers/app/accounts.py +++ b/routers/v2/accounts.py @@ -3,8 +3,8 @@ import re from dotenv import load_dotenv from fastapi import HTTPException, Header, APIRouter -from pydantic import BaseModel +from models.app import CocAccountRequest from utils.utils import db_client, generate_custom_id from utils.auth_utils import decode_jwt # Import JWT decoder @@ -13,14 +13,6 @@ router = APIRouter(tags=["Coc Accounts"], include_in_schema=True) -################ -# Data models -################ - -class CocAccountRequest(BaseModel): - coc_tag: str - player_token: str = None - ################ # Utility functions ################ diff --git a/routers/v2/auth.py b/routers/v2/auth.py index cd00aaa3..eb905d66 100644 --- a/routers/v2/auth.py +++ b/routers/v2/auth.py @@ -1,99 +1,208 @@ -from fastapi import Depends, FastAPI, HTTPException, status, APIRouter -from fastapi.security import OAuth2PasswordBearer, OAuth2PasswordRequestForm -from pydantic import BaseModel +import os + +import httpx +import pendulum as pend +from dotenv import load_dotenv +from fastapi import Header, HTTPException, Request, APIRouter +from fastapi.security import OAuth2PasswordBearer +from utils.auth_utils import get_valid_discord_access_token, decode_jwt, encrypt_data, generate_jwt, \ + generate_refresh_token +from utils.utils import db_client, generate_custom_id from passlib.context import CryptContext -import jwt -from datetime import datetime, timedelta -from os import getenv -from utils.utils import db_client - -# Secret key to encode JWT tokens -SECRET_KEY = getenv("SECRET_KEY") +from cryptography.fernet import Fernet +from models.app import AuthResponse, UserInfo, RefreshTokenRequest + +############################ +# Load environment variables +############################ +load_dotenv() + +############################ +# Global configuration +############################ +SECRET_KEY = os.getenv('SECRET_KEY') +REFRESH_SECRET = os.getenv('REFRESH_SECRET') +DISCORD_CLIENT_ID = os.getenv('DISCORD_CLIENT_ID') +DISCORD_CLIENT_SECRET = os.getenv('DISCORD_CLIENT_SECRET') +DISCORD_REDIRECT_URI = os.getenv('DISCORD_REDIRECT_URI') +ENCRYPTION_KEY = os.getenv('ENCRYPTION_KEY') ALGORITHM = "HS256" -ACCESS_TOKEN_EXPIRE_MINUTES = 30 +# Fernet cipher for encryption/decryption +cipher = Fernet(ENCRYPTION_KEY) -# Password hashing setup +# Password hashing configuration pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") -# OAuth2 scheme for token endpoint +# OAuth2 scheme oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token") -router = APIRouter(tags=["Authentication"], include_in_schema=True) - - -class Token(BaseModel): - access_token: str - token_type: str - -class PermissionsSplit(BaseModel): - read: bool = False - write: bool = False - delete: bool = False - -class Permissions(BaseModel): - rosters: PermissionsSplit = PermissionsSplit() - ticketing: PermissionsSplit = PermissionsSplit() - -class User(BaseModel): - username: str - permissions: Permissions = Permissions() - admin: bool = False - -class UserInDB(User): - password: str - -# Function to verify a password -def verify_password(plain_password, hashed_password): - return pwd_context.verify(plain_password, hashed_password) - -# Function to get a user from the "database" -async def get_user(username: str): - user_dict = await db_client.api_users.find_one({"username": username}, {'_id': 0}) - if user_dict: - return UserInDB(**user_dict) - -# Authenticate a user -async def authenticate_user(username: str, password: str): - user = await get_user(username) - if not user or not verify_password(password, user.password): - return False - return user - -# Create JWT token -def create_access_token(data: dict, expires_delta: timedelta | None = None): - to_encode = data.copy() - expire = datetime.utcnow() + (expires_delta or timedelta(minutes=15)) - to_encode.update({"exp": expire}) - return jwt.encode(to_encode, SECRET_KEY, algorithm=ALGORITHM) - -# Token endpoint to get a JWT -@router.post("/token", response_model=Token) -async def login(form_data: OAuth2PasswordRequestForm = Depends()): - user = await authenticate_user(form_data.username, form_data.password) - if not user: - raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Incorrect username or password") - access_token_expires = timedelta(minutes=ACCESS_TOKEN_EXPIRE_MINUTES) - access_token = create_access_token(data={"sub": user.username}, expires_delta=access_token_expires) - return {"access_token": access_token, "token_type": "bearer"} - -# Get current authenticated user -async def get_current_user(token: str = Depends(oauth2_scheme)): - try: - payload = jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM]) - username: str = payload.get("sub") - if username is None: - raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Invalid authentication") - user = await get_user(username) - if user is None: - raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="User not found") - return user - except jwt.ExpiredSignatureError: - raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Token expired") - except jwt.JWTError: - raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail="Invalid token") - -# Protecting an endpoint with authentication -@router.get("/users/me", response_model=User) -async def read_users_me(current_user: User = Depends(get_current_user)): - return current_user \ No newline at end of file +# FastAPI router +router = APIRouter(tags=["App Authentication"], include_in_schema=True) + +############################ +# Endpoints +############################ + +@router.get("/auth/me") +async def get_current_user(authorization: str = Header(None)): + if not authorization or not authorization.startswith("Bearer "): + raise HTTPException(status_code=401, detail="Missing or invalid authentication token") + + token = authorization.split("Bearer ")[1] + + decoded_token = decode_jwt(token) + + user_id = decoded_token["sub"] + current_user = await db_client.app_users.find_one({"user_id": user_id}) + if not current_user: + raise HTTPException(status_code=404, detail="User not found") + + discord_access = await get_valid_discord_access_token(current_user["user_id"]) + + async with httpx.AsyncClient() as client: + response = await client.get( + "https://discord.com/api/users/@me", + headers={"Authorization": f"Bearer {discord_access}"} + ) + + if response.status_code == 200: + discord_data = response.json() + + # Fallback to username if global_name is missing + username = discord_data.get("global_name") or discord_data.get("username") + + # Fallback avatar if missing + avatar = discord_data.get("avatar") + avatar_url = ( + f"https://cdn.discordapp.com/avatars/{discord_data['id']}/{avatar}.png" + if avatar + else "https://clashkingfiles.b-cdn.net/stickers/Troop_HV_Goblin.png" + ) + + return { + "user_id": current_user["user_id"], + "discord_username": username, + "avatar_url": avatar_url + } + + raise HTTPException(status_code=500, detail="Error retrieving Discord profile") + + +@router.post("/auth/discord", response_model=AuthResponse) +async def auth_discord(request: Request): + form = await request.form() + code = form.get("code") + code_verifier = form.get("code_verifier") + device_id = form.get("device_id") + device_name = form.get("device_name") + + if not code or not code_verifier: + raise HTTPException(status_code=400, detail="Missing Discord code or code_verifier") + + # Get the access token and refresh token from Discord + token_url = "https://discord.com/api/oauth2/token" + token_data = { + "client_id": DISCORD_CLIENT_ID, + "code": code, + "grant_type": "authorization_code", + "redirect_uri": DISCORD_REDIRECT_URI, + "code_verifier": code_verifier + } + + async with httpx.AsyncClient() as client: + token_response = await client.post(token_url, data=token_data, + headers={"Content-Type": "application/x-www-form-urlencoded"}) + + if token_response.status_code != 200: + raise HTTPException(status_code=500, detail="Error during Discord authentication") + + discord_data = token_response.json() + access_token_discord = discord_data["access_token"] + refresh_token_discord = discord_data["refresh_token"] + expires_in = discord_data["expires_in"] + + # Get the user data from Discord + async with httpx.AsyncClient() as client: + user_response = await client.get( + "https://discord.com/api/users/@me", + headers={"Authorization": f"Bearer {access_token_discord}"}, + ) + + if user_response.status_code != 200: + raise HTTPException(status_code=500, detail="Error retrieving user info") + + user_data = user_response.json() + + discord_user_id = user_data["id"] + + # Verify if the user already exists in the database + existing_user = await db_client.app_users.find_one({"user_id": discord_user_id}) + if not existing_user: + await db_client.app_users.insert_one( + {"user_id": discord_user_id, "_id": generate_custom_id(int(discord_user_id)), "created_at": pend.now()}) + + # Encrypt the tokens + encrypted_discord_access = await encrypt_data(access_token_discord) + encrypted_discord_refresh = await encrypt_data(refresh_token_discord) + + # Store the tokens in the database + await db_client.app_discord_tokens.update_one( + {"user_id": discord_user_id, "device_id": device_id, "device_name": device_name}, + { + "$setOnInsert": {"_id": generate_custom_id(int(discord_user_id))}, + "$set": { + "discord_access_token": encrypted_discord_access, + "discord_refresh_token": encrypted_discord_refresh, + "expires_at": pend.now().add(seconds=expires_in) + } + }, + upsert=True + ) + + # Generate a JWT token for the user + access_token = generate_jwt(discord_user_id, device_id) + refresh_token = generate_refresh_token(discord_user_id) + + # Store the refresh token in the database + await db_client.app_refresh_tokens.update_one( + {"user_id": discord_user_id}, + { + "$setOnInsert": {"_id": generate_custom_id(int(discord_user_id))}, + "$set": { + "refresh_token": refresh_token, + "expires_at": pend.now().add(days=30) + } + }, + upsert=True + ) + + # Return the response + return AuthResponse( + access_token=access_token, + refresh_token=refresh_token, + user=UserInfo( + user_id=discord_user_id, + username=user_data["username"], + avatar_url=f"https://cdn.discordapp.com/avatars/{discord_user_id}/{user_data['avatar']}.png" + ) + ) + + +@router.post("/auth/refresh") +async def refresh_access_token(request: RefreshTokenRequest) -> dict: + """Refresh the access token using the stored refresh token.""" + stored_refresh_token = await db_client.app_refresh_tokens.find_one({"refresh_token": request.refresh_token}) + + if not stored_refresh_token: + raise HTTPException(status_code=401, detail="Invalid refresh token.") + + if pend.now().int_timestamp > stored_refresh_token["expires_at"].timestamp() : + raise HTTPException(status_code=401, detail="Expired refresh token. Please login again.") + + user_id = stored_refresh_token["user_id"] + + # Generate a new access token + new_access_token = generate_jwt(user_id, request.device_id) + + return {"access_token": new_access_token} From f89d4bd1ea7218ab3d304ac7f7d3215d04afd3a1 Mon Sep 17 00:00:00 2001 From: Destinea Date: Wed, 5 Mar 2025 16:54:46 +0100 Subject: [PATCH 044/174] feat: Added player full-stats endpoint --- Dockerfile | 2 +- main.py | 8 +- routers/app/player.py | 95 ---- routers/app/test.py | 519 ------------------ .../v2/{accounts.py => accounts/endpoints.py} | 73 +-- routers/v2/accounts/utils.py | 36 ++ routers/v2/{auth.py => auth/endpoints.py} | 57 +- models/app.py => routers/v2/auth/models.py | 3 - routers/v2/player/endpoints.py | 39 +- routers/v2/player/models.py | 2 +- utils/config.py | 21 +- utils/database.py | 4 +- utils/utils.py | 2 +- 13 files changed, 125 insertions(+), 736 deletions(-) delete mode 100644 routers/app/player.py delete mode 100644 routers/app/test.py rename routers/v2/{accounts.py => accounts/endpoints.py} (68%) create mode 100644 routers/v2/accounts/utils.py rename routers/v2/{auth.py => auth/endpoints.py} (81%) rename models/app.py => routers/v2/auth/models.py (85%) diff --git a/Dockerfile b/Dockerfile index 39991f1d..80ded327 100644 --- a/Dockerfile +++ b/Dockerfile @@ -19,7 +19,7 @@ RUN pip install --no-cache-dir -r requirements.txt # Copy application files COPY . . -# Define the environment variable for app mode (default to development) +# Define the environment variable for auth mode (default to development) ARG APP_ENV=development ENV APP_ENV=${APP_ENV} diff --git a/main.py b/main.py index df506643..02120a24 100644 --- a/main.py +++ b/main.py @@ -59,10 +59,9 @@ def include_routers(app, directory, recursive=False): if router: app.include_router(router) -# Include routers from public and private directories -include_routers(app, os.path.join(os.path.dirname(__file__), "routers", "public")) -include_routers(app, os.path.join(os.path.dirname(__file__), "routers", "v2")) -include_routers(app, os.path.join(os.path.dirname(__file__), "routers", "app")) +# Include routers from public (v1) and private (v2 with subfolders) +include_routers(app, os.path.join(os.path.dirname(__file__), "routers", "v1")) +include_routers(app, os.path.join(os.path.dirname(__file__), "routers", "v2"), recursive=True) @app.on_event("startup") @@ -130,4 +129,3 @@ def custom_openapi(): uvicorn.run("main:app", host=config.HOST, port=config.PORT, reload=config.RELOAD) - diff --git a/routers/app/player.py b/routers/app/player.py deleted file mode 100644 index 4be93d42..00000000 --- a/routers/app/player.py +++ /dev/null @@ -1,95 +0,0 @@ -import os - -import aiohttp -import httpx -import pendulum as pend -from dotenv import load_dotenv -from fastapi import Header, HTTPException, Request, APIRouter -from fastapi.security import OAuth2PasswordBearer - -from models.app import CocAccountRequest, CocAccountsRequest -from utils.auth_utils import decode_jwt -from passlib.context import CryptContext -from cryptography.fernet import Fernet -import re - -from utils.utils import fix_tag, db_client - -############################ -# Load environment variables -############################ -load_dotenv() - -############################ -# Global configuration -############################ -SECRET_KEY = os.getenv('SECRET_KEY') -REFRESH_SECRET = os.getenv('REFRESH_SECRET') -DISCORD_CLIENT_ID = os.getenv('DISCORD_CLIENT_ID') -DISCORD_CLIENT_SECRET = os.getenv('DISCORD_CLIENT_SECRET') -DISCORD_REDIRECT_URI = os.getenv('DISCORD_REDIRECT_URI') -ENCRYPTION_KEY = os.getenv('ENCRYPTION_KEY') -ALGORITHM = "HS256" - -# Fernet cipher for encryption/decryption -cipher = Fernet(ENCRYPTION_KEY) - -# Password hashing configuration -pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") - -# OAuth2 scheme -oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token") - -# FastAPI router -router = APIRouter(tags=["App Player"], include_in_schema=True) - - -@router.post("/app/coc-accounts/stats") -async def add_coc_account(request: CocAccountsRequest, authorization: str = Header(None)): - """Associate a Clash of Clans account (tag) with a user WITHOUT ownership verification.""" - token = authorization.split("Bearer ")[1] - decoded_token = decode_jwt(token) - user_id = decoded_token["sub"] - player_tags = request.player_tags - return_data = {"items": []} - - for player_tag in player_tags: - player_tag = fix_tag(player_tag) - - player_data = await db_client.player_stats_db.find_one({"tag": player_tag}, - {"tag": 1, "name": 1, "clan_tag": 1, "townhall": 1, - "donations": 1, "legends": 1, - "clan_games": 1, "season_pass": 1, "activity": 1, - "last_online": 1, "last_online_time": 1, - "attack_wins": 1, "dark_elixir": 1, "gold": 1, - "clancapitalcontributions": 1, "capital_gold": 1, - "warstars": 1, "league": 1, "season_trophies": 1, - "last_updated": 1, - }) - player_data = player_data or {} - - return_data["items"].append( - { - "tag": player_tag, - "name": player_data.get("name"), - "clan_tag": player_data.get("clan_tag"), - "town_hall": player_data.get("townhall"), - "donations": player_data.get("donations"), - "legends": player_data.get("legends"), - "clan_games": player_data.get("clan_games"), - "season_pass": player_data.get("season_pass"), - "activity": player_data.get("activity"), - "last_online": player_data.get("last_online"), - "last_online_time": player_data.get("last_online_time"), - "attack_wins": player_data.get("attack_wins"), - "dark_elixir": player_data.get("dark_elixir"), - "gold": player_data.get("gold"), - "capital_gold": player_data.get("capital_gold"), - "clan_capital_contributions": player_data.get("clancapitalcontributions"), - "war_stars": player_data.get("warstars"), - "league": player_data.get("league"), - "is_in_legend_league": player_data.get("league") == "Legend League", - "season_trophies": player_data.get("season_trophies"), - "last_updated": player_data.get("last_updated"), - } - ) diff --git a/routers/app/test.py b/routers/app/test.py deleted file mode 100644 index 59dc7ba5..00000000 --- a/routers/app/test.py +++ /dev/null @@ -1,519 +0,0 @@ -# import os -# -# import httpx -# import jwt -# import requests -# import pendulum as pend -# from dotenv import load_dotenv -# from fastapi import Depends, HTTPException, Request, APIRouter -# from fastapi.security import OAuth2PasswordBearer -# from pydantic import BaseModel -# from utils.utils import db_client -# from passlib.context import CryptContext -# from cryptography.fernet import Fernet -# -# ############################ -# # Load environment variables -# ############################ -# load_dotenv() -# -# ############################ -# # Global configuration -# ############################ -# SECRET_KEY = os.getenv('SECRET_KEY') -# REFRESH_SECRET = os.getenv('REFRESH_SECRET') -# DISCORD_CLIENT_ID = os.getenv('DISCORD_CLIENT_ID') -# DISCORD_CLIENT_SECRET = os.getenv('DISCORD_CLIENT_SECRET') -# DISCORD_REDIRECT_URI = os.getenv('DISCORD_REDIRECT_URI') -# ENCRYPTION_KEY = os.getenv('ENCRYPTION_KEY') -# -# # Fernet cipher for encryption/decryption -# cipher = Fernet(ENCRYPTION_KEY) -# -# # Password hashing configuration -# pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") -# -# # OAuth2 scheme -# oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token") -# -# # FastAPI router -# router = APIRouter(tags=["Authentication"], include_in_schema=True) -# -# ############################ -# # Data models -# ############################ -# class Token(BaseModel): -# access_token: str -# refresh_token: str -# -# ############################ -# # Utility functions -# ############################ -# -# # Encrypt data (string) using Fernet -# async def encrypt_data(data: str) -> str: -# return cipher.encrypt(data.encode()).decode() -# -# # Decrypt data (string) using Fernet -# async def decrypt_data(data: str) -> str: -# return cipher.decrypt(data.encode()).decode() -# -# # Hash a password using bcrypt -# def hash_password(password: str) -> str: -# return pwd_context.hash(password) -# -# # Verify a plaintext password against a hashed one -# def verify_password(plain_password: str, hashed_password: str) -> bool: -# return pwd_context.verify(plain_password, hashed_password) -# -# # Generate a short-lived JWT (1 hour) -# def generate_jwt(user_id: str, user_type: str): -# payload = { -# "sub": user_id, -# "type": user_type, -# "exp": pend.now().add(hours=1).int_timestamp -# } -# return jwt.encode(payload, SECRET_KEY, algorithm="HS256") -# -# # Generate a long-lived refresh token (90 days) -# def generate_refresh_token(user_id: str, device_id: str): -# payload = { -# "sub": user_id, -# "device": device_id, -# "exp": pend.now().add(days=90).int_timestamp -# } -# return jwt.encode(payload, REFRESH_SECRET, algorithm="HS256") -# -# async def get_valid_discord_access_token(user_id: str) -> str: -# discord_token = await db_client.app_discord_tokens.find_one({"user_id": user_id}) -# if not discord_token: -# raise HTTPException(status_code=401, detail="Missing Discord refresh token") -# -# refresh_token = await decrypt_data(discord_token["discord_refresh_token"]) -# -# # Générer un nouveau access_token -# new_token_data = await refresh_discord_access_token(refresh_token) -# return new_token_data["access_token"] -# -# -# ############################ -# # JWT blacklist management -# ############################ -# jwt_blacklist = set() -# -# def add_to_blacklist(token: str): -# jwt_blacklist.add(token) -# -# def is_blacklisted(token: str) -> bool: -# return token in jwt_blacklist -# -# ############################ -# # Retrieve current user and validate token -# ############################ -# async def get_current_user(token: str): -# if not token: -# raise HTTPException(status_code=401, detail="Missing authentication token") -# -# current_user = await db_client.app_clashking_tokens.find_one({"access_token": token}) -# if not current_user: -# raise HTTPException(status_code=404, detail="User not found") -# -# if current_user.get("account_type") == "discord": -# discord_access = await get_valid_discord_access_token(current_user["user_id"]) -# -# async with httpx.AsyncClient() as client: -# response = await client.get( -# "https://discord.com/api/users/@me", -# headers={"Authorization": f"Bearer {discord_access}"} -# ) -# -# if response.status_code == 200: -# discord_data = response.json() -# return { -# "user_id": current_user["user_id"], -# "discord_username": discord_data["username"], -# "avatar_url": f"https://cdn.discordapp.com/avatars/{discord_data['id']}/{discord_data['avatar']}.png" -# } -# -# raise HTTPException(status_code=500, detail="Error retrieving Discord profile") -# -# return current_user -# -# ############################ -# # Device ID validation -# ############################ -# async def validate_device_id(request: Request, user_id: str): -# """ -# Check whether the X-Device-ID header is provided and belongs to an existing -# session for the given user_id. -# """ -# device_header = request.headers.get("X-Device-ID") -# if not device_header: -# raise HTTPException(status_code=400, detail="Missing X-Device-ID header") -# -# sessions = await db_client.app_tokens.find({"user_id": user_id}).to_list(None) -# device_ids = [session.get("device_id") for session in sessions] -# if device_header not in device_ids: -# raise HTTPException(status_code=403, detail="Invalid or unknown device ID") -# -# ############################ -# # Endpoints -# ############################ -# -# # 2) Link Discord account to a ClashKing user -# @router.post("/auth/link-discord") -# async def link_discord_account(request: Request): -# """ -# This endpoint links a Discord account to a ClashKing user by storing -# the Discord ID in the user's record (encrypted if necessary). -# """ -# form = await request.form() -# user_id = form.get("user_id") -# discord_id = form.get("discord_id") -# if not user_id or not discord_id: -# raise HTTPException(status_code=400, detail="Missing user_id or discord_id") -# -# user = await db_client.app_users.find_one({"user_id": user_id}) -# if not user: -# raise HTTPException(status_code=404, detail="ClashKing user not found") -# -# encrypted_discord_id = await encrypt_data(discord_id) -# -# await db_client.app_users.update_one( -# {"user_id": user_id}, -# {"$set": {"discord_id": encrypted_discord_id}} -# ) -# return {"message": "Discord account linked successfully"} -# -# # 3) Authenticate ClashKing user -# @router.post("/auth/clashking", response_model=Token) -# async def auth_clashking(email: str, password: str, request: Request): -# """ -# This endpoint authenticates a user with ClashKing credentials (email/password). -# If the user doesn't exist, a new account is created. Otherwise, the password -# is verified. Access and refresh tokens are returned. -# """ -# device_id = request.headers.get("X-Device-ID", "unknown") -# -# encrypted_email = await encrypt_data(email) -# user = await db_client.app_users.find_one({"email": encrypted_email}) -# -# if not user: -# # Create a new user -# hashed_pw = hash_password(password) -# new_user = { -# "user_id": str(pend.now().int_timestamp), -# "email": encrypted_email, -# "password": hashed_pw, -# "account_type": "clashking", -# "created_at": pend.now() -# } -# await db_client.app_users.insert_one(new_user) -# user = new_user -# else: -# # Verify the provided password -# if not verify_password(password, user["password"]): -# raise HTTPException(status_code=403, detail="Invalid credentials") -# -# access_token = generate_jwt(user["user_id"], "clashking") -# refresh_token = generate_refresh_token(user["user_id"], device_id) -# -# # Encrypt the refresh token before storing in DB -# encrypted_refresh = await encrypt_data(refresh_token) -# -# await db_client.app_tokens.insert_one({ -# "user_id": user["user_id"], -# "refresh_token": encrypted_refresh, -# "device_id": device_id, -# "expires_at": pend.now().add(days=90) -# }) -# -# return { -# "access_token": access_token, -# "refresh_token": await encrypt_data(refresh_token) -# } -# -# @router.post("/auth/discord", response_model=Token) -# async def auth_discord(request: Request): -# form = await request.form() -# code = form.get("code") -# code_verifier = form.get("code_verifier") -# device_id = request.headers.get("X-Device-ID", "unknown") -# -# if not code or not code_verifier: -# raise HTTPException(status_code=400, detail="Missing Discord code or code_verifier") -# -# token_url = "https://discord.com/api/oauth2/token" -# token_data = { -# "client_id": DISCORD_CLIENT_ID, -# "code": code, -# "grant_type": "authorization_code", -# "redirect_uri": DISCORD_REDIRECT_URI, -# "code_verifier": code_verifier -# } -# -# async with httpx.AsyncClient() as client: -# token_response = await client.post(token_url, data=token_data, headers={"Content-Type": "application/x-www-form-urlencoded"}) -# -# if token_response.status_code != 200: -# raise HTTPException(status_code=500, detail="Error during Discord authentication") -# -# discord_data = token_response.json() -# refresh_token_discord = discord_data.get("refresh_token") -# -# user_response = await client.get( -# "https://discord.com/api/users/@me", -# headers={"Authorization": f"Bearer {discord_data['access_token']}"} -# ) -# -# if user_response.status_code != 200: -# raise HTTPException(status_code=500, detail="Error retrieving user info") -# -# user_data = user_response.json() -# discord_user_id = user_data["id"] -# -# existing_user = await db_client.app_users.find_one({"user_id": discord_user_id}) -# if not existing_user: -# await db_client.app_users.insert_one({"user_id": discord_user_id, "created_at": pend.now()}) -# -# encrypted_discord_refresh = await encrypt_data(refresh_token_discord) if refresh_token_discord else None -# -# await db_client.app_discord_tokens.replace_one( -# {"user_id": discord_user_id, "device_id": device_id}, -# { -# "user_id": discord_user_id, -# "device_id": device_id, -# "discord_refresh_token": encrypted_discord_refresh -# }, -# upsert=True # Insert if not found -# ) -# -# access_token = generate_refresh_token(discord_user_id, device_id) -# encrypted_token = await encrypt_data(access_token) -# -# await db_client.app_clashking_tokens.insert_one({ -# "user_id": discord_user_id, -# "account_type": "discord", -# "access_token": encrypted_token, -# "device_id": device_id, -# "expires_at": pend.now().add(days=180) -# }) -# -# return {"access_token": access_token} -# -# -# # 5) Refresh token: generate a new access token -# @router.post("/refresh-token", response_model=Token) -# async def refresh_token(token: str, request: Request): -# """ -# This endpoint receives an existing refresh token (encrypted in the DB), -# validates it, checks device_id, and issues a new access/refresh token pair. -# """ -# print("token", token) -# # Decrypt the user-provided token to compare with the DB -# stored_token = await db_client.app_tokens.find_one({"refresh_token": await encrypt_data(token)}) -# -# if not stored_token: -# raise HTTPException(status_code=403, detail="Invalid token") -# -# try: -# payload = jwt.decode(token, REFRESH_SECRET, algorithms=["HS256"]) -# print("payload", payload) -# user_id = payload.get("sub") -# device_id = payload.get("device") -# -# # Validate the device_id from the request -# await validate_device_id(request, user_id) -# -# new_access_token = generate_jwt(user_id, "clashking") -# new_refresh_token = generate_refresh_token(user_id, device_id) -# encrypted_new = await encrypt_data(new_refresh_token) -# -# # Update the stored token in the DB -# await db_client.app_tokens.update_one( -# {"refresh_token": stored_token["refresh_token"]}, -# {"$set": { -# "refresh_token": encrypted_new, -# "expires_at": pend.now().add(days=90) -# }} -# ) -# -# return { -# "access_token": new_access_token, -# "refresh_token": await encrypt_data(new_refresh_token) -# } -# -# except jwt.ExpiredSignatureError: -# raise HTTPException(status_code=403, detail="Refresh token expired") -# except jwt.exceptions.PyJWTError: -# raise HTTPException(status_code=403, detail="Invalid token") -# -# # 6) Get current user info -# @router.get("/users/me") -# async def read_users_me(current_user=Depends(get_current_user)): -# """ -# Returns the current user's information: -# - For ClashKing users: Returns decrypted email. -# - For Discord users: Fetches username & avatar from the Discord API. -# """ -# user_data = { -# "user_id": current_user["user_id"], -# "account_type": current_user.get("account_type", "unknown"), -# "created_at": current_user.get("created_at"), -# } -# -# # If the user is a ClashKing account, return the decrypted email -# if current_user["account_type"] == "clashking": -# decrypted_email = None -# if "email" in current_user: -# try: -# decrypted_email = await decrypt_data(current_user["email"]) -# except: -# decrypted_email = "(error decrypting email)" -# user_data["email"] = decrypted_email -# -# # If the user is a Discord account, fetch their username and avatar -# elif current_user["account_type"] == "discord": -# try: -# # Decrypt the stored Discord access token -# discord_access = await decrypt_data(current_user["discord_access_token"]) -# -# # Call Discord API to get user information -# response = requests.get( -# "https://discord.com/api/users/@me", -# headers={"Authorization": f"Bearer {discord_access}"} -# ) -# -# if response.status_code == 200: -# discord_data = response.json() -# user_data["discord_username"] = discord_data["username"] -# user_data["avatar_url"] = f"https://cdn.discordapp.com/avatars/{discord_data['id']}/{discord_data['avatar']}.png" -# else: -# raise HTTPException(status_code=500, detail="Error from Discord API") -# -# except Exception as e: -# raise HTTPException(status_code=500, detail=f"Failed to fetch Discord profile: {str(e)}") -# -# return user_data -# -# # 7) Get all user sessions -# @router.get("/users/sessions") -# async def get_sessions(current_user=Depends(get_current_user)): -# """ -# This endpoint fetches all active sessions (refresh tokens) associated -# with the current user. -# """ -# user_id = current_user["user_id"] -# sessions = await db_client.app_tokens.find({"user_id": user_id}).to_list(None) -# return [ -# { -# "device_id": s.get("device_id"), -# "expires_at": s.get("expires_at") -# } for s in sessions -# ] -# -# # 8) Logout (invalidate one session) -# @router.post("/logout") -# async def logout(token: str): -# """ -# This endpoint invalidates (removes) a refresh token from the DB, -# effectively logging out of one session. Optionally, you can also -# blacklist the associated access token if you need immediate invalidation. -# """ -# encrypted_token = await encrypt_data(token) -# result = await db_client.app_tokens.delete_one({"refresh_token": encrypted_token}) -# if result.deleted_count == 0: -# raise HTTPException(status_code=404, detail="No session found for given token") -# -# # Optionally add the token to the blacklist -# # add_to_blacklist(token) -# -# return {"message": "Successfully logged out"} -# -# @router.get("/discord/me") -# async def get_discord_profile(current_user=Depends(get_current_user)): -# user_id = current_user["user_id"] -# -# # Retrieve the stored Discord tokens -# user_record = await db_client.app_users.find_one({"user_id": user_id}) -# if not user_record or "discord_access_token" not in user_record: -# raise HTTPException(status_code=404, detail="No Discord token found") -# -# # Decrypt the access token -# discord_access_token = await decrypt_data(user_record["discord_access_token"]) -# -# # 1) Tenter d'appeler l'API Discord -# response = requests.get( -# "https://discord.com/api/users/@me", -# headers={"Authorization": f"Bearer {discord_access_token}"} -# ) -# -# # 2) Si le token Discord est expiré (401), on tente un refresh -# if response.status_code == 401: -# if "discord_refresh_token" not in user_record or not user_record["discord_refresh_token"]: -# raise HTTPException(status_code=401, detail="No Discord refresh token stored") -# -# # On tente de rafraîchir le token -# try: -# new_discord_data = refresh_discord_access_token(user_record["discord_refresh_token"]) -# except Exception as e: -# raise HTTPException(status_code=500, detail=f"Error refreshing Discord token: {e}") -# -# # On met à jour la base avec les nouveaux tokens -# new_access = new_discord_data["access_token"] -# new_refresh = new_discord_data.get("refresh_token") # peut être None -# new_expires_in = new_discord_data.get("expires_in") -# -# encrypted_discord_access = await encrypt_data(new_access) -# encrypted_discord_refresh = await encrypt_data(new_refresh) if new_refresh else None -# -# await db_client.app_users.update_one( -# {"user_id": user_id}, -# { -# "$set": { -# "discord_access_token": encrypted_discord_access, -# "discord_refresh_token": encrypted_discord_refresh, -# "discord_expires_in": new_expires_in, -# "updated_at": pend.now() -# } -# } -# ) -# -# # On refait l'appel à Discord avec le nouveau token -# response = requests.get( -# "https://discord.com/api/users/@me", -# headers={"Authorization": f"Bearer {new_access}"} -# ) -# -# if response.status_code != 200: -# raise HTTPException( -# status_code=500, -# detail=f"Error from Discord: {response.json()}" -# ) -# -# return response.json() -# -# async def refresh_discord_access_token(encrypted_refresh_token: str) -> dict: -# """ -# Refreshes the Discord access token using the stored refresh token. -# """ -# try: -# refresh_token = await decrypt_data(encrypted_refresh_token) -# token_data = { -# "client_id": DISCORD_CLIENT_ID, -# "client_secret": DISCORD_CLIENT_SECRET, -# "grant_type": "refresh_token", -# "refresh_token": refresh_token -# } -# headers = {"Content-Type": "application/x-www-form-urlencoded"} -# token_response = requests.post("https://discord.com/api/oauth2/token", data=token_data, headers=headers) -# -# if token_response.status_code == 200: -# return token_response.json() -# else: -# raise HTTPException( -# status_code=401, -# detail=f"Failed to refresh Discord token: {token_response.json()}" -# ) -# except Exception as e: -# raise HTTPException(status_code=500, detail=f"Error refreshing Discord token: {str(e)}") diff --git a/routers/v2/accounts.py b/routers/v2/accounts/endpoints.py similarity index 68% rename from routers/v2/accounts.py rename to routers/v2/accounts/endpoints.py index feaa4a2a..1b455ba0 100644 --- a/routers/v2/accounts.py +++ b/routers/v2/accounts/endpoints.py @@ -1,60 +1,15 @@ -import requests import pendulum as pend import re -from dotenv import load_dotenv from fastapi import HTTPException, Header, APIRouter -from models.app import CocAccountRequest +from routers.v2.accounts.utils import fetch_coc_account_data, is_coc_account_linked, verify_coc_ownership +from routers.v2.auth.models import CocAccountRequest from utils.utils import db_client, generate_custom_id -from utils.auth_utils import decode_jwt # Import JWT decoder +from utils.auth_utils import decode_jwt -# Load environment variables -load_dotenv() +router = APIRouter(prefix="/v2", tags=["Coc Accounts"], include_in_schema=True) -router = APIRouter(tags=["Coc Accounts"], include_in_schema=True) - -################ -# Utility functions -################ - -async def fetch_coc_account_data(coc_tag: str) -> dict: - """Retrieve Clash of Clans account details using the API.""" - coc_tag = coc_tag.replace("#", "%23") - url = f"https://proxy.clashk.ing/v1/players/{coc_tag}" - response = requests.get(url) - - if response.status_code != 200: - raise HTTPException(status_code=404, detail="Clash of Clans account does not exist") - - return response.json() # Return the account data - -async def verify_coc_ownership(coc_tag: str, player_token: str) -> bool: - """Verify if the provided player token matches the given Clash of Clans account.""" - coc_tag = coc_tag.replace("#", "%23") - url = f"https://proxy.clashk.ing/v1/players/{coc_tag}/verifytoken" - response = requests.post(url, json={"token": player_token}) - - if response.status_code != 200: - return False # API error, consider it invalid - - try: - data = response.json() - return data.get("status") == "ok" - except ValueError: - return False # If JSON parsing fails, assume invalid - - -async def is_coc_account_linked(coc_tag: str) -> bool: - """Check if the Clash of Clans account is already linked to another user.""" - existing_account = await db_client.coc_accounts.find_one({"coc_tag": coc_tag}) - return existing_account is not None - - -################ -# Endpoints -################ - -@router.post("/users/add-coc-account") +@router.post("/users/add-coc-account", name="Link a Clash of Clans account to a user") async def add_coc_account(request: CocAccountRequest, authorization: str = Header(None)): """Associate a Clash of Clans account (tag) with a user WITHOUT ownership verification.""" token = authorization.split("Bearer ")[1] @@ -88,18 +43,18 @@ async def add_coc_account(request: CocAccountRequest, authorization: str = Heade "account": { "tag": coc_account_data["tag"], "name": coc_account_data["name"], - "townHallLevel": coc_account_data["townHallLevel"] + "townHallLevel": coc_account_data["townHallLevel"], + "clan_tag": coc_account_data.get("clan", {}).get("tag"), } } -@router.post("/users/add-coc-account-with-token") +@router.post("/users/add-coc-account-with-token", name="Link a Clash of Clans account to a user with a token verification") async def add_coc_account_with_verification(request: CocAccountRequest, authorization: str = Header(None)): """Associate a Clash of Clans account with a user WITH ownership verification.""" - #token = authorization.split("Bearer ")[1] - #decoded_token = decode_jwt(token) - #user_id = decoded_token["sub"] - user_id = "506210109790093342" + token = authorization.split("Bearer ")[1] + decoded_token = decode_jwt(token) + user_id = decoded_token["sub"] coc_tag = request.coc_tag player_token = request.player_token @@ -137,7 +92,7 @@ async def add_coc_account_with_verification(request: CocAccountRequest, authoriz } -@router.get("/users/coc-accounts") +@router.get("/users/coc-accounts", name="Get all Clash of Clans accounts linked to a user") async def get_coc_accounts(authorization: str = Header(None)): """Retrieve all Clash of Clans accounts linked to a user.""" @@ -150,7 +105,7 @@ async def get_coc_accounts(authorization: str = Header(None)): return {"coc_accounts": accounts} -@router.delete("/users/remove-coc-account") +@router.delete("/users/remove-coc-account", name="Remove a Clash of Clans account linked to a user") async def remove_coc_account(request: CocAccountRequest, authorization: str = Header(None)): """Remove a specific Clash of Clans account linked to a user.""" @@ -170,7 +125,7 @@ async def remove_coc_account(request: CocAccountRequest, authorization: str = He return {"message": "Clash of Clans account unlinked successfully"} -@router.get("/users/check-coc-account") +@router.get("/users/check-coc-account", name="Check if a Clash of Clans account is linked to any user") async def check_coc_account(coc_tag: str): """Check if a Clash of Clans account is linked to any user.""" diff --git a/routers/v2/accounts/utils.py b/routers/v2/accounts/utils.py new file mode 100644 index 00000000..a1c9d690 --- /dev/null +++ b/routers/v2/accounts/utils.py @@ -0,0 +1,36 @@ +import requests +from fastapi import HTTPException +from utils.utils import db_client + +async def fetch_coc_account_data(coc_tag: str) -> dict: + """Retrieve Clash of Clans account details using the API.""" + coc_tag = coc_tag.replace("#", "%23") + url = f"https://proxy.clashk.ing/v1/players/{coc_tag}" + response = requests.get(url) + + if response.status_code != 200: + raise HTTPException(status_code=404, detail="Clash of Clans account does not exist") + + return response.json() # Return the account data + +async def verify_coc_ownership(coc_tag: str, player_token: str) -> bool: + """Verify if the provided player token matches the given Clash of Clans account.""" + coc_tag = coc_tag.replace("#", "%23") + url = f"https://proxy.clashk.ing/v1/players/{coc_tag}/verifytoken" + response = requests.post(url, json={"token": player_token}) + + if response.status_code != 200: + return False # API error, consider it invalid + + try: + data = response.json() + return data.get("status") == "ok" + except ValueError: + return False # If JSON parsing fails, assume invalid + + +async def is_coc_account_linked(coc_tag: str) -> bool: + """Check if the Clash of Clans account is already linked to another user.""" + existing_account = await db_client.coc_accounts.find_one({"coc_tag": coc_tag}) + return existing_account is not None + diff --git a/routers/v2/auth.py b/routers/v2/auth/endpoints.py similarity index 81% rename from routers/v2/auth.py rename to routers/v2/auth/endpoints.py index eb905d66..a46b6f39 100644 --- a/routers/v2/auth.py +++ b/routers/v2/auth/endpoints.py @@ -1,50 +1,14 @@ -import os - import httpx import pendulum as pend -from dotenv import load_dotenv from fastapi import Header, HTTPException, Request, APIRouter -from fastapi.security import OAuth2PasswordBearer from utils.auth_utils import get_valid_discord_access_token, decode_jwt, encrypt_data, generate_jwt, \ generate_refresh_token -from utils.utils import db_client, generate_custom_id -from passlib.context import CryptContext -from cryptography.fernet import Fernet -from models.app import AuthResponse, UserInfo, RefreshTokenRequest - -############################ -# Load environment variables -############################ -load_dotenv() - -############################ -# Global configuration -############################ -SECRET_KEY = os.getenv('SECRET_KEY') -REFRESH_SECRET = os.getenv('REFRESH_SECRET') -DISCORD_CLIENT_ID = os.getenv('DISCORD_CLIENT_ID') -DISCORD_CLIENT_SECRET = os.getenv('DISCORD_CLIENT_SECRET') -DISCORD_REDIRECT_URI = os.getenv('DISCORD_REDIRECT_URI') -ENCRYPTION_KEY = os.getenv('ENCRYPTION_KEY') -ALGORITHM = "HS256" - -# Fernet cipher for encryption/decryption -cipher = Fernet(ENCRYPTION_KEY) - -# Password hashing configuration -pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") - -# OAuth2 scheme -oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token") - -# FastAPI router -router = APIRouter(tags=["App Authentication"], include_in_schema=True) - -############################ -# Endpoints -############################ - -@router.get("/auth/me") +from utils.utils import db_client, generate_custom_id, config +from routers.v2.auth.models import AuthResponse, UserInfo, RefreshTokenRequest + +router = APIRouter(prefix="/v2", tags=["App Authentication"], include_in_schema=True) + +@router.get("/auth/me", name="Get current Discord user information") async def get_current_user(authorization: str = Header(None)): if not authorization or not authorization.startswith("Bearer "): raise HTTPException(status_code=401, detail="Missing or invalid authentication token") @@ -89,8 +53,9 @@ async def get_current_user(authorization: str = Header(None)): raise HTTPException(status_code=500, detail="Error retrieving Discord profile") -@router.post("/auth/discord", response_model=AuthResponse) +@router.post("/auth/discord", response_model=AuthResponse, name="Authenticate with Discord") async def auth_discord(request: Request): + """Authenticate with Discord""" form = await request.form() code = form.get("code") code_verifier = form.get("code_verifier") @@ -103,10 +68,10 @@ async def auth_discord(request: Request): # Get the access token and refresh token from Discord token_url = "https://discord.com/api/oauth2/token" token_data = { - "client_id": DISCORD_CLIENT_ID, + "client_id": config.DISCORD_CLIENT_ID, "code": code, "grant_type": "authorization_code", - "redirect_uri": DISCORD_REDIRECT_URI, + "redirect_uri": config.DISCORD_REDIRECT_URI, "code_verifier": code_verifier } @@ -189,7 +154,7 @@ async def auth_discord(request: Request): ) -@router.post("/auth/refresh") +@router.post("/auth/refresh", name="Refresh the access token") async def refresh_access_token(request: RefreshTokenRequest) -> dict: """Refresh the access token using the stored refresh token.""" stored_refresh_token = await db_client.app_refresh_tokens.find_one({"refresh_token": request.refresh_token}) diff --git a/models/app.py b/routers/v2/auth/models.py similarity index 85% rename from models/app.py rename to routers/v2/auth/models.py index 095657dd..74a4aa18 100644 --- a/models/app.py +++ b/routers/v2/auth/models.py @@ -5,9 +5,6 @@ class CocAccountRequest(BaseModel): coc_tag: str player_token: str = None -class CocAccountsRequest(BaseModel): - coc_tags: list[str] - class UserInfo(BaseModel): user_id: str username: str diff --git a/routers/v2/player/endpoints.py b/routers/v2/player/endpoints.py index 9ebb409e..ee2ba36e 100644 --- a/routers/v2/player/endpoints.py +++ b/routers/v2/player/endpoints.py @@ -1,12 +1,13 @@ +import asyncio -import pendulum as pend +import aiohttp from fastapi import HTTPException from fastapi import APIRouter, Query, Request from utils.utils import fix_tag, remove_id_fields from utils.database import MongoClient as mongo from routers.v2.player.models import PlayerTagsRequest -router = APIRouter(prefix="/v2",tags=["Player"], include_in_schema=True) +router = APIRouter(prefix="/v2", tags=["Player"], include_in_schema=True) @router.post("/players/location", @@ -24,5 +25,39 @@ async def player_location_list(request: Request, body: PlayerTagsRequest): return {"items": remove_id_fields(location_info)} +@router.post("/players/full-stats", name="Get full stats for a list of players") +async def get_full_player_stats(request: Request, body: PlayerTagsRequest): + """Retrieve Clash of Clans account details for a list of players.""" + if not body.player_tags: + raise HTTPException(status_code=400, detail="player_tags cannot be empty") + + player_tags = [fix_tag(tag) for tag in body.player_tags] + + players_info = await mongo.player_stats.find( + {'tag': {'$in': player_tags}}, + {'_id': 0, 'tag' : 1, 'donations': 1, 'legends': 1, 'clan_games': 1, 'season_pass': 1, 'activity': 1, + 'last_online': 1, 'last_online_time': 1, 'attack_wins': 1, 'dark_elixir': 1, 'gold': 1, + 'capital_gold': 1, 'season_trophies': 1, 'last_updated': 1} + ).to_list(length=None) + + mongo_data_dict = {player["tag"]: player for player in players_info} + + async def fetch_player_data(session, tag): + url = f"https://proxy.clashk.ing/v1/players/{tag.replace('#', '%23')}" + async with session.get(url) as response: + if response.status == 200: + return await response.json() + return None + + async with aiohttp.ClientSession() as session: + api_responses = await asyncio.gather(*(fetch_player_data(session, tag) for tag in player_tags)) + + combined_results = [] + for tag, api_data in zip(player_tags, api_responses): + player_data = mongo_data_dict.get(tag, {}) + if api_data: + player_data.update(api_data) + combined_results.append(player_data) + return {"items": remove_id_fields(combined_results)} diff --git a/routers/v2/player/models.py b/routers/v2/player/models.py index e5e571ae..4a922d21 100644 --- a/routers/v2/player/models.py +++ b/routers/v2/player/models.py @@ -2,4 +2,4 @@ from typing import List class PlayerTagsRequest(BaseModel): - player_tags: List[str] \ No newline at end of file + player_tags: List[str] diff --git a/utils/config.py b/utils/config.py index 0908ce34..4c9d1447 100644 --- a/utils/config.py +++ b/utils/config.py @@ -1,7 +1,11 @@ -import os from os import getenv -from dotenv import load_dotenv from dataclasses import dataclass +import os +from dotenv import load_dotenv +from fastapi.security import OAuth2PasswordBearer +from passlib.context import CryptContext +from cryptography.fernet import Fernet + load_dotenv() @dataclass(frozen=True, slots=True) @@ -38,4 +42,17 @@ class Config: PORT = 8000 if IS_LOCAL else (8073 if IS_DEV else 8010) RELOAD = IS_LOCAL or IS_DEV + SECRET_KEY = os.getenv('SECRET_KEY') + REFRESH_SECRET = os.getenv('REFRESH_SECRET') + DISCORD_CLIENT_ID = os.getenv('DISCORD_CLIENT_ID') + DISCORD_CLIENT_SECRET = os.getenv('DISCORD_CLIENT_SECRET') + DISCORD_REDIRECT_URI = os.getenv('DISCORD_REDIRECT_URI') + ENCRYPTION_KEY = os.getenv('ENCRYPTION_KEY') + ALGORITHM = "HS256" + + # Encryption/Decryption/Hashing/Token + cipher = Fernet(ENCRYPTION_KEY) + pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") + oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token") + diff --git a/utils/database.py b/utils/database.py index 304c1f0e..66e26bcd 100644 --- a/utils/database.py +++ b/utils/database.py @@ -6,10 +6,10 @@ class MongoClient: looper_db = motor.motor_asyncio.AsyncIOMotorClient( - config.stats_mongodb, compressors='snappy' if not config.is_local else 'zlib' + config.stats_mongodb, compressors='snappy' if not config.IS_LOCAL else 'zlib' ) db_client = motor.motor_asyncio.AsyncIOMotorClient( - config.static_mongodb, compressors='snappy' if not config.is_local else 'zlib' + config.static_mongodb, compressors='snappy' if not config.IS_LOCAL else 'zlib' ) # Databases diff --git a/utils/utils.py b/utils/utils.py index 23ac963e..f3c55415 100644 --- a/utils/utils.py +++ b/utils/utils.py @@ -104,7 +104,7 @@ def __init__(self): self.player_capital_lb: collection_class = self.leaderboards.capital_player self.clan_capital_lb: collection_class = self.leaderboards.capital_clan - self.app = client.get_database("app") + self.app = client.get_database("auth") self.app_users: collection_class = self.app.users self.app_discord_tokens: collection_class = self.app.discord_tokens self.app_refresh_tokens: collection_class = self.app.refresh_tokens From 54c5c529615dfa78219fd282037bb12a04601605 Mon Sep 17 00:00:00 2001 From: Destinea Date: Wed, 5 Mar 2025 18:26:36 +0100 Subject: [PATCH 045/174] feat: Reorder COC Accounts --- routers/v2/accounts/endpoints.py | 75 ++++++++++++++++++++++++++++++-- 1 file changed, 71 insertions(+), 4 deletions(-) diff --git a/routers/v2/accounts/endpoints.py b/routers/v2/accounts/endpoints.py index 1b455ba0..c3df7fcc 100644 --- a/routers/v2/accounts/endpoints.py +++ b/routers/v2/accounts/endpoints.py @@ -9,6 +9,7 @@ router = APIRouter(prefix="/v2", tags=["Coc Accounts"], include_in_schema=True) + @router.post("/users/add-coc-account", name="Link a Clash of Clans account to a user") async def add_coc_account(request: CocAccountRequest, authorization: str = Header(None)): """Associate a Clash of Clans account (tag) with a user WITHOUT ownership verification.""" @@ -29,11 +30,16 @@ async def add_coc_account(request: CocAccountRequest, authorization: str = Heade if await is_coc_account_linked(coc_tag): raise HTTPException(status_code=409, detail="This Clash of Clans account is already linked to another user") + # Get the order index for the new account + existing_accounts = await db_client.coc_accounts.count_documents({"user_id": user_id}) + order_index = existing_accounts # The new account will be added at the end + # Store in the database await db_client.coc_accounts.insert_one({ "_id": generate_custom_id(int(user_id)), "user_id": user_id, "coc_tag": coc_account_data["tag"], + "order_index": order_index, "added_at": pend.now() }) @@ -49,7 +55,8 @@ async def add_coc_account(request: CocAccountRequest, authorization: str = Heade } -@router.post("/users/add-coc-account-with-token", name="Link a Clash of Clans account to a user with a token verification") +@router.post("/users/add-coc-account-with-token", + name="Link a Clash of Clans account to a user with a token verification") async def add_coc_account_with_verification(request: CocAccountRequest, authorization: str = Header(None)): """Associate a Clash of Clans account with a user WITH ownership verification.""" token = authorization.split("Bearer ")[1] @@ -65,19 +72,40 @@ async def add_coc_account_with_verification(request: CocAccountRequest, authoriz coc_tag = f"#{coc_tag}" if not await verify_coc_ownership(coc_tag, player_token): - raise HTTPException(status_code=403, detail="Invalid player token. Check your Clash of Clans account settings and try again.") + raise HTTPException(status_code=403, + detail="Invalid player token. Check your Clash of Clans account settings and try again.") # Fetch account details from the API coc_account_data = await fetch_coc_account_data(coc_tag) # Remove the link to the other user if it exists - await db_client.coc_accounts.delete_many({"coc_tag": coc_tag}) + old_account = await db_client.coc_accounts.find_one({"coc_tag": coc_tag}) + if old_account: + old_user_id = old_account["user_id"] + + # Delete the old account link + await db_client.coc_accounts.delete_one({"coc_tag": coc_tag}) + + # Update the order index for the remaining accounts + remaining_accounts = await db_client.coc_accounts.find({"user_id": old_user_id}).sort("order_index", 1).to_list( + length=None) + + for index, account in enumerate(remaining_accounts): + await db_client.coc_accounts.update_one( + {"_id": account["_id"]}, + {"$set": {"order_index": index}} + ) + + # Get the order index for the new account + existing_accounts = await db_client.coc_accounts.count_documents({"user_id": user_id}) + order_index = existing_accounts # The new account will be added at the end # Store in the database await db_client.coc_accounts.insert_one({ "_id": generate_custom_id(int(user_id)), "user_id": user_id, "coc_tag": coc_account_data["tag"], + "order_index": order_index, "added_at": pend.now() }) @@ -100,7 +128,7 @@ async def get_coc_accounts(authorization: str = Header(None)): decoded_token = decode_jwt(token) user_id = decoded_token["sub"] - accounts = await db_client.coc_accounts.find({"user_id": user_id}).to_list(length=None) + accounts = await db_client.coc_accounts.find({"user_id": user_id}).sort("order_index", 1).to_list(length=None) return {"coc_accounts": accounts} @@ -122,6 +150,16 @@ async def remove_coc_account(request: CocAccountRequest, authorization: str = He if result.deleted_count == 0: raise HTTPException(status_code=404, detail="Clash of Clans account not found or not linked to your profile") + # Reorder the remaining accounts + remaining_accounts = await db_client.coc_accounts.find({"user_id": user_id}).sort("order_index", 1).to_list( + length=None) + + for index, account in enumerate(remaining_accounts): + await db_client.coc_accounts.update_one( + {"_id": account["_id"]}, + {"$set": {"order_index": index}} + ) + return {"message": "Clash of Clans account unlinked successfully"} @@ -142,3 +180,32 @@ async def check_coc_account(coc_tag: str): "user_id": existing_account["user_id"], "message": "This Clash of Clans account is already linked to a user." } + + +@router.put("/users/reorder-coc-accounts", name="Reorder linked Clash of Clans accounts") +async def reorder_coc_accounts(request: dict, authorization: str = Header(None)): + """Reorder Clash of Clans accounts based on user preferences.""" + + token = authorization.split("Bearer ")[1] + decoded_token = decode_jwt(token) + user_id = decoded_token["sub"] + + new_order = request.get("ordered_tags", []) + if not new_order: + raise HTTPException(status_code=400, detail="Ordered tags list cannot be empty") + + # Check if all the accounts provided are linked to the user + user_accounts = await db_client.coc_accounts.find({"user_id": user_id}).to_list(length=None) + user_tags = {account["coc_tag"] for account in user_accounts} + + if not set(new_order).issubset(user_tags): + raise HTTPException(status_code=400, detail="Invalid account tags provided") + + # Update the order index for each account + for index, tag in enumerate(new_order): + await db_client.coc_accounts.update_one( + {"user_id": user_id, "coc_tag": tag}, + {"$set": {"order_index": index}} + ) + + return {"message": "Accounts reordered successfully"} From 26889ca5a489be509e34d7017ec5d084590178fc Mon Sep 17 00:00:00 2001 From: Destinea Date: Fri, 7 Mar 2025 08:10:17 +0100 Subject: [PATCH 046/174] chore: Renamed variables --- routers/v2/accounts/endpoints.py | 55 ++++++++++++++++---------------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/routers/v2/accounts/endpoints.py b/routers/v2/accounts/endpoints.py index c3df7fcc..cb1e5055 100644 --- a/routers/v2/accounts/endpoints.py +++ b/routers/v2/accounts/endpoints.py @@ -16,18 +16,18 @@ async def add_coc_account(request: CocAccountRequest, authorization: str = Heade token = authorization.split("Bearer ")[1] decoded_token = decode_jwt(token) user_id = decoded_token["sub"] - coc_tag = request.coc_tag + player_tag = request.player_tag - if not re.match(r"^#?[A-Z0-9]{5,12}$", coc_tag): + if not re.match(r"^#?[A-Z0-9]{5,12}$", player_tag): raise HTTPException(status_code=400, detail="Invalid Clash of Clans tag format") - if not coc_tag.startswith("#"): - coc_tag = f"#{coc_tag}" + if not player_tag.startswith("#"): + player_tag = f"#{player_tag}" # Fetch account details from the API - coc_account_data = await fetch_coc_account_data(coc_tag) + coc_account_data = await fetch_coc_account_data(player_tag) - if await is_coc_account_linked(coc_tag): + if await is_coc_account_linked(player_tag): raise HTTPException(status_code=409, detail="This Clash of Clans account is already linked to another user") # Get the order index for the new account @@ -38,7 +38,7 @@ async def add_coc_account(request: CocAccountRequest, authorization: str = Heade await db_client.coc_accounts.insert_one({ "_id": generate_custom_id(int(user_id)), "user_id": user_id, - "coc_tag": coc_account_data["tag"], + "player_tag": coc_account_data["tag"], "order_index": order_index, "added_at": pend.now() }) @@ -50,7 +50,6 @@ async def add_coc_account(request: CocAccountRequest, authorization: str = Heade "tag": coc_account_data["tag"], "name": coc_account_data["name"], "townHallLevel": coc_account_data["townHallLevel"], - "clan_tag": coc_account_data.get("clan", {}).get("tag"), } } @@ -62,29 +61,29 @@ async def add_coc_account_with_verification(request: CocAccountRequest, authoriz token = authorization.split("Bearer ")[1] decoded_token = decode_jwt(token) user_id = decoded_token["sub"] - coc_tag = request.coc_tag + player_tag = request.player_tag player_token = request.player_token - if not re.match(r"^#?[A-Z0-9]{5,12}$", coc_tag): + if not re.match(r"^#?[A-Z0-9]{5,12}$", player_tag): raise HTTPException(status_code=400, detail="Invalid Clash of Clans tag format") - if not coc_tag.startswith("#"): - coc_tag = f"#{coc_tag}" + if not player_tag.startswith("#"): + player_tag = f"#{player_tag}" - if not await verify_coc_ownership(coc_tag, player_token): + if not await verify_coc_ownership(player_tag, player_token): raise HTTPException(status_code=403, detail="Invalid player token. Check your Clash of Clans account settings and try again.") # Fetch account details from the API - coc_account_data = await fetch_coc_account_data(coc_tag) + coc_account_data = await fetch_coc_account_data(player_tag) # Remove the link to the other user if it exists - old_account = await db_client.coc_accounts.find_one({"coc_tag": coc_tag}) + old_account = await db_client.coc_accounts.find_one({"player_tag": player_tag}) if old_account: old_user_id = old_account["user_id"] # Delete the old account link - await db_client.coc_accounts.delete_one({"coc_tag": coc_tag}) + await db_client.coc_accounts.delete_one({"player_tag": player_tag}) # Update the order index for the remaining accounts remaining_accounts = await db_client.coc_accounts.find({"user_id": old_user_id}).sort("order_index", 1).to_list( @@ -104,7 +103,7 @@ async def add_coc_account_with_verification(request: CocAccountRequest, authoriz await db_client.coc_accounts.insert_one({ "_id": generate_custom_id(int(user_id)), "user_id": user_id, - "coc_tag": coc_account_data["tag"], + "player_tag": coc_account_data["tag"], "order_index": order_index, "added_at": pend.now() }) @@ -115,7 +114,7 @@ async def add_coc_account_with_verification(request: CocAccountRequest, authoriz "account": { "tag": coc_account_data["tag"], "name": coc_account_data["name"], - "townHallLevel": coc_account_data["townHallLevel"] + "townHallLevel": coc_account_data["townHallLevel"], } } @@ -140,12 +139,12 @@ async def remove_coc_account(request: CocAccountRequest, authorization: str = He token = authorization.split("Bearer ")[1] decoded_token = decode_jwt(token) user_id = decoded_token["sub"] - coc_tag = request.coc_tag + player_tag = request.player_tag - if not coc_tag.startswith("#"): - coc_tag = f"#{coc_tag}" + if not player_tag.startswith("#"): + player_tag = f"#{player_tag}" - result = await db_client.coc_accounts.delete_one({"user_id": user_id, "coc_tag": coc_tag}) + result = await db_client.coc_accounts.delete_one({"user_id": user_id, "player_tag": player_tag}) if result.deleted_count == 0: raise HTTPException(status_code=404, detail="Clash of Clans account not found or not linked to your profile") @@ -164,13 +163,13 @@ async def remove_coc_account(request: CocAccountRequest, authorization: str = He @router.get("/users/check-coc-account", name="Check if a Clash of Clans account is linked to any user") -async def check_coc_account(coc_tag: str): +async def check_coc_account(player_tag: str): """Check if a Clash of Clans account is linked to any user.""" - if not coc_tag.startswith("#"): - coc_tag = f"#{coc_tag}" + if not player_tag.startswith("#"): + player_tag = f"#{player_tag}" - existing_account = await db_client.coc_accounts.find_one({"coc_tag": coc_tag}) + existing_account = await db_client.coc_accounts.find_one({"player_tag": player_tag}) if not existing_account: return {"linked": False, "message": "This Clash of Clans account is not linked to any user."} @@ -196,7 +195,7 @@ async def reorder_coc_accounts(request: dict, authorization: str = Header(None)) # Check if all the accounts provided are linked to the user user_accounts = await db_client.coc_accounts.find({"user_id": user_id}).to_list(length=None) - user_tags = {account["coc_tag"] for account in user_accounts} + user_tags = {account["player_tag"] for account in user_accounts} if not set(new_order).issubset(user_tags): raise HTTPException(status_code=400, detail="Invalid account tags provided") @@ -204,7 +203,7 @@ async def reorder_coc_accounts(request: dict, authorization: str = Header(None)) # Update the order index for each account for index, tag in enumerate(new_order): await db_client.coc_accounts.update_one( - {"user_id": user_id, "coc_tag": tag}, + {"user_id": user_id, "player_tag": tag}, {"$set": {"order_index": index}} ) From 2fab9d95d754a76f4591ee9a4f43629d44525c35 Mon Sep 17 00:00:00 2001 From: Destinea Date: Fri, 7 Mar 2025 08:15:38 +0100 Subject: [PATCH 047/174] fix: Modified model --- routers/v2/auth/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routers/v2/auth/models.py b/routers/v2/auth/models.py index 74a4aa18..1b31e334 100644 --- a/routers/v2/auth/models.py +++ b/routers/v2/auth/models.py @@ -2,7 +2,7 @@ class CocAccountRequest(BaseModel): - coc_tag: str + player_tag: str player_token: str = None class UserInfo(BaseModel): From 3357f4d302f78175b99ba6b7fea1af017fc07e7f Mon Sep 17 00:00:00 2001 From: Destinea Date: Sat, 8 Mar 2025 18:18:04 +0100 Subject: [PATCH 048/174] feat: full stats clan endpoint --- routers/v2/clan/endpoints.py | 41 ++++++++++++++++++++++++++++-------- routers/v2/clan/models.py | 6 ++++++ 2 files changed, 38 insertions(+), 9 deletions(-) create mode 100644 routers/v2/clan/models.py diff --git a/routers/v2/clan/endpoints.py b/routers/v2/clan/endpoints.py index eb7cca41..6447ca3e 100644 --- a/routers/v2/clan/endpoints.py +++ b/routers/v2/clan/endpoints.py @@ -1,18 +1,22 @@ +import asyncio +import aiohttp import pendulum as pend from collections import defaultdict from fastapi import HTTPException from fastapi import APIRouter, Query, Request + +from routers.v2.clan.models import ClanTagsRequest from utils.utils import fix_tag, remove_id_fields from utils.time import gen_season_date, gen_raid_date from utils.database import MongoClient as mongo from routers.v2.player.models import PlayerTagsRequest -router = APIRouter(prefix="/v2",tags=["Clan"], include_in_schema=True) +router = APIRouter(prefix="/v2", tags=["Clan"], include_in_schema=True) @router.get("/clan/{clan_tag}/ranking", - name="Get ranking of a clan") + name="Get ranking of a clan") async def clan_ranking(clan_tag: str, request: Request): clan_ranking = await mongo.clan_leaderboard_db.find_one({'tag': fix_tag(clan_tag)}) @@ -29,15 +33,15 @@ async def clan_ranking(clan_tag: str, request: Request): @router.get("/clan/{clan_tag}/board/totals") async def clan_board_totals(clan_tag: str, request: Request, body: PlayerTagsRequest): - if not body.player_tags: + if not body.clan_tags: raise HTTPException(status_code=400, detail="player_tags cannot be empty") - player_tags = [fix_tag(tag) for tag in body.player_tags] + player_tags = [fix_tag(tag) for tag in body.clan_tags] previous_season, season = gen_season_date(num_seasons=2) player_stats = await mongo.player_stats.find( {'tag': {'$in': player_tags}}, - {"tag" : 1, "capital_gold" : 1, "last_online_times" : 1} + {"tag": 1, "capital_gold": 1, "last_online_times": 1} ).to_list(length=None) clan_stats = await mongo.clan_stats.find_one({'tag': fix_tag(clan_tag)}) @@ -48,11 +52,11 @@ async def clan_board_totals(clan_tag: str, request: Request, body: PlayerTagsReq if clan_stats: for s in [season, previous_season]: for tag, data in clan_stats.get(s, {}).items(): - #i forget why, but it can be None sometimes, so fallover to zero if that happens + # i forget why, but it can be None sometimes, so fallover to zero if that happens clan_games_points += data.get('clan_games', 0) or 0 if clan_games_points != 0: - #if it is zero, likely means CG hasn't happened this season, so check the previous - #eventually add a real check + # if it is zero, likely means CG hasn't happened this season, so check the previous + # eventually add a real check break for tag, data in clan_stats.get(season, {}).items(): total_donated += data.get('donated', 0) @@ -99,7 +103,7 @@ async def clan_board_totals(clan_tag: str, request: Request, body: PlayerTagsReq "troops_donated": total_donated, "troops_received": total_received, "clan_capital_donated": donated_cc, - "activity" : { + "activity": { "per_day": avg_players, "last_48h": total_active_48h, "score": total_players @@ -107,5 +111,24 @@ async def clan_board_totals(clan_tag: str, request: Request, body: PlayerTagsReq } +@router.post("/clans/full-stats", name="Get full stats for a list of clans") +async def get_full_clan_stats(request: Request, body: ClanTagsRequest): + """Retrieve Clash of Clans account details for a list of clans.""" + + if not body.clan_tags: + raise HTTPException(status_code=400, detail="clan_tags cannot be empty") + + clan_tags = [fix_tag(tag) for tag in body.clan_tags] + + async def fetch_clan_data(session, tag): + url = f"https://proxy.clashk.ing/v1/clans/{tag.replace('#', '%23')}" + async with session.get(url) as response: + if response.status == 200: + return await response.json() + return None + + async with aiohttp.ClientSession() as session: + api_responses = await asyncio.gather(*(fetch_clan_data(session, tag) for tag in clan_tags)) + return {"items": remove_id_fields(api_responses)} diff --git a/routers/v2/clan/models.py b/routers/v2/clan/models.py new file mode 100644 index 00000000..1080813f --- /dev/null +++ b/routers/v2/clan/models.py @@ -0,0 +1,6 @@ +from typing import List +from pydantic import BaseModel + + +class ClanTagsRequest(BaseModel): + clan_tags: List[str] \ No newline at end of file From 7223a2c0e929535d63b5f3b0ca3c1118d6ec3a64 Mon Sep 17 00:00:00 2001 From: Destinea Date: Sat, 8 Mar 2025 18:28:01 +0100 Subject: [PATCH 049/174] fix: variables name --- routers/v2/clan/endpoints.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/routers/v2/clan/endpoints.py b/routers/v2/clan/endpoints.py index 6447ca3e..3947e853 100644 --- a/routers/v2/clan/endpoints.py +++ b/routers/v2/clan/endpoints.py @@ -33,10 +33,10 @@ async def clan_ranking(clan_tag: str, request: Request): @router.get("/clan/{clan_tag}/board/totals") async def clan_board_totals(clan_tag: str, request: Request, body: PlayerTagsRequest): - if not body.clan_tags: + if not body.player_tags: raise HTTPException(status_code=400, detail="player_tags cannot be empty") - player_tags = [fix_tag(tag) for tag in body.clan_tags] + player_tags = [fix_tag(tag) for tag in body.player_tags] previous_season, season = gen_season_date(num_seasons=2) player_stats = await mongo.player_stats.find( @@ -130,5 +130,4 @@ async def fetch_clan_data(session, tag): async with aiohttp.ClientSession() as session: api_responses = await asyncio.gather(*(fetch_clan_data(session, tag) for tag in clan_tags)) - return {"items": remove_id_fields(api_responses)} From 22f9f522eebfffd9b1f9f179d3d5197c78f16ca2 Mon Sep 17 00:00:00 2001 From: Destinea Date: Sat, 8 Mar 2025 18:39:01 +0100 Subject: [PATCH 050/174] chore: Changed runner --- .github/workflows/dev-image-builder.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dev-image-builder.yml b/.github/workflows/dev-image-builder.yml index 0e3a425a..b60fcd0f 100644 --- a/.github/workflows/dev-image-builder.yml +++ b/.github/workflows/dev-image-builder.yml @@ -12,7 +12,7 @@ on: jobs: build: - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 steps: - name: Checkout code From 7d713b76d43fcfeb6d0a3e1ea301fd11c8c25c02 Mon Sep 17 00:00:00 2001 From: MagicTheDev Date: Sun, 16 Mar 2025 21:23:03 -0500 Subject: [PATCH 051/174] feat: v2 endpoints --- routers/v1/internal.py | 8 +- routers/v1/tickets.py | 205 +++----- routers/v2/clan/endpoints.py | 23 +- routers/v2/link/endpoints.py | 28 ++ routers/v2/player/endpoints.py | 67 ++- routers/v2/search/endpoints.py | 97 ++++ routers/v2/war/endpoints.py | 310 ++++++++++++ templates/tickets.html | 883 +++++++++++++++------------------ utils/utils.py | 88 ++-- 9 files changed, 1012 insertions(+), 697 deletions(-) create mode 100644 routers/v2/link/endpoints.py create mode 100644 routers/v2/search/endpoints.py create mode 100644 routers/v2/war/endpoints.py diff --git a/routers/v1/internal.py b/routers/v1/internal.py index 41f831f7..ef9df8cd 100644 --- a/routers/v1/internal.py +++ b/routers/v1/internal.py @@ -10,7 +10,7 @@ from fastapi import Request, Response, HTTPException, Header from fastapi import APIRouter from typing import List -from utils.utils import fix_tag, redis, db_client, config, create_keys +from utils.utils import fix_tag, redis, db_client, config from expiring_dict import ExpiringDict @@ -26,12 +26,6 @@ async def fetch_image(url: str) -> bytes: return await response.read() -@router.post("/ck/generate-api-keys", include_in_schema=False) -async def generate_api_keys(emails: List[str], passwords: List[str], request: Request, response: Response): - ip = request.client.host - keys = await create_keys(emails=emails, passwords=passwords, ip=ip) - return {"keys" : keys} - @router.get("/v1/{url:path}", diff --git a/routers/v1/tickets.py b/routers/v1/tickets.py index 63969d3a..203c8c7b 100644 --- a/routers/v1/tickets.py +++ b/routers/v1/tickets.py @@ -13,13 +13,12 @@ from utils.utils import fix_tag, db_client, upload_to_cdn, config router = APIRouter(prefix="/ticketing", include_in_schema=False) - templates = Jinja2Templates(directory="templates") TOKEN = config.bot_token - BASE_URL = 'https://discord.com/api/v10' + async def get_roles(guild_id): url = f'{BASE_URL}/guilds/{guild_id}/roles' headers = { @@ -32,9 +31,10 @@ async def get_roles(guild_id): roles = await response.json() return roles else: - print(f"Failed to get roles: {response.status}") + print(f"DEBUG: Failed to get roles: {response.status}") return None + async def get_channels(guild_id): url = f'{BASE_URL}/guilds/{guild_id}/channels' headers = { @@ -47,15 +47,13 @@ async def get_channels(guild_id): channels = await response.json() return channels else: - print(f"Failed to get channels: {response.status}") + print(f"DEBUG: Failed to get channels: {response.status}") return None + async def fetch_emojis(guild_id): url = f"https://discord.com/api/v9/guilds/{guild_id}/emojis" - headers = { - "Authorization": f"Bot {TOKEN}" - } - + headers = {"Authorization": f"Bot {TOKEN}"} async with aiohttp.ClientSession() as session: async with session.get(url, headers=headers) as response: if response.status == 200: @@ -63,23 +61,20 @@ async def fetch_emojis(guild_id): else: response.raise_for_status() + def filter_categories(channels): return [channel for channel in channels if channel['type'] == 4] + def filter_text_and_threads(channels): return [channel for channel in channels if channel['type'] in {0, 11}] - @router.get("/") async def read_settings(request: Request, token: str): - # Sample data fetched from the database - - ticket_settings = await db_client.ticketing.find_one({"token" : token}) - + ticket_settings = await db_client.ticketing.find_one({"token": token}) embed_name = ticket_settings.get('embed_name') open_category = ticket_settings.get("open-category") - server_id = ticket_settings.get("server_id") channels = await get_channels(guild_id=server_id) @@ -87,94 +82,31 @@ async def read_settings(request: Request, token: str): text_channels = filter_text_and_threads(channels=channels) emojis = await fetch_emojis(guild_id=server_id) - roles = await get_roles(guild_id=server_id) server_embeds = await db_client.embeds.find({'server': server_id}, {'name': 1}).to_list(length=None) embeds = [e.get('name') for e in server_embeds] - categories = sorted([{"name" : c.get("name"), "id" : c.get("id")} for c in categories], key=lambda x : x.get("name")) - logs = sorted([{"name" : c.get("name"), "id" : c.get("id")} for c in text_channels], key=lambda x : x.get("name")) - roles = sorted([{"name" : c.get("name"), "id" : c.get("id")} for c in roles], key=lambda x : x.get("name")) - - components = ticket_settings.get("components") + categories = sorted([{"name": c.get("name"), "id": c.get("id")} for c in categories], key=lambda x: x.get("name")) + logs = sorted([{"name": c.get("name"), "id": c.get("id")} for c in text_channels], key=lambda x: x.get("name")) + roles = sorted([{"name": c.get("name"), "id": c.get("id")} for c in roles], key=lambda x: x.get("name")) + components = ticket_settings.get("components") or [] + print("DEBUG: Components from DB:", components) settings = {} for component in components: button_id = component.get("custom_id") - mid_settings = ticket_settings[f"{button_id}_settings"] + mid_settings = ticket_settings.get(f"{button_id}_settings", {}) questions = mid_settings.get("questions") or [] - for x in range(0, 5 - len(questions)): + for _ in range(5 - len(questions)): questions.append("") mid_settings["questions"] = questions - mid_settings["mod_role"] = mid_settings["mod_role"] or [] + mid_settings["mod_role"] = mid_settings.get("mod_role") or [] settings[f"{button_id}_settings"] = mid_settings - '''settings = { - "apply_1674374185_settings": { - "message": { - "image": {"url": "https://media.discordapp.net/attachments/1026337830831665174/1029880039463985193/p_footer_1.png?width=885&height=40", "height": 0, "width": 0}, - "thumbnail": { - "url": "https://images-ext-2.discordapp.net/external/IbXGJuIosR7-76EifGqlur-Bfn4UMQJ9sdg0Ga3YiQk/%3Fsize%3D1024/https/cdn.discordapp.com/icons/640280017770774549/a_7e2c4bfd30b5a4554bb1e3aea4e31b31.gif?width=461&height=461", - "height": 0, "width": 0}, - "color": 16711935, - "type": "rich", - "description": " Please be patient and we will review your application and respond to you as soon as possible.\n\n If you have any additional questions or information to provide, please send them in the chat.\n\n Provide a screenshot of your base.\n", - "title": "<:arcane_b_rules:1033782225625428139> Clan Application" - }, - "questions": [ - "Clan Type? (Competitive, FWA, Zen (Heroes Down, War Always), other)", - "How did you find us? (Discord, Reddit, etc.)", - "Did someone invite you? If so, Who?", - "", - "" - ], - "mod_role": ["999140213953671188"], - "private_thread": True, - "roles_to_add": [], - "roles_to_remove": [], - "apply_clans": None, - "account_apply": True, - "player_info": True, - "naming": "{emoji_status}ℂ𝕃𝔸ℕ│{account_th}│{user}", - "ping_staff": True, - "num_apply": 10, - "th_min": 2, - "no_ping_mod_role": None - }, - "apply_1674379970_settings": { - "message": { - "image": {"url": "https://media.discordapp.net/attachments/1026337830831665174/1029880039463985193/p_footer_1.png?width=885&height=40", "height": 0, "width": 0}, - "thumbnail": { - "url": "https://images-ext-2.discordapp.net/external/IbXGJuIosR7-76EifGqlur-Bfn4UMQJ9sdg0Ga3YiQk/%3Fsize%3D1024/https/cdn.discordapp.com/icons/640280017770774549/a_7e2c4bfd30b5a4554bb1e3aea4e31b31.gif?width=461&height=461", - "height": 0, "width": 0}, - "color": 16711935, - "type": "rich", - "description": " Please be patient and we will review your application and respond to you as soon as possible.\n\n If you have any additional questions or information to provide, please send them in the chat.", - "title": "<:arcane_b_rules:1033782225625428139> Staff Application" - }, - "questions": [ - "What are you applying for? (Moderation, Event Staff, Recruitment Staff, Base Building Staff)", - "What time zone are you in?", - "What is your experience with Discord?", - "Are you willing to read the guidelines if you're accepted?", - "How old are you?" - ], - "mod_role": ["1024028497129263106", "1065031422399762563"], - "private_thread": True, - "roles_to_add": None, - "roles_to_remove": None, - "apply_clans": None, - "account_apply": False, - "player_info": False, - "naming": "{emoji_status}𝕊𝕋𝔸𝔽𝔽│{user}" - }, - # Add other settings as necessary - }''' - return templates.TemplateResponse("tickets.html", { "request": request, - "name" : "recruit panel", + "name": "recruit panel", "embed_name": embed_name, "open_category": str(open_category), "log_channel_click": str(ticket_settings.get("ticket_button_click_log")), @@ -186,15 +118,15 @@ async def read_settings(request: Request, token: str): "roles": roles, "components": components, "settings": settings, - "emojis" : emojis, - "token" : token + "emojis": emojis, + "token": token }) + @router.post("/save-settings") async def save_settings(request: Request): data = await request.json() - ticket_settings = await db_client.ticketing.find_one({"token" : data.get("token")}) - + ticket_settings = await db_client.ticketing.find_one({"token": data.get("token")}) new_data = { "status_change_log": data.get("log_channel_status"), "ticket_button_click_log": data.get("log_channel_click"), @@ -213,48 +145,55 @@ async def save_settings(request: Request): for component in data.get("components"): questions = component.get('questions', []) questions = [q for q in questions if q] - button_name = component.get("label") - button_id = next((x for x in ticket_settings.get('components') if x.get('label') == button_name), None) - if button_id is None: - button_custom_id = f"{ticket_settings.get('name')}_{int(pend.now(tz=pend.UTC).timestamp())}" + comp_label = component.get("label") + comp_custom_id = component.get("custom_id", "") + # Update existing component if it has a valid custom_id + if comp_custom_id and not comp_custom_id.startswith("temp_"): + button = next((x for x in ticket_settings.get('components', []) if x.get('custom_id') == comp_custom_id), + None) + if button: + ids_we_need.append(comp_custom_id) + button["style"] = text_style_conversion.get(component.get("style")) + button["emoji"] = component.get("emoji") or {} + button["label"] = comp_label + new_components.append(button) + new_data[f"{comp_custom_id}_settings"] = ticket_settings.get(f"{comp_custom_id}_settings", {}) + new_data[f"{comp_custom_id}_settings"].update({ + "questions": questions, + "mod_role": component.get("mod_role"), + "no_ping_mod_role": component.get("no_ping_mod_role"), + "private_thread": component.get("private_thread"), + "th_min": int(component.get("th_min")), + "num_apply": int(component.get("num_apply")), + "naming": component.get("naming") or '{ticket_count}-{user}', + "account_apply": component.get("account_apply"), + }) + else: + comp_custom_id = "" + # For new components or temporary IDs + if not comp_custom_id or comp_custom_id.startswith("temp_"): + button_custom_id = f"{ticket_settings.get('name')}_{str(uuid.uuid4())}" new_components.append({ - "type" : 2, - "style" : text_style_conversion.get(component.get("style")), - "emoji" : component.get("emoji") or {}, - "label" : component.get("label"), - "disabled" : False, - "custom_id" : button_custom_id + "type": 2, + "style": text_style_conversion.get(component.get("style")), + "emoji": component.get("emoji") or {}, + "label": comp_label, + "disabled": False, + "custom_id": button_custom_id }) new_data[f"{button_custom_id}_settings"] = { - "message" : None, - "questions" : questions, - "mod_role" : component.get("mod_role"), - "no_ping_mod_role" : component.get("no_ping_mod_role"), - "private_thread" : component.get("private_thread"), - "th_min" : int(component.get("th_min")), - "num_apply" : int(component.get("num_apply")), - "naming" : component.get("naming") or '{ticket_count}-{user}', - "account_apply" : component.get("account_apply"), + "message": None, + "questions": questions, + "mod_role": component.get("mod_role"), + "no_ping_mod_role": component.get("no_ping_mod_role"), + "private_thread": component.get("private_thread"), + "th_min": int(component.get("th_min")), + "num_apply": int(component.get("num_apply")), + "naming": component.get("naming") or '{ticket_count}-{user}', + "account_apply": component.get("account_apply"), } - else: - #UPDATE EXISTING - ids_we_need.append(button_id.get("custom_id")) - button_id["style"] = text_style_conversion.get(component.get("style")) - button_id["emoji"] = component.get("emoji") or {} - button_id["label"] = component.get("label") - new_components.append(button_id) - - new_data[f"{button_id.get('custom_id')}_settings"] = ticket_settings[f"{button_id.get('custom_id')}_settings"] - new_data[f"{button_id.get('custom_id')}_settings"]["questions"] = questions - new_data[f"{button_id.get('custom_id')}_settings"]["mod_role"] = component.get("mod_role") - new_data[f"{button_id.get('custom_id')}_settings"]["no_ping_mod_role"] = component.get("no_ping_mod_role") - new_data[f"{button_id.get('custom_id')}_settings"]["private_thread"] = component.get("private_thread") - new_data[f"{button_id.get('custom_id')}_settings"]["th_min"] = int(component.get("th_min")) - new_data[f"{button_id.get('custom_id')}_settings"]["num_apply"] = int(component.get("num_apply")) - new_data[f"{button_id.get('custom_id')}_settings"]["naming"] = component.get("naming") or '{ticket_count}-{user}' - new_data[f"{button_id.get('custom_id')}_settings"]["account_apply"] = component.get("account_apply") - - for old_component in ticket_settings.get("components"): + # Remove settings for components that were deleted + for old_component in ticket_settings.get("components", []): button_id = old_component.get("custom_id") if button_id not in ids_we_need: await db_client.ticketing.update_one( @@ -262,18 +201,16 @@ async def save_settings(request: Request): {'$unset': {f"{button_id}_settings": {}}}, ) new_data["components"] = new_components - await db_client.ticketing.update_one({"token" : data.get("token")}, {"$set": new_data}) + print("DEBUG: New data being saved:", new_data) + await db_client.ticketing.update_one({"token": data.get("token")}, {"$set": new_data}) return {"message": "Settings saved successfully"} @router.get("/open/json/{channel_id}") async def open_ticket_json(channel_id: int, request: Request): - - open_ticket = await db_client.open_tickets.find_one({"channel" : channel_id}, {"_id" : 0}) - + open_ticket = await db_client.open_tickets.find_one({"channel": channel_id}, {"_id": 0}) if open_ticket: for key in ["user", "channel", "thread", "server"]: if key in open_ticket: open_ticket[key] = str(open_ticket[key]) - - return open_ticket + return open_ticket \ No newline at end of file diff --git a/routers/v2/clan/endpoints.py b/routers/v2/clan/endpoints.py index eb7cca41..6cc58e76 100644 --- a/routers/v2/clan/endpoints.py +++ b/routers/v2/clan/endpoints.py @@ -24,7 +24,7 @@ async def clan_ranking(clan_tag: str, request: Request): "local_rank": None } - return clan_ranking or fallback + return remove_id_fields(clan_ranking) or fallback @router.get("/clan/{clan_tag}/board/totals") @@ -107,5 +107,26 @@ async def clan_board_totals(clan_tag: str, request: Request, body: PlayerTagsReq } +@router.get("/clan/{clan_tag}/donations/{season}", + name="Get donations for a clan's members in a specific season") +async def clan_donations(clan_tag: str, season: str, request: Request): + clan_stats = await mongo.clan_stats.find_one({'tag': fix_tag(clan_tag)}, projection={'_id': 0, f'{season}': 1}) + clan_season_donations = clan_stats.get(season, {}) + + items = [] + for tag, data in clan_season_donations.items(): + items.append({ + "tag" : tag, + "donated" : data.get('donated', 0), + "received" : data.get('received', 0) + }) + return {"items": items} + + + + + + + diff --git a/routers/v2/link/endpoints.py b/routers/v2/link/endpoints.py new file mode 100644 index 00000000..25fc9122 --- /dev/null +++ b/routers/v2/link/endpoints.py @@ -0,0 +1,28 @@ + +import pendulum as pend +from fastapi import HTTPException +from fastapi import APIRouter, Query, Request +from typing import Annotated +from utils.utils import fix_tag, remove_id_fields, check_authentication +from utils.database import MongoClient as mongo + + +router = APIRouter(prefix="/v2",tags=["Links"], include_in_schema=True) + + + + + +@router.get("/link/server/{server_id}/clan/list", + name="Basic list of clans linked to a server") +@check_authentication +async def server_clans_list(server_id: int, request: Request): + result = await mongo.clan_db.find({'server': server_id}, {"name" : 1, "tag" : 1}).to_list(length=None) + return remove_id_fields({"items" : result}) + + + + + + + diff --git a/routers/v2/player/endpoints.py b/routers/v2/player/endpoints.py index 9ebb409e..a8dc53a0 100644 --- a/routers/v2/player/endpoints.py +++ b/routers/v2/player/endpoints.py @@ -2,7 +2,8 @@ import pendulum as pend from fastapi import HTTPException from fastapi import APIRouter, Query, Request -from utils.utils import fix_tag, remove_id_fields + +from utils.utils import fix_tag, remove_id_fields, bulk_requests from utils.database import MongoClient as mongo from routers.v2.player.models import PlayerTagsRequest @@ -12,9 +13,6 @@ @router.post("/players/location", name="Get locations for a list of players") async def player_location_list(request: Request, body: PlayerTagsRequest): - if not body.player_tags: - raise HTTPException(status_code=400, detail="player_tags cannot be empty") - player_tags = [fix_tag(tag) for tag in body.player_tags] location_info = await mongo.leaderboard_db.find( {'tag': {'$in': player_tags}}, @@ -24,5 +22,66 @@ async def player_location_list(request: Request, body: PlayerTagsRequest): return {"items": remove_id_fields(location_info)} +@router.post("/players/sorted/{attribute}", + name="Get players sorted by an attribute") +async def player_sorted(attribute: str, request: Request, body: PlayerTagsRequest): + urls = [f"players/{fix_tag(t).replace('#', '%23')}" for t in body.player_tags] + player_responses = await bulk_requests(urls=urls) + + def fetch_attribute(data: dict, attr: str): + """ + Fetches a nested attribute from a dictionary using dot notation. + + Supports: + - Standard dictionary lookups (e.g., "name" -> data["name"]) + - Nested dictionary lookups (e.g., "league.name" -> data["league"]["name"]) + - List item lookups (e.g., "achievements[name=test].value" -> gets "value" from the achievement where name="test") + + :param data: The dictionary to fetch the attribute from. + :param attr: The attribute path in dot notation. + :return: The fetched value or None if not found. + """ + + if attr == "cumulative_heroes": + return sum([h.get("level") for h in data.get("heroes", []) if h.get("village") == "home"]) + + keys = attr.split(".") + for i, key in enumerate(keys): + # Handle list lookup pattern: "achievements[name=test]" + if "[" in key and "]" in key: + list_key, condition = key[:-1].split("[", 1) # Extract list name and condition + if "=" in condition: + cond_key, cond_value = condition.split("=", 1) + if list_key in data and isinstance(data[list_key], list): + for item in data[list_key]: + if isinstance(item, dict) and item.get(cond_key) == cond_value: + data = item # Move into the matched dictionary + break + else: + return None # No matching item found + else: + return None + else: + return None # Invalid format + else: + data = data.get(key, {}) if i < len(keys) - 1 else data.get(key) # Move deeper into dict + + if data is None: + return None # Key not found + + return data + + new_data = [ + { + "name" : p.get("name"), + "tag" : p.get("tag"), + "value" : fetch_attribute(data=p, attr=attribute), + "clan" : p.get("clan", {}) + } + for p in player_responses + ] + + return {"items": sorted(new_data, key=lambda x: (x["value"] is not None, x["value"]), reverse=True)} + diff --git a/routers/v2/search/endpoints.py b/routers/v2/search/endpoints.py new file mode 100644 index 00000000..a9673530 --- /dev/null +++ b/routers/v2/search/endpoints.py @@ -0,0 +1,97 @@ +import operator + +import coc +import pendulum as pend +from collections import defaultdict +from fastapi import HTTPException +from fastapi import APIRouter, Query, Request, Depends +from utils.utils import fix_tag, remove_id_fields, coc_client +from utils.time import gen_season_date, gen_raid_date +from utils.database import MongoClient as mongo +from routers.v2.player.models import PlayerTagsRequest + +router = APIRouter(prefix="/v2",tags=["Search"], include_in_schema=True) + + + +@router.get("/search/clan/{query}", + name="Search for a clan by name or tag") +async def war_previous( + query: str, + request: Request = Request, + user_id: int = 0, + guild_id: int = 0, +): + + if not query: + recent_tags = [] + bookmarked = [] + if user_id: + result = await mongo.user_settings.find_one( + {"discord_user": user_id}, + {"search.clan": 1, "_id": 0} + ) + recent_tags = result.get("search", {}).get("clan", {}).get("recent", []) + bookmarked_tags = result.get("search", {}).get("clan", {}).get("bookmarked", []) + + + + if ctx.guild is None: + last_record = await self.bot.command_stats.find_one( + {'$and': [{'user': ctx.user.id}, {'server': {'$ne': None}}]}, sort=[('time', -1)] + ) + guild_id = 0 + if last_record: + guild_id = last_record.get('server') + else: + guild_id = ctx.guild.id + + """ + for an empty query return: + - 5 most recent queries + - up to 20 bookmarks + """ + + + clan_list = [] + if query == '': + pipeline = [ + {'$match': {'server': guild_id}}, + {'$sort': {'name': 1}}, + {'$limit': 25}, + ] + else: + pipeline = [ + { + '$search': { + 'index': 'clan_name', + 'autocomplete': { + 'query': query, + 'path': 'name', + }, + } + }, + {'$match': {'server': guild_id}}, + ] + results = await mongo.clan_db.aggregate(pipeline=pipeline).to_list(length=None) + for document in results: + clan_list.append(f'{document.get("name")} | {document.get("tag")}') + + if clan_list == [] and len(query) >= 3: + clan = None + if coc.utils.is_valid_tag(query): + try: + clan = await coc_client.get_clan(tag=query) + except: + pass + if clan is None: + results = await coc_client.search_clans(name=query, limit=10) + for clan in results: + league = str(clan.war_league).replace('League ', '') + clan_list.append(f'{clan.name} | {clan.member_count}/50 | LV{clan.level} | {league} | {clan.tag}') + else: + clan_list.append(f'{clan.name} | {clan.tag}') + return clan_list + return clan_list[:25] + + diff --git a/routers/v2/war/endpoints.py b/routers/v2/war/endpoints.py new file mode 100644 index 00000000..bf9669e3 --- /dev/null +++ b/routers/v2/war/endpoints.py @@ -0,0 +1,310 @@ +import operator + +import coc +import pendulum as pend +from collections import defaultdict +from fastapi import HTTPException +from fastapi import APIRouter, Query, Request, Depends +from utils.utils import fix_tag, remove_id_fields +from utils.time import gen_season_date, gen_raid_date +from utils.database import MongoClient as mongo +from routers.v2.player.models import PlayerTagsRequest + +router = APIRouter(prefix="/v2",tags=["War"], include_in_schema=True) + + + +@router.get("/war/{clan_tag}/previous", + tags=["War Endpoints"], + name="Previous Wars for a clan") +async def war_previous( + clan_tag: str, + request: Request = Request, + timestamp_start: int = 0, + timestamp_end: int = 9999999999, + include_cwl: bool = False, + limit: int = 50, +): + clan_tag = fix_tag(clan_tag) + START = pend.from_timestamp(timestamp_start, tz=pend.UTC).strftime('%Y%m%dT%H%M%S.000Z') + END = pend.from_timestamp(timestamp_end, tz=pend.UTC).strftime('%Y%m%dT%H%M%S.000Z') + + query = { + "$and": [ + {"$or": [{"data.clan.tag": clan_tag}, {"data.opponent.tag": clan_tag}]}, + {"data.preparationStartTime": {"$gte": START}}, + {"data.preparationStartTime": {"$lte": END}} + ] + } + + if not include_cwl: + query["$and"].append({"data.season": None}) + + full_wars = await mongo.clan_wars.find(query).sort("data.endTime", -1).limit(limit).to_list(length=None) + + #early on we had some duplicate wars, so just filter them out + found_ids = set() + new_wars = [] + for war in full_wars: + id = war.get("data").get("preparationStartTime") + if id in found_ids: + continue + war.pop("_response_retry", None) + new_wars.append(war.get("data")) + found_ids.add(id) + + return remove_id_fields({"items" : new_wars}) + + +@router.get("/cwl/{clan_tag}/ranking-history", name="CWL ranking history for a clan") +async def cwl_ranking_history(clan_tag: str, request: Request): + clan_tag = fix_tag(clan_tag) + + # Fetch all CWL group documents containing the clan + results = await mongo.cwl_groups.find({"data.clans.tag": clan_tag}, {"data.clans" : 0}).to_list(length=None) + if not results: + raise HTTPException(status_code=404, detail="No CWL Data Found") + + # Get league changes for the clan + clan_data = await mongo.basic_clan.find_one({"tag": clan_tag}, {"changes.clanWarLeague": 1}) + cwl_changes = clan_data.get("changes", {}).get("clanWarLeague", {}) + + # Collect all war tags across all CWL results (across all seasons) + all_war_tags = set() + for cwl_result in results: + rounds = cwl_result["data"].get("rounds", []) + for rnd in rounds: + for tag in rnd.get("warTags", []): + if tag: + all_war_tags.add(tag) + + # Fetch all war documents in one go using the union of war tags + if all_war_tags: + matching_wars_data = await mongo.clan_wars.find({ + "data.tag": {"$in": list(all_war_tags)} + }, + {"data.clan.members" : 0, "data.opponent.members" : 0} + ).to_list(length=None) + # Build a lookup dictionary keyed by war tag + war_lookup = {w["data"]["tag"]: w["data"] for w in matching_wars_data} + else: + war_lookup = {} + + ranking_results = [] + for cwl_result in results: + season = cwl_result["data"].get("season") + rounds = cwl_result["data"].get("rounds", []) + + # Replace each war tag with the corresponding war data, + # but only include wars that match the current season. + for rnd in rounds: + rnd["warTags"] = [ + war_lookup.get(tag) + for tag in rnd.get("warTags", []) + if war_lookup.get(tag) and war_lookup.get(tag).get("season") == season + ] + + cwl_data = cwl_result["data"] + cwl_data["rounds"] = rounds + ranking = ranking_create(data=cwl_data) + + # Get the ranking for our clan tag along with its index (place) + ranking_data = next( + ( + {'rank': idx, **item} + for idx, item in enumerate(ranking, start=1) + if item["tag"] == clan_tag + ), + None + ) + if ranking_data is None: + continue + + # Calculate season offset and check league changes + season_offset = pend.date( + year=int(season[:4]), + month=int(season[-2:]), + day=1 + ).subtract(months=1).strftime('%Y-%m') + if season_offset not in cwl_changes: + continue + + league = cwl_changes[season_offset].get("league") + ranking_results.append({"season": season, "league": league, **ranking_data}) + + return {"items": sorted(ranking_results, key=lambda x: x["season"], reverse=True)} + + +@router.get("/cwl/league-thresholds", name="Promo and demotion thresholds for CWL leagues") +async def cwl_league_thresholds(request: Request): + return { + "items": [ + { + "id": 48000001, + "name": "Bronze League III", + "promo" : 3, + "demote" : 9 + }, + { + "id": 48000002, + "name": "Bronze League II", + "promo" : 3, + "demote" : 8 + }, + { + "id": 48000003, + "name": "Bronze League I", + "promo" : 3, + "demote" : 8 + }, + { + "id": 48000004, + "name": "Silver League III", + "promo" : 2, + "demote" : 8 + }, + { + "id": 48000005, + "name": "Silver League II", + "promo" : 2, + "demote" : 7 + }, + { + "id": 48000006, + "name": "Silver League I", + "promo" : 2, + "demote" : 7 + }, + { + "id": 48000007, + "name": "Gold League III", + "promo" : 2, + "demote" : 7 + }, + { + "id": 48000008, + "name": "Gold League II", + "promo" : 2, + "demote" : 7 + }, + { + "id": 48000009, + "name": "Gold League I", + "promo" : 2, + "demote" : 7 + }, + { + "id": 48000010, + "name": "Crystal League III", + "promo" : 2, + "demote" : 7 + }, + { + "id": 48000011, + "name": "Crystal League II", + "promo" : 2, + "demote" : 7 + }, + { + "id": 48000012, + "name": "Crystal League I", + "promo" : 1, + "demote" : 7 + }, + { + "id": 48000013, + "name": "Master League III", + "promo" : 1, + "demote" : 7 + }, + { + "id": 48000014, + "name": "Master League II", + "promo" : 1, + "demote" : 7 + }, + { + "id": 48000015, + "name": "Master League I", + "promo" : 1, + "demote" : 7 + }, + { + "id": 48000016, + "name": "Champion League III", + "promo" : 1, + "demote" : 7 + }, + { + "id": 48000017, + "name": "Champion League II", + "promo" : 1, + "demote" : 7 + }, + { + "id": 48000018, + "name": "Champion League I", + "promo" : 0, + "demote" : 6 + } + ] + } + +def ranking_create(data: dict): + # Initialize accumulators + star_dict = defaultdict(int) + dest_dict = defaultdict(int) + tag_to_name = {} + rounds_won = defaultdict(int) + rounds_lost = defaultdict(int) + rounds_tied = defaultdict(int) + + for rnd in data.get("rounds", []): + for war in rnd.get("warTags", []): + if war is None: + continue + + war_obj = coc.ClanWar(data=war, client=None) + status = str(war_obj.status) + if status == "won": + rounds_won[war_obj.clan.tag] += 1 + rounds_lost[war_obj.opponent.tag] += 1 + star_dict[war_obj.clan.tag] += 10 + elif status == "lost": + rounds_won[war_obj.opponent.tag] += 1 + rounds_lost[war_obj.clan.tag] += 1 + star_dict[war_obj.opponent.tag] += 10 + else: + rounds_tied[war_obj.clan.tag] += 1 + rounds_tied[war_obj.opponent.tag] += 1 + + tag_to_name[war_obj.clan.tag] = war_obj.clan.name + tag_to_name[war_obj.opponent.tag] = war_obj.opponent.name + + for clan in [war_obj.clan, war_obj.opponent]: + star_dict[clan.tag] += clan.stars + dest_dict[clan.tag] += clan.destruction + + # Create a list of stats per clan for sorting + star_list = [] + for tag, stars in star_dict.items(): + destruction = dest_dict[tag] + name = tag_to_name.get(tag, "") + star_list.append([name, tag, stars, destruction]) + + # Sort descending by stars then destruction + sorted_list = sorted(star_list, key=lambda x: (x[2], x[3]), reverse=True) + return [ + { + "name": x[0], + "tag": x[1], + "stars": x[2], + "destruction": x[3], + "rounds": { + "won": rounds_won.get(x[1], 0), + "tied": rounds_tied.get(x[1], 0), + "lost": rounds_lost.get(x[1], 0) + } + } + for x in sorted_list + ] \ No newline at end of file diff --git a/templates/tickets.html b/templates/tickets.html index d32f29a7..fe2d3979 100644 --- a/templates/tickets.html +++ b/templates/tickets.html @@ -1,514 +1,407 @@ - - - - - - - Ticketing Settings - - - - - - + + + Ticketing Settings + + + + + + + - -
-

Ticketing Settings

- + +
+

Ticketing Settings

+ +
- -
- - -
- - -
- - -
- - -
- - -
-
- - -
-
- - -
- - -
- -
- -
- -
- -
-
+ +
+ + +
+ +
+ + +
+ +
+ + +
+
+ + +
+
+ + +
+ +
+ +
+ +
+
+ +
+
-
+
- + - + \ No newline at end of file diff --git a/utils/utils.py b/utils/utils.py index 05c4e52f..92da899c 100644 --- a/utils/utils.py +++ b/utils/utils.py @@ -11,11 +11,13 @@ import io import asyncio import aiohttp +import orjson from fastapi import HTTPException from base64 import b64decode as base64_b64decode from json import loads as json_loads from slowapi import Limiter from slowapi.util import get_ipaddr + from .config import Config from collections import deque from datetime import datetime @@ -41,6 +43,17 @@ def dynamic_limit(key: str): redis = aioredis.Redis(host=config.redis_ip, port=6379, db=1, password=config.redis_pw, retry_on_timeout=True, max_connections=25, retry_on_error=[redis.ConnectionError]) +coc_client = coc.Client( + base_url='https://proxy.clashk.ing/v1', + key_count=10, + key_names='test', + throttle_limit=500, + cache_max_size=10_000, + load_game_data=coc.LoadGameData(default=False), + raw_attribute=True, + stats_max_size=10_000, +) +coc_client.login_with_keys('') class DBClient(): def __init__(self): @@ -175,62 +188,6 @@ async def token_verify(server_id: int, api_token: str, only_admin: bool = False) raise HTTPException(status_code=403, detail="Invalid API token or cannot access this resource") -async def get_keys(emails: list, passwords: list, key_names: str, key_count: int, ip: str): - total_keys = [] - for count, email in enumerate(emails): - await asyncio.sleep(1.5) - _keys = [] - async with aiohttp.ClientSession() as session: - password = passwords[count] - body = {"email": email, "password": password} - resp = await session.post("https://developer.clashofclans.com/api/login", json=body) - resp_paylaod = await resp.json() - - resp = await session.post("https://developer.clashofclans.com/api/apikey/list") - keys = (await resp.json()).get("keys", []) - _keys.extend(key["key"] for key in keys if key["name"] == key_names and ip in key["cidrRanges"]) - - for key in (k for k in keys if ip not in k["cidrRanges"]): - await session.post("https://developer.clashofclans.com/api/apikey/revoke", json={"id": key["id"]}) - - print(len(_keys)) - while len(_keys) < key_count: - data = { - "name": key_names, - "description": "Created on {}".format(datetime.now().strftime("%c")), - "cidrRanges": [ip], - "scopes": ["clash"], - } - hold = True - tries = 1 - while hold: - try: - resp = await session.post("https://developer.clashofclans.com/api/apikey/create", json=data) - key = await resp.json() - except Exception: - key = {} - if key.get("key") is None: - await asyncio.sleep(tries * 0.5) - tries += 1 - if tries > 2: - print(tries - 1, "tries") - else: - hold = False - - _keys.append(key["key"]["key"]) - - await session.close() - for k in _keys: - total_keys.append(k) - - print(len(total_keys), "total keys") - return (total_keys) - - -async def create_keys(emails: list, passwords: list, ip: str): - keys = await get_keys(emails=emails, passwords=passwords, key_names="test", key_count=10, ip=ip) - return keys - leagues = ["Legend League", "Titan League I", "Titan League II", "Titan League III", "Champion League I", "Champion League II", "Champion League III", @@ -357,3 +314,22 @@ def utc_to_local(utc_time: datetime, timezone: str = "Europe/Paris") -> str: utc_dt = utc_time.replace(tzinfo=pytz.utc) local_dt = utc_dt.astimezone(local_tz) return local_dt.strftime("%Y-%m-%d %H:%M") # Format for display + + +async def bulk_requests(urls: list[str]): + + async def fetch_function(session: aiohttp.ClientSession, url: str): + url = url.replace("#", '%23') + async with session.get(f"https://proxy.clashk.ing/v1/{url}") as response: + if response.status != 200: + return None + item_bytes = await response.read() + return orjson.loads(item_bytes) + + tasks = [] + async with aiohttp.ClientSession() as session: + for url in urls: + tasks.append(asyncio.create_task(fetch_function(session, url))) + results = await asyncio.gather(*tasks, return_exceptions=True) + + return [r for r in results if r is not None and not isinstance(r, Exception)] From f3477c4e2acf3287199926abaa33ea06c1073f84 Mon Sep 17 00:00:00 2001 From: Destinea Date: Mon, 17 Mar 2025 08:32:05 +0100 Subject: [PATCH 052/174] chore: Restored runner --- .github/workflows/dev-image-builder.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/dev-image-builder.yml b/.github/workflows/dev-image-builder.yml index b60fcd0f..0e3a425a 100644 --- a/.github/workflows/dev-image-builder.yml +++ b/.github/workflows/dev-image-builder.yml @@ -12,7 +12,7 @@ on: jobs: build: - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest steps: - name: Checkout code From a0e6dcb4f332a5a0dd373bc161ab23e9ed9095c9 Mon Sep 17 00:00:00 2001 From: MagicTheDev Date: Mon, 17 Mar 2025 06:16:17 -0500 Subject: [PATCH 053/174] feat: v2 endpoints --- main.py | 3 +- routers/v2/search/endpoints.py | 132 ++++++++++++++++++++------------- utils/utils.py | 3 +- 3 files changed, 85 insertions(+), 53 deletions(-) diff --git a/main.py b/main.py index b7537350..aeae444e 100644 --- a/main.py +++ b/main.py @@ -18,7 +18,7 @@ from fastapi_cache import FastAPICache from fastapi_cache.backends.inmemory import InMemoryBackend -from utils.utils import config +from utils.utils import config, coc_client logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) @@ -67,6 +67,7 @@ def include_routers(app, directory, recursive=False): @app.on_event("startup") async def startup_event(): FastAPICache.init(InMemoryBackend()) + await coc_client.login_with_tokens('') @app.get("/", include_in_schema=False, response_class=RedirectResponse) diff --git a/routers/v2/search/endpoints.py b/routers/v2/search/endpoints.py index a9673530..9cfa5cd0 100644 --- a/routers/v2/search/endpoints.py +++ b/routers/v2/search/endpoints.py @@ -16,35 +16,22 @@ @router.get("/search/clan/{query}", name="Search for a clan by name or tag") -async def war_previous( +async def search_clan( query: str, request: Request = Request, user_id: int = 0, guild_id: int = 0, ): - if not query: - recent_tags = [] - bookmarked = [] - if user_id: - result = await mongo.user_settings.find_one( - {"discord_user": user_id}, - {"search.clan": 1, "_id": 0} - ) - recent_tags = result.get("search", {}).get("clan", {}).get("recent", []) - bookmarked_tags = result.get("search", {}).get("clan", {}).get("bookmarked", []) - - - - if ctx.guild is None: - last_record = await self.bot.command_stats.find_one( - {'$and': [{'user': ctx.user.id}, {'server': {'$ne': None}}]}, sort=[('time', -1)] + recent_tags = [] + bookmarked_tags = [] + if user_id: + result = await mongo.user_settings.find_one( + {"discord_user": user_id}, + {"search.clan": 1, "_id": 0} ) - guild_id = 0 - if last_record: - guild_id = last_record.get('server') - else: - guild_id = ctx.guild.id + recent_tags = result.get("search", {}).get("clan", {}).get("recent", []) + bookmarked_tags = result.get("search", {}).get("clan", {}).get("bookmarked", []) """ for an empty query return: @@ -52,32 +39,63 @@ async def war_previous( - up to 20 bookmarks """ + guild_clans = [] + if guild_id: + if query == '': + pipeline = [ + {'$match': {'server': guild_id}}, + {'$sort': {'name': 1}}, + {'$limit': 25}, + ] + else: + pipeline = [ + { + '$search': { + 'index': 'clan_name', + 'autocomplete': { + 'query': query, + 'path': 'name', + }, + } + }, + {'$match': {'server': guild_id}}, + ] + results = await mongo.clan_db.aggregate(pipeline=pipeline).to_list(length=None) + for document in results: + guild_clans.append(document.get("tag")) + + all_tags = set(recent_tags + bookmarked_tags + guild_clans) + + local_search = await mongo.basic_clan.find( + {"tag": {"$in": list(all_tags)}}, + {"name": 1, "tag": 1, "members": 1, "level" : 1, "warLeague" : 1} + ).to_list(length=None) + + final_data = [] + for result in local_search: + final_data.append({ + "name" : result.get("name") or "Not Stored", + "tag" : result.get("tag"), + "memberCount" : result.get("members") or 0, + "level" : result.get("level") or 0, + "warLeague" : result.get("warLeague") or "Unranked" + }) + all_tags.remove(result.get("tag")) - clan_list = [] - if query == '': - pipeline = [ - {'$match': {'server': guild_id}}, - {'$sort': {'name': 1}}, - {'$limit': 25}, - ] - else: - pipeline = [ - { - '$search': { - 'index': 'clan_name', - 'autocomplete': { - 'query': query, - 'path': 'name', - }, - } - }, - {'$match': {'server': guild_id}}, - ] - results = await mongo.clan_db.aggregate(pipeline=pipeline).to_list(length=None) - for document in results: - clan_list.append(f'{document.get("name")} | {document.get("tag")}') + for tag in all_tags: + try: + clan = await coc_client.get_clan(tag=tag) + except Exception: + continue + final_data.append({ + "name" : clan.name, + "tag" : clan.tag, + "memberCount" : clan.member_count, + "level" : clan.level, + "warLeague" : clan.war_league.name + }) - if clan_list == [] and len(query) >= 3: + if not final_data and len(query) >= 3: clan = None if coc.utils.is_valid_tag(query): try: @@ -87,11 +105,23 @@ async def war_previous( if clan is None: results = await coc_client.search_clans(name=query, limit=10) for clan in results: - league = str(clan.war_league).replace('League ', '') - clan_list.append(f'{clan.name} | {clan.member_count}/50 | LV{clan.level} | {league} | {clan.tag}') + final_data.append({ + "name": clan.name, + "tag": clan.tag, + "memberCount": clan.member_count, + "level": clan.level, + "warLeague": clan.war_league.name + }) + '''league = str(clan.war_league).replace('League ', '') + clan_list.append(f'{clan.name} | {clan.member_count}/50 | LV{clan.level} | {league} | {clan.tag}')''' else: - clan_list.append(f'{clan.name} | {clan.tag}') - return clan_list - return clan_list[:25] + final_data.append({ + "name": clan.name, + "tag": clan.tag, + "memberCount": clan.member_count, + "level": clan.level, + "warLeague": clan.war_league.name + }) + return final_data diff --git a/utils/utils.py b/utils/utils.py index 92da899c..062d9007 100644 --- a/utils/utils.py +++ b/utils/utils.py @@ -53,7 +53,8 @@ def dynamic_limit(key: str): raw_attribute=True, stats_max_size=10_000, ) -coc_client.login_with_keys('') + + class DBClient(): def __init__(self): From 57990f08b5cfced7e7e0bc9fb7c1c5c1d58461aa Mon Sep 17 00:00:00 2001 From: MagicTheDev Date: Mon, 17 Mar 2025 06:29:28 -0500 Subject: [PATCH 054/174] feat: v2 endpoints --- routers/v2/search/endpoints.py | 59 ++++++++++++++++++++++++++++++---- 1 file changed, 53 insertions(+), 6 deletions(-) diff --git a/routers/v2/search/endpoints.py b/routers/v2/search/endpoints.py index 9cfa5cd0..9aa49715 100644 --- a/routers/v2/search/endpoints.py +++ b/routers/v2/search/endpoints.py @@ -73,12 +73,20 @@ async def search_clan( final_data = [] for result in local_search: + if result.get("tag") in bookmarked_tags: + find_type = "bookmarked" + elif result.get("tag") in recent_tags: + find_type = "recent_search" + else: + find_type = "guild_search" + final_data.append({ "name" : result.get("name") or "Not Stored", "tag" : result.get("tag"), "memberCount" : result.get("members") or 0, "level" : result.get("level") or 0, - "warLeague" : result.get("warLeague") or "Unranked" + "warLeague" : result.get("warLeague") or "Unranked", + "type" : find_type }) all_tags.remove(result.get("tag")) @@ -87,15 +95,29 @@ async def search_clan( clan = await coc_client.get_clan(tag=tag) except Exception: continue + if tag in bookmarked_tags: + find_type = "bookmarked" + elif tag in recent_tags: + find_type = "recent_search" + else: + find_type = "guild_search" final_data.append({ "name" : clan.name, "tag" : clan.tag, "memberCount" : clan.member_count, "level" : clan.level, - "warLeague" : clan.war_league.name + "warLeague" : clan.war_league.name, + "type" : find_type }) - if not final_data and len(query) >= 3: + final_data = [ + data for data in final_data + if query.lower() in data.get("name").lower() or + query.lower() == data.get("tag").lower() + ] + tags_found = {d.get("tag") for d in final_data} + + if len(final_data) < 25 and len(query) >= 3: clan = None if coc.utils.is_valid_tag(query): try: @@ -105,12 +127,15 @@ async def search_clan( if clan is None: results = await coc_client.search_clans(name=query, limit=10) for clan in results: + if clan.tag in tags_found: + continue final_data.append({ "name": clan.name, "tag": clan.tag, "memberCount": clan.member_count, "level": clan.level, - "warLeague": clan.war_league.name + "warLeague": clan.war_league.name, + "type": "search_result" }) '''league = str(clan.war_league).replace('League ', '') clan_list.append(f'{clan.name} | {clan.member_count}/50 | LV{clan.level} | {league} | {clan.tag}')''' @@ -120,8 +145,30 @@ async def search_clan( "tag": clan.tag, "memberCount": clan.member_count, "level": clan.level, - "warLeague": clan.war_league.name + "warLeague": clan.war_league.name, + "type": "search_result" }) - return final_data + return {"items" : final_data} + +@router.post("/search/bookmark/clan/{user_id}/{tag}", + name="Search for a clan by name or tag") +async def search_clan( + user_id: int, + tag: str, + request: Request = Request, +): + tag = fix_tag(tag) + # First, remove the tag if it exists + await mongo.user_settings.update_one( + {"discord_user": user_id}, + {"$pull": {"search.clan.bookmarked": tag}} + ) + + # Then, push the new tag to the front while keeping only the last 20 items + await mongo.user_settings.update_one( + {"discord_user": user_id}, + {"$push": {"search.clan.bookmarked": {"$each": [tag], "$position": 0, "$slice": 20}}} + ) + return {"success": True} From ab8ed85d6b5f5a3afa721fe18a8a08129b159de4 Mon Sep 17 00:00:00 2001 From: MagicTheDev Date: Mon, 17 Mar 2025 06:32:56 -0500 Subject: [PATCH 055/174] feat: v2 endpoints --- routers/v2/search/endpoints.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/routers/v2/search/endpoints.py b/routers/v2/search/endpoints.py index 9aa49715..7042d039 100644 --- a/routers/v2/search/endpoints.py +++ b/routers/v2/search/endpoints.py @@ -153,8 +153,8 @@ async def search_clan( @router.post("/search/bookmark/clan/{user_id}/{tag}", - name="Search for a clan by name or tag") -async def search_clan( + name="Add a bookmark for a clan for a user") +async def bookmark_clan( user_id: int, tag: str, request: Request = Request, From 771ed2c24ed8ace2190efdb738f654d9e53bcdeb Mon Sep 17 00:00:00 2001 From: Destinea Date: Wed, 26 Mar 2025 22:33:55 +0100 Subject: [PATCH 056/174] feat: legends stats --- routers/v2/player/endpoints.py | 40 ++++++++++++++- routers/v2/player/utils.py | 92 ++++++++++++++++++++++++++++++++++ 2 files changed, 130 insertions(+), 2 deletions(-) create mode 100644 routers/v2/player/utils.py diff --git a/routers/v2/player/endpoints.py b/routers/v2/player/endpoints.py index 2c184a8c..7c62828b 100644 --- a/routers/v2/player/endpoints.py +++ b/routers/v2/player/endpoints.py @@ -3,7 +3,10 @@ import aiohttp from fastapi import HTTPException from fastapi import APIRouter, Query, Request -from utils.utils import fix_tag, remove_id_fields +import pendulum + +from routers.v2.player.utils import get_legend_season_range, group_legends_by_season +from utils.utils import fix_tag, remove_id_fields, bulk_requests from utils.database import MongoClient as mongo from routers.v2.player.models import PlayerTagsRequest @@ -33,7 +36,7 @@ async def get_full_player_stats(request: Request, body: PlayerTagsRequest): players_info = await mongo.player_stats.find( {'tag': {'$in': player_tags}}, - {'_id': 0, 'tag' : 1, 'donations': 1, 'legends': 1, 'clan_games': 1, 'season_pass': 1, 'activity': 1, + {'_id': 0, 'tag': 1, 'donations': 1, 'legends': 1, 'clan_games': 1, 'season_pass': 1, 'activity': 1, 'last_online': 1, 'last_online_time': 1, 'attack_wins': 1, 'dark_elixir': 1, 'gold': 1, 'capital_gold': 1, 'season_trophies': 1, 'last_updated': 1} ).to_list(length=None) @@ -55,6 +58,39 @@ async def fetch_player_data(session, tag): player_data = mongo_data_dict.get(tag, {}) if api_data: player_data.update(api_data) + + # Process each day in the legends data to extract trophy deltas and counts + # Transform legends days into seasons + raw_legends = player_data.get("legends", {}) + + # Enrich each day with start/end trophies and per-day stats before grouping by season + for day, data in raw_legends.items(): + if not isinstance(data, dict): + continue + + new_attacks = data.get("new_attacks", []) + new_defenses = data.get("new_defenses", []) + + all_events = sorted(new_attacks + new_defenses, key=lambda x: x.get("time", 0)) + if all_events and "trophies" in all_events[-1]: + end_trophies = all_events[-1]["trophies"] + trophies_gained = sum(entry.get("change", 0) for entry in new_attacks) + trophies_lost = sum(entry.get("change", 0) for entry in new_defenses) + trophies_total = trophies_gained + trophies_lost + start_trophies = end_trophies - trophies_total + + data["start_trophies"] = start_trophies + data["end_trophies"] = end_trophies + data["trophies_gained_total"] = trophies_gained + data["trophies_lost_total"] = trophies_lost + data["trophies_total"] = trophies_total + data["total_attacks"] = len(new_attacks) + data["total_defenses"] = len(new_defenses) + + grouped_legends = group_legends_by_season(raw_legends) + player_data["legends_by_season"] = grouped_legends + player_data.pop("legends", None) + combined_results.append(player_data) return {"items": remove_id_fields(combined_results)} diff --git a/routers/v2/player/utils.py b/routers/v2/player/utils.py new file mode 100644 index 00000000..92c63541 --- /dev/null +++ b/routers/v2/player/utils.py @@ -0,0 +1,92 @@ +import pendulum + + +def get_legend_season_range(date: pendulum.DateTime) -> tuple[str, str]: + """Return the start and end of the Legend League season (YYYY-MM-DD) for a given date.""" + + # Step 1: Get last Monday of previous month + previous_month = date.subtract(months=1).end_of('month') + while previous_month.day_of_week != pendulum.MONDAY: + previous_month = previous_month.subtract(days=1) + season_start = previous_month + + # Step 2: Get last Monday of current month + current_month = date.end_of('month') + while current_month.day_of_week != pendulum.MONDAY: + current_month = current_month.subtract(days=1) + season_end = current_month.subtract(days=1) # The Sunday before the last Monday + + return season_start.to_date_string(), season_end.to_date_string() + + +def group_legends_by_season(legends: dict) -> dict: + """Group daily legends data into seasons with cumulative stats.""" + grouped = {} + + for day_str, day_data in legends.items(): + if not isinstance(day_data, dict): + continue # Skip non-date keys like "streak" + + try: + day = pendulum.parse(day_str) + season_start, season_end = get_legend_season_range(day) + except Exception: + continue + + season_key = season_start + + if season_key not in grouped: + grouped[season_key] = { + "season_start": season_start, + "season_end": season_end, + "trophies_gained_total": 0, + "trophies_lost_total": 0, + "trophies_net": 0, + "total_attacks": 0, + "total_defenses": 0, + "average_trophies_gained_per_attack": 0, + "average_trophies_lost_per_defense": 0, + "total_attacks_defenses_possible": 0, + "total_gained_lost_possible": 0, + "trophies_gained_ratio": 0, + "trophies_lost_ratio": 0, + "total_attacks_ratio": 0, + "total_defenses_ratio": 0, + "days": {} + } + + season = grouped[season_key] + + # Daily stats + gained = day_data.get("trophies_gained_total", 0) + lost = day_data.get("trophies_lost_total", 0) + total = day_data.get("trophies_total", 0) + attacks = day_data.get("total_attacks", 0) + defenses = day_data.get("total_defenses", 0) + + # Add daily data to season + season["days"][day_str] = day_data + + # Sum up cumulative stats + season["trophies_gained_total"] += gained + season["trophies_lost_total"] += lost + season["trophies_net"] += (gained - lost) + season["total_attacks"] += attacks + season["total_defenses"] += defenses + season["total_attacks_defenses_possible"] = len(season["days"]) * 8 + season["total_gained_lost_possible"] = season["total_attacks_defenses_possible"] * 40 + season["trophies_gained_ratio"] = round(season["trophies_gained_total"] / season["total_gained_lost_possible"], 2) + season["trophies_lost_ratio"] = round(season["trophies_lost_total"] / season["total_gained_lost_possible"], 2) + season["total_attacks_ratio"] = round(season["total_attacks"] / season["total_attacks_defenses_possible"], 2) + season["total_defenses_ratio"] = round(season["total_defenses"] / season["total_attacks_defenses_possible"], 2) + + # Calculate averages + for season in grouped.values(): + if season["total_attacks"] > 0: + season["average_trophies_gained_per_attack"] = round( + season["trophies_gained_total"] / season["total_attacks"], 2) + if season["total_defenses"] > 0: + season["average_trophies_lost_per_defense"] = round( + season["trophies_lost_total"] / season["total_defenses"], 2) + + return grouped From 4ce763008e6ac3deaac7fb5e6ae27f677cdf8958 Mon Sep 17 00:00:00 2001 From: Destinea Date: Wed, 26 Mar 2025 23:58:59 +0100 Subject: [PATCH 057/174] feat: season end trophies --- routers/v2/player/endpoints.py | 3 +- routers/v2/player/utils.py | 165 ++++++++++++++++++++++----------- 2 files changed, 114 insertions(+), 54 deletions(-) diff --git a/routers/v2/player/endpoints.py b/routers/v2/player/endpoints.py index 7c62828b..6a64ecfb 100644 --- a/routers/v2/player/endpoints.py +++ b/routers/v2/player/endpoints.py @@ -3,9 +3,8 @@ import aiohttp from fastapi import HTTPException from fastapi import APIRouter, Query, Request -import pendulum -from routers.v2.player.utils import get_legend_season_range, group_legends_by_season +from routers.v2.player.utils import group_legends_by_season from utils.utils import fix_tag, remove_id_fields, bulk_requests from utils.database import MongoClient as mongo from routers.v2.player.models import PlayerTagsRequest diff --git a/routers/v2/player/utils.py b/routers/v2/player/utils.py index 92c63541..af3d70c3 100644 --- a/routers/v2/player/utils.py +++ b/routers/v2/player/utils.py @@ -1,22 +1,29 @@ import pendulum -def get_legend_season_range(date: pendulum.DateTime) -> tuple[str, str]: - """Return the start and end of the Legend League season (YYYY-MM-DD) for a given date.""" +def get_legend_season_range(date: pendulum.DateTime) -> tuple[pendulum.DateTime, pendulum.DateTime]: + """Return the start and end of the Legend League season (Monday 5am UTC to Monday 5am UTC) for a given date.""" - # Step 1: Get last Monday of previous month - previous_month = date.subtract(months=1).end_of('month') - while previous_month.day_of_week != pendulum.MONDAY: - previous_month = previous_month.subtract(days=1) - season_start = previous_month + # Find the last Monday of the month at 5am UTC + last_monday_this_month = date.end_of("month") + while last_monday_this_month.day_of_week != pendulum.MONDAY: + last_monday_this_month = last_monday_this_month.subtract(days=1) + season_start = last_monday_this_month.replace(hour=0, minute=0, second=0, microsecond=0) - # Step 2: Get last Monday of current month - current_month = date.end_of('month') - while current_month.day_of_week != pendulum.MONDAY: - current_month = current_month.subtract(days=1) - season_end = current_month.subtract(days=1) # The Sunday before the last Monday + # If the date is before the last Monday of the month, it's part of the previous season + if date < season_start: + last_monday_previous_month = date.subtract(months=1).end_of("month") + while last_monday_previous_month.day_of_week != pendulum.MONDAY: + last_monday_previous_month = last_monday_previous_month.subtract(days=1) + season_start = last_monday_previous_month.replace(hour=0, minute=0, second=0, microsecond=0) - return season_start.to_date_string(), season_end.to_date_string() + # If the date is after the last Monday of the month, it's part of the next season + last_monday_next_month = season_start.add(months=1).end_of("month") + while last_monday_next_month.day_of_week != pendulum.MONDAY: + last_monday_next_month = last_monday_next_month.subtract(days=1) + season_end = last_monday_next_month.replace(hour=0, minute=0, second=0, microsecond=0).subtract(seconds=1) + + return season_start, season_end def group_legends_by_season(legends: dict) -> dict: @@ -33,60 +40,114 @@ def group_legends_by_season(legends: dict) -> dict: except Exception: continue - season_key = season_start + if day.to_date_string() == "2024-08-26": + print(season_start, season_end) + + season_key = season_start.to_date_string() if season_key not in grouped: grouped[season_key] = { - "season_start": season_start, - "season_end": season_end, - "trophies_gained_total": 0, - "trophies_lost_total": 0, - "trophies_net": 0, - "total_attacks": 0, - "total_defenses": 0, - "average_trophies_gained_per_attack": 0, - "average_trophies_lost_per_defense": 0, - "total_attacks_defenses_possible": 0, - "total_gained_lost_possible": 0, - "trophies_gained_ratio": 0, - "trophies_lost_ratio": 0, - "total_attacks_ratio": 0, - "total_defenses_ratio": 0, + "season_start": season_start.to_date_string(), + "season_end": season_end.to_date_string(), + "season_end_trophies": 0, + "season_trophies_gained_total": 0, + "season_trophies_lost_total": 0, + "season_trophies_net": 0, + "season_total_attacks": 0, + "season_total_defenses": 0, + "season_average_trophies_gained_per_attack": 0, + "season_average_trophies_lost_per_defense": 0, + "season_total_attacks_defenses_possible": 0, + "season_total_gained_lost_possible": 0, + "season_trophies_gained_ratio": 0, + "season_trophies_lost_ratio": 0, + "season_total_attacks_ratio": 0, + "season_total_defenses_ratio": 0, "days": {} } season = grouped[season_key] - # Daily stats + # Detect format type + is_new_format = "new_attacks" in day_data or "new_defenses" in day_data + + if is_new_format: + new_attacks = day_data.get("new_attacks", []) + new_defenses = day_data.get("new_defenses", []) + all_events = sorted(new_attacks + new_defenses, key=lambda x: x.get("time", 0)) + + if all_events and "trophies" in all_events[-1]: + end_trophies = all_events[-1]["trophies"] + trophies_gained = sum(e.get("change", 0) for e in new_attacks) + trophies_lost = sum(e.get("change", 0) for e in new_defenses) + trophies_total = trophies_gained - trophies_lost + start_trophies = all_events[0]["trophies"] + + day_data["start_trophies"] = start_trophies + day_data["end_trophies"] = end_trophies + day_data["trophies_gained_total"] = trophies_gained + day_data["trophies_lost_total"] = trophies_lost + day_data["trophies_total"] = trophies_total + day_data["total_attacks"] = len(new_attacks) + day_data["total_defenses"] = len(new_defenses) + + else: + attacks = day_data.get("attacks", []) + defenses = day_data.get("defenses", []) + num_attacks = day_data.get("num_attacks", len(attacks)) + num_defenses = len(defenses) + + trophies_gained = sum(attacks) + trophies_lost = sum(defenses) + trophies_total = trophies_gained + trophies_lost + + day_data["trophies_gained_total"] = trophies_gained + day_data["trophies_lost_total"] = trophies_lost + day_data["trophies_total"] = trophies_total + day_data["total_attacks"] = num_attacks + day_data["total_defenses"] = num_defenses + + # Final aggregation for the season gained = day_data.get("trophies_gained_total", 0) lost = day_data.get("trophies_lost_total", 0) - total = day_data.get("trophies_total", 0) attacks = day_data.get("total_attacks", 0) defenses = day_data.get("total_defenses", 0) + end_trophies = day_data.get("end_trophies", 0) + season["season_end_trophies"] = end_trophies - # Add daily data to season season["days"][day_str] = day_data - # Sum up cumulative stats - season["trophies_gained_total"] += gained - season["trophies_lost_total"] += lost - season["trophies_net"] += (gained - lost) - season["total_attacks"] += attacks - season["total_defenses"] += defenses - season["total_attacks_defenses_possible"] = len(season["days"]) * 8 - season["total_gained_lost_possible"] = season["total_attacks_defenses_possible"] * 40 - season["trophies_gained_ratio"] = round(season["trophies_gained_total"] / season["total_gained_lost_possible"], 2) - season["trophies_lost_ratio"] = round(season["trophies_lost_total"] / season["total_gained_lost_possible"], 2) - season["total_attacks_ratio"] = round(season["total_attacks"] / season["total_attacks_defenses_possible"], 2) - season["total_defenses_ratio"] = round(season["total_defenses"] / season["total_attacks_defenses_possible"], 2) - - # Calculate averages + season["season_trophies_gained_total"] += gained + season["season_trophies_lost_total"] += lost + season["season_trophies_net"] += (gained - lost) + season["season_total_attacks"] += attacks + season["season_total_defenses"] += defenses + + # Update theoretical max stats + total_possible = len(season["days"]) * 8 + season["season_total_attacks_defenses_possible"] = total_possible + season["season_total_gained_lost_possible"] = total_possible * 40 + + # Compute ratios (rounded to 2 decimals) + if season["season_total_gained_lost_possible"] > 0: + season["season_trophies_gained_ratio"] = round( + season["season_trophies_gained_total"] / season["season_total_gained_lost_possible"], 2) + season["season_trophies_lost_ratio"] = round(season["season_trophies_lost_total"] / season["season_total_gained_lost_possible"], + 2) + + if season["season_total_attacks_defenses_possible"] > 0: + season["season_total_attacks_ratio"] = round(season["season_total_attacks"] / season["season_total_attacks_defenses_possible"], + 2) + season["season_total_defenses_ratio"] = round(season["season_total_defenses"] / season["season_total_attacks_defenses_possible"], + 2) + + # Final averages for season in grouped.values(): - if season["total_attacks"] > 0: - season["average_trophies_gained_per_attack"] = round( - season["trophies_gained_total"] / season["total_attacks"], 2) - if season["total_defenses"] > 0: - season["average_trophies_lost_per_defense"] = round( - season["trophies_lost_total"] / season["total_defenses"], 2) + if season["season_total_attacks"] > 0: + season["season_average_trophies_gained_per_attack"] = round( + season["season_trophies_gained_total"] / season["season_total_attacks"], 2) + if season["season_total_defenses"] > 0: + season["season_average_trophies_lost_per_defense"] = round( + season["season_trophies_lost_total"] / season["season_total_defenses"], 2) return grouped From 8b94c9ad4c2d71c994566d875d44cfe2b6eb6b64 Mon Sep 17 00:00:00 2001 From: Destinea Date: Thu, 27 Mar 2025 20:23:29 +0100 Subject: [PATCH 058/174] fix: number of defenses --- routers/v2/player/endpoints.py | 5 ++-- routers/v2/player/utils.py | 44 ++++++++++++++++++++++++---------- 2 files changed, 34 insertions(+), 15 deletions(-) diff --git a/routers/v2/player/endpoints.py b/routers/v2/player/endpoints.py index 6a64ecfb..fed48ba1 100644 --- a/routers/v2/player/endpoints.py +++ b/routers/v2/player/endpoints.py @@ -4,7 +4,7 @@ from fastapi import HTTPException from fastapi import APIRouter, Query, Request -from routers.v2.player.utils import group_legends_by_season +from routers.v2.player.utils import group_legends_by_season, count_number_of_attacks_from_list from utils.utils import fix_tag, remove_id_fields, bulk_requests from utils.database import MongoClient as mongo from routers.v2.player.models import PlayerTagsRequest @@ -83,8 +83,7 @@ async def fetch_player_data(session, tag): data["trophies_gained_total"] = trophies_gained data["trophies_lost_total"] = trophies_lost data["trophies_total"] = trophies_total - data["total_attacks"] = len(new_attacks) - data["total_defenses"] = len(new_defenses) + data["num_defenses"] = count_number_of_attacks_from_list(data.get("defenses", [])) grouped_legends = group_legends_by_season(raw_legends) player_data["legends_by_season"] = grouped_legends diff --git a/routers/v2/player/utils.py b/routers/v2/player/utils.py index af3d70c3..101be002 100644 --- a/routers/v2/player/utils.py +++ b/routers/v2/player/utils.py @@ -88,14 +88,10 @@ def group_legends_by_season(legends: dict) -> dict: day_data["trophies_gained_total"] = trophies_gained day_data["trophies_lost_total"] = trophies_lost day_data["trophies_total"] = trophies_total - day_data["total_attacks"] = len(new_attacks) - day_data["total_defenses"] = len(new_defenses) else: attacks = day_data.get("attacks", []) defenses = day_data.get("defenses", []) - num_attacks = day_data.get("num_attacks", len(attacks)) - num_defenses = len(defenses) trophies_gained = sum(attacks) trophies_lost = sum(defenses) @@ -104,8 +100,6 @@ def group_legends_by_season(legends: dict) -> dict: day_data["trophies_gained_total"] = trophies_gained day_data["trophies_lost_total"] = trophies_lost day_data["trophies_total"] = trophies_total - day_data["total_attacks"] = num_attacks - day_data["total_defenses"] = num_defenses # Final aggregation for the season gained = day_data.get("trophies_gained_total", 0) @@ -132,14 +126,17 @@ def group_legends_by_season(legends: dict) -> dict: if season["season_total_gained_lost_possible"] > 0: season["season_trophies_gained_ratio"] = round( season["season_trophies_gained_total"] / season["season_total_gained_lost_possible"], 2) - season["season_trophies_lost_ratio"] = round(season["season_trophies_lost_total"] / season["season_total_gained_lost_possible"], - 2) + season["season_trophies_lost_ratio"] = round( + season["season_trophies_lost_total"] / season["season_total_gained_lost_possible"], + 2) if season["season_total_attacks_defenses_possible"] > 0: - season["season_total_attacks_ratio"] = round(season["season_total_attacks"] / season["season_total_attacks_defenses_possible"], - 2) - season["season_total_defenses_ratio"] = round(season["season_total_defenses"] / season["season_total_attacks_defenses_possible"], - 2) + season["season_total_attacks_ratio"] = round( + season["season_total_attacks"] / season["season_total_attacks_defenses_possible"], + 2) + season["season_total_defenses_ratio"] = round( + season["season_total_defenses"] / season["season_total_attacks_defenses_possible"], + 2) # Final averages for season in grouped.values(): @@ -151,3 +148,26 @@ def group_legends_by_season(legends: dict) -> dict: season["season_trophies_lost_total"] / season["season_total_defenses"], 2) return grouped + + +def count_number_of_attacks_from_list(attacks: list[int]) -> int: + """Count the number of attacks from a list of attack trophies.""" + count = 0 + for value in attacks: + if 280 < value <= 320: + count += 8 + elif 240 < value <= 280: + count += 7 + elif 200 < value <= 240: + count += 6 + elif 160 < value <= 200: + count += 5 + elif 120 < value <= 160: + count += 4 + elif 80 < value <= 120: + count += 3 + elif 40 < value <= 80: + count += 2 + else: + count += 1 + return count From a965148fd4250b6d0f446c88bd68401cc6fbfbcc Mon Sep 17 00:00:00 2001 From: Destinea Date: Fri, 28 Mar 2025 14:52:34 +0100 Subject: [PATCH 059/174] feat: Added player rankings --- routers/v2/player/endpoints.py | 197 ++++++++++++++++++++------------- routers/v2/player/utils.py | 92 ++++++++++++++- 2 files changed, 212 insertions(+), 77 deletions(-) diff --git a/routers/v2/player/endpoints.py b/routers/v2/player/endpoints.py index fed48ba1..6863629f 100644 --- a/routers/v2/player/endpoints.py +++ b/routers/v2/player/endpoints.py @@ -2,12 +2,13 @@ import aiohttp from fastapi import HTTPException -from fastapi import APIRouter, Query, Request +from fastapi import APIRouter, Request, Response -from routers.v2.player.utils import group_legends_by_season, count_number_of_attacks_from_list +from routers.v2.player.utils import get_legend_rankings_for_tag, get_legend_stats_common, get_current_rankings from utils.utils import fix_tag, remove_id_fields, bulk_requests from utils.database import MongoClient as mongo from routers.v2.player.models import PlayerTagsRequest +from fastapi_cache.decorator import cache router = APIRouter(prefix="/v2", tags=["Player"], include_in_schema=True) @@ -24,75 +25,6 @@ async def player_location_list(request: Request, body: PlayerTagsRequest): return {"items": remove_id_fields(location_info)} -@router.post("/players/full-stats", name="Get full stats for a list of players") -async def get_full_player_stats(request: Request, body: PlayerTagsRequest): - """Retrieve Clash of Clans account details for a list of players.""" - - if not body.player_tags: - raise HTTPException(status_code=400, detail="player_tags cannot be empty") - - player_tags = [fix_tag(tag) for tag in body.player_tags] - - players_info = await mongo.player_stats.find( - {'tag': {'$in': player_tags}}, - {'_id': 0, 'tag': 1, 'donations': 1, 'legends': 1, 'clan_games': 1, 'season_pass': 1, 'activity': 1, - 'last_online': 1, 'last_online_time': 1, 'attack_wins': 1, 'dark_elixir': 1, 'gold': 1, - 'capital_gold': 1, 'season_trophies': 1, 'last_updated': 1} - ).to_list(length=None) - - mongo_data_dict = {player["tag"]: player for player in players_info} - - async def fetch_player_data(session, tag): - url = f"https://proxy.clashk.ing/v1/players/{tag.replace('#', '%23')}" - async with session.get(url) as response: - if response.status == 200: - return await response.json() - return None - - async with aiohttp.ClientSession() as session: - api_responses = await asyncio.gather(*(fetch_player_data(session, tag) for tag in player_tags)) - - combined_results = [] - for tag, api_data in zip(player_tags, api_responses): - player_data = mongo_data_dict.get(tag, {}) - if api_data: - player_data.update(api_data) - - # Process each day in the legends data to extract trophy deltas and counts - # Transform legends days into seasons - raw_legends = player_data.get("legends", {}) - - # Enrich each day with start/end trophies and per-day stats before grouping by season - for day, data in raw_legends.items(): - if not isinstance(data, dict): - continue - - new_attacks = data.get("new_attacks", []) - new_defenses = data.get("new_defenses", []) - - all_events = sorted(new_attacks + new_defenses, key=lambda x: x.get("time", 0)) - if all_events and "trophies" in all_events[-1]: - end_trophies = all_events[-1]["trophies"] - trophies_gained = sum(entry.get("change", 0) for entry in new_attacks) - trophies_lost = sum(entry.get("change", 0) for entry in new_defenses) - trophies_total = trophies_gained + trophies_lost - start_trophies = end_trophies - trophies_total - - data["start_trophies"] = start_trophies - data["end_trophies"] = end_trophies - data["trophies_gained_total"] = trophies_gained - data["trophies_lost_total"] = trophies_lost - data["trophies_total"] = trophies_total - data["num_defenses"] = count_number_of_attacks_from_list(data.get("defenses", [])) - - grouped_legends = group_legends_by_season(raw_legends) - player_data["legends_by_season"] = grouped_legends - player_data.pop("legends", None) - - combined_results.append(player_data) - - return {"items": remove_id_fields(combined_results)} - @router.post("/players/sorted/{attribute}", name="Get players sorted by an attribute") async def player_sorted(attribute: str, request: Request, body: PlayerTagsRequest): @@ -144,12 +76,127 @@ def fetch_attribute(data: dict, attr: str): new_data = [ { - "name" : p.get("name"), - "tag" : p.get("tag"), - "value" : fetch_attribute(data=p, attr=attribute), - "clan" : p.get("clan", {}) + "name": p.get("name"), + "tag": p.get("tag"), + "value": fetch_attribute(data=p, attr=attribute), + "clan": p.get("clan", {}) } for p in player_responses ] return {"items": sorted(new_data, key=lambda x: (x["value"] is not None, x["value"]), reverse=True)} + + +@router.post("/players/full-stats", name="Get full stats for a list of players") +@cache(expire=300) +async def get_full_player_stats(request: Request, body: PlayerTagsRequest): + """Retrieve Clash of Clans account details for a list of players.""" + + if not body.player_tags: + raise HTTPException(status_code=400, detail="player_tags cannot be empty") + + player_tags = [fix_tag(tag) for tag in body.player_tags] + + # Get Mongo-stored data + players_info = await mongo.player_stats.find( + {'tag': {'$in': player_tags}}, + { + '_id': 0, + 'tag': 1, + 'donations': 1, + 'clan_games': 1, + 'season_pass': 1, + 'activity': 1, + 'last_online': 1, + 'last_online_time': 1, + 'attack_wins': 1, + 'dark_elixir': 1, + 'gold': 1, + 'capital_gold': 1, + 'season_trophies': 1, + 'last_updated': 1 + } + ).to_list(length=None) + + mongo_data_dict = {player["tag"]: player for player in players_info} + + # Get data from Clash of Clans API + async def fetch_player_data(session, tag): + url = f"https://proxy.clashk.ing/v1/players/{tag.replace('#', '%23')}" + async with session.get(url) as response: + if response.status == 200: + return await response.json() + return None + + async with aiohttp.ClientSession() as session: + api_responses = await asyncio.gather( + *(fetch_player_data(session, tag) for tag in player_tags) + ) + + # Load legend stats + legends_data = await get_legend_stats_common(player_tags) + tag_to_legends = {entry["tag"]: entry["legends_by_season"] for entry in legends_data} + + # Merge and enrich data + combined_results = [] + + for tag, api_data in zip(player_tags, api_responses): + player_data = mongo_data_dict.get(tag, {}) + + if api_data: + player_data.update(api_data) + + # Inject legend days (by season) + player_data["legends_by_season"] = tag_to_legends.get(tag, {}) + player_data.pop("legends", None) + + # Inject legend history rankings + legend_rankings = await get_legend_rankings_for_tag(tag) + player_data["rankings"] = legend_rankings + + # Inject current season rankings + legends_current_rankings = await get_current_rankings(tag) + player_data["current_season_rankings"] = legends_current_rankings + + combined_results.append(player_data) + + return {"items": remove_id_fields(combined_results)} + + +@router.post("/players/legend-days", name="Get legend stats for multiple players") +@cache(expire=300) +async def get_legend_stats(request: Request, body: PlayerTagsRequest): + if not body.player_tags: + raise HTTPException(status_code=400, detail="player_tags cannot be empty") + return {"items": await get_legend_stats_common(body.player_tags)} + + +@router.get("/player/{player_tag}/legend-days", name="Get legend stats for one player") +@cache(expire=300) +async def get_legend_stats_by_player(request: Request, player_tag: str): + return await get_legend_stats_common(player_tag) + + +@router.get("/player/{player_tag}/legend_rankings", name="Get previous player legend rankings") +@cache(expire=300) +async def get_player_legend_rankings(player_tag: str, limit: int = 10): + return await get_legend_rankings_for_tag(player_tag, limit=limit) + + +@router.post("/players/legend_rankings", name="Get legend rankings for multiple players") +@cache(expire=300) +async def get_bulk_legend_rankings(body: PlayerTagsRequest, limit: int = 10): + if not body.player_tags: + raise HTTPException(status_code=400, detail="player_tags cannot be empty") + + player_tags = [fix_tag(tag) for tag in body.player_tags] + results = [] + + for tag in player_tags: + rankings = await get_legend_rankings_for_tag(tag, limit) + results.append({ + "tag": tag, + "rankings": rankings + }) + + return {"items": results} diff --git a/routers/v2/player/utils.py b/routers/v2/player/utils.py index 101be002..4d150461 100644 --- a/routers/v2/player/utils.py +++ b/routers/v2/player/utils.py @@ -1,4 +1,9 @@ +from fastapi import HTTPException + import pendulum +from utils.database import MongoClient as mongo + +from utils.utils import fix_tag def get_legend_season_range(date: pendulum.DateTime) -> tuple[pendulum.DateTime, pendulum.DateTime]: @@ -26,6 +31,39 @@ def get_legend_season_range(date: pendulum.DateTime) -> tuple[pendulum.DateTime, return season_start, season_end +from typing import Union, List + + +async def get_legend_stats_common(player_tags: Union[str, List[str]]) -> Union[dict, List[dict]]: + """Returns enriched legend stats for a single tag or list of tags.""" + if isinstance(player_tags, str): + fixed_tag = fix_tag(player_tags) + player = await mongo.player_stats.find_one( + {'tag': fixed_tag}, + {'_id': 0, 'tag': 1, 'legends': 1} + ) + if not player: + raise HTTPException(status_code=404, detail=f"Player {fixed_tag} not found") + grouped_legends = await process_legend_stats(player.get("legends", {})) + return { + "tag": fixed_tag, + "legends_by_season": grouped_legends + } + + fixed_tags = [fix_tag(tag) for tag in player_tags] + players_info = await mongo.player_stats.find( + {'tag': {'$in': fixed_tags}}, + {'_id': 0, 'tag': 1, 'legends': 1} + ).to_list(length=None) + + return [ + { + "tag": player["tag"], + "legends_by_season": await process_legend_stats(player.get("legends", {})) + } for player in players_info + ] + + def group_legends_by_season(legends: dict) -> dict: """Group daily legends data into seasons with cumulative stats.""" grouped = {} @@ -104,8 +142,8 @@ def group_legends_by_season(legends: dict) -> dict: # Final aggregation for the season gained = day_data.get("trophies_gained_total", 0) lost = day_data.get("trophies_lost_total", 0) - attacks = day_data.get("total_attacks", 0) - defenses = day_data.get("total_defenses", 0) + attacks = day_data.get("num_attacks", 0) + defenses = count_number_of_attacks_from_list(day_data.get("defenses", [])) end_trophies = day_data.get("end_trophies", 0) season["season_end_trophies"] = end_trophies @@ -171,3 +209,53 @@ def count_number_of_attacks_from_list(attacks: list[int]) -> int: else: count += 1 return count + + +async def process_legend_stats(raw_legends: dict) -> dict: + """Enrich raw legends days and group them by season.""" + for day, data in raw_legends.items(): + if not isinstance(data, dict): + continue + + new_attacks = data.get("new_attacks", []) + new_defenses = data.get("new_defenses", []) + + all_events = sorted(new_attacks + new_defenses, key=lambda x: x.get("time", 0)) + if all_events and "trophies" in all_events[-1]: + end_trophies = all_events[-1]["trophies"] + trophies_gained = sum(entry.get("change", 0) for entry in new_attacks) + trophies_lost = sum(entry.get("change", 0) for entry in new_defenses) + trophies_total = trophies_gained + trophies_lost + start_trophies = end_trophies - trophies_total + + data["start_trophies"] = start_trophies + data["end_trophies"] = end_trophies + data["trophies_gained_total"] = trophies_gained + data["trophies_lost_total"] = trophies_lost + data["trophies_total"] = trophies_total + data["num_defenses"] = count_number_of_attacks_from_list(data.get("defenses", [])) + + return group_legends_by_season(raw_legends) + + +async def get_legend_rankings_for_tag(tag: str, limit: int = 10) -> list[dict]: + tag = fix_tag(tag) + results = await mongo.history_db.find({"tag": tag}).sort("season", -1).limit(limit).to_list(length=None) + for result in results: + result.pop("_id", None) + return results + +async def get_current_rankings(tag: str) -> dict: + ranking_data = await mongo.leaderboard_db.find_one({"tag": tag}, projection={"_id": 0}) + if not ranking_data: + ranking_data = { + "country_code": None, + "country_name": None, + "local_rank": None, + "global_rank": None + } + if ranking_data.get("global_rank") is None: + fallback = await mongo.legend_rankings.find_one({"tag": tag}) + if fallback: + ranking_data["global_rank"] = fallback.get("rank") + return ranking_data From 099f15b5f20b5e8278596f8c99094106b3c0f9b7 Mon Sep 17 00:00:00 2001 From: Destinea Date: Fri, 28 Mar 2025 15:25:02 +0100 Subject: [PATCH 060/174] fix: got multiple values for argument 'request' --- routers/v2/player/endpoints.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/routers/v2/player/endpoints.py b/routers/v2/player/endpoints.py index 6863629f..72d40fe6 100644 --- a/routers/v2/player/endpoints.py +++ b/routers/v2/player/endpoints.py @@ -89,7 +89,7 @@ def fetch_attribute(data: dict, attr: str): @router.post("/players/full-stats", name="Get full stats for a list of players") @cache(expire=300) -async def get_full_player_stats(request: Request, body: PlayerTagsRequest): +async def get_full_player_stats(body: PlayerTagsRequest, request: Request, response: Response): """Retrieve Clash of Clans account details for a list of players.""" if not body.player_tags: @@ -152,11 +152,11 @@ async def fetch_player_data(session, tag): # Inject legend history rankings legend_rankings = await get_legend_rankings_for_tag(tag) - player_data["rankings"] = legend_rankings + player_data["legend_eos_ranking"] = legend_rankings # Inject current season rankings legends_current_rankings = await get_current_rankings(tag) - player_data["current_season_rankings"] = legends_current_rankings + player_data["rankings"] = legends_current_rankings combined_results.append(player_data) @@ -165,7 +165,7 @@ async def fetch_player_data(session, tag): @router.post("/players/legend-days", name="Get legend stats for multiple players") @cache(expire=300) -async def get_legend_stats(request: Request, body: PlayerTagsRequest): +async def get_legend_stats(body: PlayerTagsRequest, request: Request, response: Response): if not body.player_tags: raise HTTPException(status_code=400, detail="player_tags cannot be empty") return {"items": await get_legend_stats_common(body.player_tags)} @@ -173,7 +173,7 @@ async def get_legend_stats(request: Request, body: PlayerTagsRequest): @router.get("/player/{player_tag}/legend-days", name="Get legend stats for one player") @cache(expire=300) -async def get_legend_stats_by_player(request: Request, player_tag: str): +async def get_legend_stats_by_player(player_tag: str, request: Request, response: Response): return await get_legend_stats_common(player_tag) From f75d1efa492f8f3cf330d7c4d26b6126a4d774b9 Mon Sep 17 00:00:00 2001 From: Destinea Date: Fri, 28 Mar 2025 15:32:34 +0100 Subject: [PATCH 061/174] fix: got multiple values for argument 'request' --- routers/v2/player/endpoints.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/routers/v2/player/endpoints.py b/routers/v2/player/endpoints.py index 72d40fe6..1d4e9fa0 100644 --- a/routers/v2/player/endpoints.py +++ b/routers/v2/player/endpoints.py @@ -1,7 +1,7 @@ import asyncio import aiohttp -from fastapi import HTTPException +from fastapi import HTTPException, Depends from fastapi import APIRouter, Request, Response from routers.v2.player.utils import get_legend_rankings_for_tag, get_legend_stats_common, get_current_rankings @@ -89,7 +89,7 @@ def fetch_attribute(data: dict, attr: str): @router.post("/players/full-stats", name="Get full stats for a list of players") @cache(expire=300) -async def get_full_player_stats(body: PlayerTagsRequest, request: Request, response: Response): +async def get_full_player_stats(body: PlayerTagsRequest, request: Request = Depends(), response: Response = Depends()): """Retrieve Clash of Clans account details for a list of players.""" if not body.player_tags: @@ -165,7 +165,7 @@ async def fetch_player_data(session, tag): @router.post("/players/legend-days", name="Get legend stats for multiple players") @cache(expire=300) -async def get_legend_stats(body: PlayerTagsRequest, request: Request, response: Response): +async def get_legend_stats(body: PlayerTagsRequest, request: Request = Depends(), response: Response = Depends()): if not body.player_tags: raise HTTPException(status_code=400, detail="player_tags cannot be empty") return {"items": await get_legend_stats_common(body.player_tags)} @@ -173,7 +173,7 @@ async def get_legend_stats(body: PlayerTagsRequest, request: Request, response: @router.get("/player/{player_tag}/legend-days", name="Get legend stats for one player") @cache(expire=300) -async def get_legend_stats_by_player(player_tag: str, request: Request, response: Response): +async def get_legend_stats_by_player(player_tag: str, request: Request = Depends(), response: Response = Depends()): return await get_legend_stats_common(player_tag) From 0760811d71aa344d898c9735040415e2008b6f6f Mon Sep 17 00:00:00 2001 From: Destinea Date: Fri, 28 Mar 2025 15:42:21 +0100 Subject: [PATCH 062/174] chore: removed caching --- routers/v2/player/endpoints.py | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/routers/v2/player/endpoints.py b/routers/v2/player/endpoints.py index 1d4e9fa0..dbce2519 100644 --- a/routers/v2/player/endpoints.py +++ b/routers/v2/player/endpoints.py @@ -1,14 +1,13 @@ import asyncio import aiohttp -from fastapi import HTTPException, Depends +from fastapi import HTTPException from fastapi import APIRouter, Request, Response from routers.v2.player.utils import get_legend_rankings_for_tag, get_legend_stats_common, get_current_rankings from utils.utils import fix_tag, remove_id_fields, bulk_requests from utils.database import MongoClient as mongo from routers.v2.player.models import PlayerTagsRequest -from fastapi_cache.decorator import cache router = APIRouter(prefix="/v2", tags=["Player"], include_in_schema=True) @@ -88,8 +87,7 @@ def fetch_attribute(data: dict, attr: str): @router.post("/players/full-stats", name="Get full stats for a list of players") -@cache(expire=300) -async def get_full_player_stats(body: PlayerTagsRequest, request: Request = Depends(), response: Response = Depends()): +async def get_full_player_stats(body: PlayerTagsRequest, request: Request): """Retrieve Clash of Clans account details for a list of players.""" if not body.player_tags: @@ -164,27 +162,23 @@ async def fetch_player_data(session, tag): @router.post("/players/legend-days", name="Get legend stats for multiple players") -@cache(expire=300) -async def get_legend_stats(body: PlayerTagsRequest, request: Request = Depends(), response: Response = Depends()): +async def get_legend_stats(body: PlayerTagsRequest, request: Request): if not body.player_tags: raise HTTPException(status_code=400, detail="player_tags cannot be empty") return {"items": await get_legend_stats_common(body.player_tags)} @router.get("/player/{player_tag}/legend-days", name="Get legend stats for one player") -@cache(expire=300) -async def get_legend_stats_by_player(player_tag: str, request: Request = Depends(), response: Response = Depends()): +async def get_legend_stats_by_player(player_tag: str, request: Request): return await get_legend_stats_common(player_tag) @router.get("/player/{player_tag}/legend_rankings", name="Get previous player legend rankings") -@cache(expire=300) async def get_player_legend_rankings(player_tag: str, limit: int = 10): return await get_legend_rankings_for_tag(player_tag, limit=limit) @router.post("/players/legend_rankings", name="Get legend rankings for multiple players") -@cache(expire=300) async def get_bulk_legend_rankings(body: PlayerTagsRequest, limit: int = 10): if not body.player_tags: raise HTTPException(status_code=400, detail="player_tags cannot be empty") From 14a2a204fc41f862655c9ef002f25e897d63f2d3 Mon Sep 17 00:00:00 2001 From: Destinea Date: Fri, 28 Mar 2025 17:55:01 +0100 Subject: [PATCH 063/174] feat: season duration --- routers/v2/player/utils.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/routers/v2/player/utils.py b/routers/v2/player/utils.py index 4d150461..68b3612a 100644 --- a/routers/v2/player/utils.py +++ b/routers/v2/player/utils.py @@ -87,6 +87,8 @@ def group_legends_by_season(legends: dict) -> dict: grouped[season_key] = { "season_start": season_start.to_date_string(), "season_end": season_end.to_date_string(), + "season_duration": 0, + "season_days_in_legend": 0, "season_end_trophies": 0, "season_trophies_gained_total": 0, "season_trophies_lost_total": 0, @@ -185,6 +187,14 @@ def group_legends_by_season(legends: dict) -> dict: season["season_average_trophies_lost_per_defense"] = round( season["season_trophies_lost_total"] / season["season_total_defenses"], 2) + season["season_days_in_legend"] = len(season["days"]) + try: + start = pendulum.parse(season["season_start"]) + end = pendulum.parse(season["season_end"]) + season["season_duration"] = (end - start).days + 1 + except Exception: + season["season_duration"] = 0 + return grouped @@ -245,6 +255,7 @@ async def get_legend_rankings_for_tag(tag: str, limit: int = 10) -> list[dict]: result.pop("_id", None) return results + async def get_current_rankings(tag: str) -> dict: ranking_data = await mongo.leaderboard_db.find_one({"tag": tag}, projection={"_id": 0}) if not ranking_data: From e1b9340ce8c98caeff5d20ccfbc46d54391bad97 Mon Sep 17 00:00:00 2001 From: Destinea Date: Fri, 28 Mar 2025 19:05:09 +0100 Subject: [PATCH 064/174] feat: legends stars stats --- routers/v2/player/utils.py | 126 +++++++++++++++++++++++++++++++------ 1 file changed, 107 insertions(+), 19 deletions(-) diff --git a/routers/v2/player/utils.py b/routers/v2/player/utils.py index 68b3612a..993f74dd 100644 --- a/routers/v2/player/utils.py +++ b/routers/v2/player/utils.py @@ -78,9 +78,6 @@ def group_legends_by_season(legends: dict) -> dict: except Exception: continue - if day.to_date_string() == "2024-08-26": - print(season_start, season_end) - season_key = season_start.to_date_string() if season_key not in grouped: @@ -95,6 +92,10 @@ def group_legends_by_season(legends: dict) -> dict: "season_trophies_net": 0, "season_total_attacks": 0, "season_total_defenses": 0, + "season_stars_distribution_attacks": {0: 0, 1: 0, 2: 0, 3: 0}, + "season_stars_distribution_defenses": {0: 0, 1: 0, 2: 0, 3: 0}, + "season_stars_distribution_attacks_percentages": {}, + "season_stars_distribution_defenses_percentages": {}, "season_average_trophies_gained_per_attack": 0, "season_average_trophies_lost_per_defense": 0, "season_total_attacks_defenses_possible": 0, @@ -108,7 +109,6 @@ def group_legends_by_season(legends: dict) -> dict: season = grouped[season_key] - # Detect format type is_new_format = "new_attacks" in day_data or "new_defenses" in day_data if is_new_format: @@ -141,10 +141,9 @@ def group_legends_by_season(legends: dict) -> dict: day_data["trophies_lost_total"] = trophies_lost day_data["trophies_total"] = trophies_total - # Final aggregation for the season gained = day_data.get("trophies_gained_total", 0) lost = day_data.get("trophies_lost_total", 0) - attacks = day_data.get("num_attacks", 0) + attacks = count_number_of_attacks_from_list(day_data.get("attacks", [])) defenses = count_number_of_attacks_from_list(day_data.get("defenses", [])) end_trophies = day_data.get("end_trophies", 0) season["season_end_trophies"] = end_trophies @@ -157,35 +156,57 @@ def group_legends_by_season(legends: dict) -> dict: season["season_total_attacks"] += attacks season["season_total_defenses"] += defenses - # Update theoretical max stats + num_attacks = day_data.get("num_attacks", 0) + attack_distribution = determine_star_distribution(day_data.get("attacks", []), num_attacks) + for star, count in attack_distribution.items(): + season["season_stars_distribution_attacks"][star] += count + + num_defenses = day_data.get("num_defenses", 0) + defense_distribution = determine_star_distribution(day_data.get("defenses", []), num_defenses) + for star, count in defense_distribution.items(): + season["season_stars_distribution_defenses"][star] += count + total_possible = len(season["days"]) * 8 season["season_total_attacks_defenses_possible"] = total_possible season["season_total_gained_lost_possible"] = total_possible * 40 - # Compute ratios (rounded to 2 decimals) if season["season_total_gained_lost_possible"] > 0: season["season_trophies_gained_ratio"] = round( season["season_trophies_gained_total"] / season["season_total_gained_lost_possible"], 2) season["season_trophies_lost_ratio"] = round( - season["season_trophies_lost_total"] / season["season_total_gained_lost_possible"], - 2) + season["season_trophies_lost_total"] / season["season_total_gained_lost_possible"], 2) if season["season_total_attacks_defenses_possible"] > 0: season["season_total_attacks_ratio"] = round( - season["season_total_attacks"] / season["season_total_attacks_defenses_possible"], - 2) + season["season_total_attacks"] / season["season_total_attacks_defenses_possible"], 2) season["season_total_defenses_ratio"] = round( - season["season_total_defenses"] / season["season_total_attacks_defenses_possible"], - 2) + season["season_total_defenses"] / season["season_total_attacks_defenses_possible"], 2) - # Final averages for season in grouped.values(): - if season["season_total_attacks"] > 0: + total_attacks = season.get("season_total_attacks", 0) + total_defenses = season.get("season_total_defenses", 0) + + if total_attacks > 0: + season["season_stars_distribution_attacks_percentages"] = { + str(i): round(season["season_stars_distribution_attacks"].get(i, 0) / total_attacks * 100, 1) + for i in range(4) + } + + if total_defenses > 0: + season["season_stars_distribution_defenses_percentages"] = { + str(i): round(season["season_stars_distribution_defenses"].get(i, 0) / total_defenses * 100, 1) + for i in range(4) + } + + if total_attacks > 0: season["season_average_trophies_gained_per_attack"] = round( - season["season_trophies_gained_total"] / season["season_total_attacks"], 2) - if season["season_total_defenses"] > 0: + season["season_trophies_gained_total"] / total_attacks, 2 + ) + + if total_defenses > 0: season["season_average_trophies_lost_per_defense"] = round( - season["season_trophies_lost_total"] / season["season_total_defenses"], 2) + season["season_trophies_lost_total"] / total_defenses, 2 + ) season["season_days_in_legend"] = len(season["days"]) try: @@ -198,6 +219,62 @@ def group_legends_by_season(legends: dict) -> dict: return grouped +def determine_star_distribution(trophies_list: list[int], expected_count: int) -> dict[int, int]: + distribution = {0: 0, 1: 0, 2: 0, 3: 0} + + for trophies in trophies_list: + if trophies == 320: + distribution[3] += 8 + elif 280 < trophies < 320: + distribution[2] += 8 + elif trophies == 280: + distribution[3] += 7 + elif 240 < trophies < 280: + distribution[2] += 7 + elif trophies == 240: + distribution[3] += 6 + elif 200 < trophies < 240: + distribution[2] += 6 + elif trophies == 200: + distribution[3] += 5 + elif 160 < trophies < 200: + distribution[2] += 5 + elif trophies == 160: + distribution[3] += 4 + elif 120 < trophies < 160: + distribution[2] += 4 + elif trophies == 120: + distribution[3] += 3 + elif 80 < trophies < 120: + distribution[2] += 3 + elif trophies == 80: + distribution[3] += 2 + elif 40 < trophies < 80: + distribution[2] += 2 + elif trophies == 40: + distribution[3] += 1 + elif 5 <= trophies <= 15: + distribution[1] += 1 + elif trophies <= 4: + distribution[0] += 1 + else: + distribution[2] += 1 # fallback + + # Normalize the distribution + total = sum(distribution.values()) + if total > expected_count: + surplus = total - expected_count + # Remove stars from 3 to 0 + for star in [2, 1, 3, 0]: + removed = min(surplus, distribution[star]) + distribution[star] -= removed + surplus -= removed + if surplus == 0: + break + + return distribution + + def count_number_of_attacks_from_list(attacks: list[int]) -> int: """Count the number of attacks from a list of attack trophies.""" count = 0 @@ -221,6 +298,17 @@ def count_number_of_attacks_from_list(attacks: list[int]) -> int: return count +def get_star_distribution(trophies_list: list[int]) -> tuple[dict[int, int], int]: + distribution = {0: 0, 1: 0, 2: 0, 3: 0} + total_attacks = 0 + for trophies in trophies_list: + stars = trophies_to_stars_stacked(trophies) + for star, count in stars.items(): + distribution[star] += count + total_attacks += count + return distribution, total_attacks + + async def process_legend_stats(raw_legends: dict) -> dict: """Enrich raw legends days and group them by season.""" for day, data in raw_legends.items(): From 559fd843d9538399ddcf5278be6505b327cc3efc Mon Sep 17 00:00:00 2001 From: MagicTheDev Date: Sat, 29 Mar 2025 16:52:34 -0500 Subject: [PATCH 065/174] feat: v2 endpoints --- routers/v1/tickets.py | 3 + routers/v2/clan/endpoints.py | 3 + routers/v2/player/endpoints.py | 130 +++++++++++++++++++++++++++++++++ routers/v2/search/endpoints.py | 50 +++++++++++-- utils/time.py | 17 +++++ 5 files changed, 197 insertions(+), 6 deletions(-) diff --git a/routers/v1/tickets.py b/routers/v1/tickets.py index 203c8c7b..6f36727f 100644 --- a/routers/v1/tickets.py +++ b/routers/v1/tickets.py @@ -19,6 +19,9 @@ BASE_URL = 'https://discord.com/api/v10' + + + async def get_roles(guild_id): url = f'{BASE_URL}/guilds/{guild_id}/roles' headers = { diff --git a/routers/v2/clan/endpoints.py b/routers/v2/clan/endpoints.py index 6cc58e76..ce14f599 100644 --- a/routers/v2/clan/endpoints.py +++ b/routers/v2/clan/endpoints.py @@ -130,3 +130,6 @@ async def clan_donations(clan_tag: str, season: str, request: Request): + + + diff --git a/routers/v2/player/endpoints.py b/routers/v2/player/endpoints.py index a8dc53a0..c3e3674b 100644 --- a/routers/v2/player/endpoints.py +++ b/routers/v2/player/endpoints.py @@ -1,3 +1,4 @@ +from collections import defaultdict import pendulum as pend from fastapi import HTTPException @@ -84,4 +85,133 @@ def fetch_attribute(data: dict, attr: str): return {"items": sorted(new_data, key=lambda x: (x["value"] is not None, x["value"]), reverse=True)} +@router.post("/players/summary/{season}/top", + name="Get summary of top stats for a list of players") +async def players_summary_top(season: str, request: Request, body: PlayerTagsRequest, limit: int = 10): + + results = await mongo.player_stats.find( + {'$and': [{'tag': {'$in': body.player_tags}}]} + ).to_list(length=None) + + new_data = defaultdict(lambda: defaultdict(dict)) + + def key_fetcher(d: dict, attr: str): + keys = attr.split(".") + data = None + for i, key in enumerate(keys): + data = d.get(key, {}) if i < len(keys) - 1 else d.get(key, 0) + return data + + for option in [ + f'gold.{season}', f'elixir.{season}', f'dark_elixir.{season}', + f'activity.{season}', f'attack_wins.{season}', f'season_trophies.{season}', + f'donations.{season}.donated', f'donations.{season}.received', + ]: + top_results = sorted(results, key=lambda d: key_fetcher(d, attr=option), reverse=True)[:limit] + for count, result in enumerate(top_results, 1): + field = key_fetcher(result, attr=option) + new_data[result["tag"]][option] = field | {"count" : count} + + season_raid_weeks = get_season_raid_weeks(season=season) + + def capital_gold_donated(elem): + cc_results = [] + for week in season_raid_weeks: + week_result = elem.get('capital_gold', {}).get(week) + cc_results.append(ClanCapitalWeek(week_result)) + return sum([sum(cap.donated) for cap in cc_results]) + + top_capital_donos = sorted(results, key=capital_gold_donated, reverse=True)[:limit] + text += f'**{bot.emoji.capital_gold} CG Donated\n**' + for count, result in enumerate(top_capital_donos, 1): + cg_donated = capital_gold_donated(result) + text += f"`{count:<2} {'{:,}'.format(cg_donated):7} \u200e{result['name']}`\n" + text += '\n' + + def capital_gold_raided(elem): + cc_results = [] + for week in season_raid_weeks: + week_result = elem.get('capital_gold', {}).get(week) + cc_results.append(ClanCapitalWeek(week_result)) + return sum([sum(cap.raided) for cap in cc_results]) + + top_capital_raided = sorted(results, key=capital_gold_raided, reverse=True)[:limit] + text += f'**{bot.emoji.capital_gold} CG Raided\n**' + for count, result in enumerate(top_capital_raided, 1): + cg_raided = capital_gold_raided(result) + text += f"`{count:<2} {'{:,}'.format(cg_raided):7} \u200e{result['name']}`\n" + text += '\n' + + # ADD HITRATE + SEASON_START, SEASON_END = gen_season_start_end_as_iso(season=season) + pipeline = [ + { + '$match': { + '$and': [ + { + '$or': [ + {'data.clan.members.tag': {'$in': member_tags}}, + {'data.opponent.members.tag': {'$in': member_tags}}, + ] + }, + {'data.preparationStartTime': {'$gte': SEASON_START}}, + {'data.preparationStartTime': {'$lte': SEASON_END}}, + {'type': {'$ne': 'friendly'}}, + ] + } + }, + { + '$project': { + '_id': 0, + 'uniqueKey': { + '$concat': [ + { + '$cond': { + 'if': {'$lt': ['$data.clan.tag', '$data.opponent.tag']}, + 'then': '$data.clan.tag', + 'else': '$data.opponent.tag', + } + }, + { + '$cond': { + 'if': {'$lt': ['$data.opponent.tag', '$data.clan.tag']}, + 'then': '$data.opponent.tag', + 'else': '$data.clan.tag', + } + }, + '$data.preparationStartTime', + ] + }, + 'data': 1, + } + }, + {'$group': {'_id': '$uniqueKey', 'data': {'$first': '$data'}}}, + {'$project': {'members': {'$concatArrays': ['$data.clan.members', '$data.opponent.members']}}}, + {'$unwind': '$members'}, + {'$match': {'members.tag': {'$in': member_tags}}}, + { + '$project': { + '_id': 0, + 'tag': '$members.tag', + 'name': '$members.name', + 'stars': {'$sum': '$members.attacks.stars'}, + } + }, + { + '$group': { + '_id': '$tag', + 'name': {'$last': '$name'}, + 'totalStars': {'$sum': '$stars'}, + } + }, + {'$sort': {'totalStars': -1}}, + {'$limit': limit}, + ] + war_star_results = await bot.clan_war.aggregate(pipeline=pipeline).to_list(length=None) + + if war_star_results: + text += f'**{bot.emoji.war_star} War Stars\n**' + for count, result in enumerate(war_star_results, 1): + text += f"`{count:<2} {'{:,}'.format(result.get('totalStars')):3} \u200e{result.get('name')}`\n" + diff --git a/routers/v2/search/endpoints.py b/routers/v2/search/endpoints.py index 7042d039..fe28a3a3 100644 --- a/routers/v2/search/endpoints.py +++ b/routers/v2/search/endpoints.py @@ -14,10 +14,10 @@ -@router.get("/search/clan/{query}", +@router.get("/search/clan", name="Search for a clan by name or tag") async def search_clan( - query: str, + query: str = Query(default=""), request: Request = Request, user_id: int = 0, guild_id: int = 0, @@ -41,7 +41,7 @@ async def search_clan( guild_clans = [] if guild_id: - if query == '': + if len(query) <= 1: pipeline = [ {'$match': {'server': guild_id}}, {'$sort': {'name': 1}}, @@ -148,14 +148,24 @@ async def search_clan( "warLeague": clan.war_league.name, "type": "search_result" }) + + type_order = { + "recent_search": 0, + "bookmarked": 1, + "guild_search": 2, + "search_result": 3 + } + final_data.sort(key=lambda x: type_order.get(x["type"], 99)) + return {"items" : final_data} -@router.post("/search/bookmark/clan/{user_id}/{tag}", - name="Add a bookmark for a clan for a user") -async def bookmark_clan( +@router.post("/search/bookmark/{user_id}/{type}/{tag}", + name="Add a bookmark for a clan or player for a user") +async def bookmark_search( user_id: int, + type: int, tag: str, request: Request = Request, ): @@ -172,3 +182,31 @@ async def bookmark_clan( {"$push": {"search.clan.bookmarked": {"$each": [tag], "$position": 0, "$slice": 20}}} ) return {"success": True} + + +@router.post("/search/recent/{user_id}/{type}/{tag}", + name="Add a recent search for a clan or player for a user") +async def recent_search( + user_id: int, + type: int, + tag: str, + request: Request = Request, +): + + type_field = { + 0: "player", + 1: "clan" + } + tag = fix_tag(tag) + # First, remove the tag if it exists + await mongo.user_settings.update_one( + {"discord_user": user_id}, + {"$pull": {"search.clan.recent": tag}} + ) + + # Then, push the new tag to the front while keeping only the last 20 items + await mongo.user_settings.update_one( + {"discord_user": user_id}, + {"$push": {f"search.{type_field.get(type)}.recent": {"$each": [tag], "$position": 0, "$slice": 20}}} + ) + return {"success": True} diff --git a/utils/time.py b/utils/time.py index f731e4b9..e8c6ace0 100644 --- a/utils/time.py +++ b/utils/time.py @@ -184,3 +184,20 @@ def season_start_end(season: str, gold_pass_season: bool = False): season_end = season_start.add(months=1) # First day of the next month return season_start, season_end + + +def get_season_raid_weeks(season: str): + year = int(season[:4]) + month = int(season[-2:]) + + start = pend.instance(coc.utils.get_season_start(month=month, year=year), tz=pend.UTC) + end = pend.instance(coc.utils.get_season_end(month=month, year=year), tz=pend.UTC) + + weeks = [] + for i in range(7): + week = start.add(weeks=i) + if week > end: + break + weeks.append(week.to_date_string()) + + return weeks From 329b95d858adb8d62fe75ed4cee37fe2cda97934 Mon Sep 17 00:00:00 2001 From: MagicTheDev Date: Tue, 1 Apr 2025 06:04:46 -0500 Subject: [PATCH 066/174] feat: v2 --- routers/v2/dates/endpoints.py | 65 ++++++++++++++++++++++++++++++++++ routers/v2/player/endpoints.py | 65 +++++++++++++++++----------------- utils/time.py | 4 ++- 3 files changed, 101 insertions(+), 33 deletions(-) create mode 100644 routers/v2/dates/endpoints.py diff --git a/routers/v2/dates/endpoints.py b/routers/v2/dates/endpoints.py new file mode 100644 index 00000000..a23a71a9 --- /dev/null +++ b/routers/v2/dates/endpoints.py @@ -0,0 +1,65 @@ +import pendulum as pend +from fastapi import HTTPException +from fastapi import APIRouter, Query, Request +from typing import Annotated +from utils.time import ( + gen_season_date, gen_raid_date, gen_legend_date, + gen_games_season, season_start_end, get_season_raid_weeks +) +from utils.utils import fix_tag, remove_id_fields, check_authentication +from utils.database import MongoClient as mongo + + +router = APIRouter(prefix="/v2",tags=["Dates"], include_in_schema=True) + + + +@router.get("/dates/seasons", + name="Get season dates") +async def current_season(request: Request, number_of_seasons: int = 0, as_text: bool = False): + return {"items": gen_season_date(num_seasons=number_of_seasons, as_text=as_text)} + + + +@router.get("/dates/raid-weekends", + name="Get raid weekend dates") +async def current_season(request: Request, number_of_weeks: int = 0): + return {"items": gen_raid_date(num_weeks=number_of_weeks)} + + +@router.get("/dates/current", + name="Get current dates") +async def legend_date(request: Request): + return { + "season": gen_season_date(), + "raid": gen_raid_date(), + "legend": gen_legend_date(), + "clan-games": gen_games_season(), + } + +@router.get("/dates/season-start-end", + name="Get season start and end dates") +async def dates_season_start_end(request: Request, season: str = "", gold_pass_season: bool = False): + if not season: + season = gen_season_date() + season_start, season_end = season_start_end(season=season, gold_pass_season=gold_pass_season) + return { + "season_start": season_start, + "season_end": season_end, + } + +@router.get("/dates/season-raid-dates", + name="Get raid weekends for a season") +async def dates_raid_season_dates(request: Request, season: str = ""): + if not season: + season = gen_season_date() + return { + "items": get_season_raid_weeks(season=season), + } + + + + + + + diff --git a/routers/v2/player/endpoints.py b/routers/v2/player/endpoints.py index c3e3674b..714e738c 100644 --- a/routers/v2/player/endpoints.py +++ b/routers/v2/player/endpoints.py @@ -4,6 +4,7 @@ from fastapi import HTTPException from fastapi import APIRouter, Query, Request +from utils.time import get_season_raid_weeks, season_start_end, CLASH_ISO_FORMAT from utils.utils import fix_tag, remove_id_fields, bulk_requests from utils.database import MongoClient as mongo from routers.v2.player.models import PlayerTagsRequest @@ -93,65 +94,66 @@ async def players_summary_top(season: str, request: Request, body: PlayerTagsReq {'$and': [{'tag': {'$in': body.player_tags}}]} ).to_list(length=None) - new_data = defaultdict(lambda: defaultdict(dict)) + new_data = defaultdict(list) def key_fetcher(d: dict, attr: str): keys = attr.split(".") - data = None for i, key in enumerate(keys): - data = d.get(key, {}) if i < len(keys) - 1 else d.get(key, 0) - return data + d = d.get(key, {}) if i < len(keys) - 1 else d.get(key, 0) + return d - for option in [ + options = [ f'gold.{season}', f'elixir.{season}', f'dark_elixir.{season}', f'activity.{season}', f'attack_wins.{season}', f'season_trophies.{season}', - f'donations.{season}.donated', f'donations.{season}.received', - ]: + (f'donations.{season}.donated', "donated"), (f'donations.{season}.received', "received"), + ] + + for option in options: + if isinstance(option, tuple): + option, name = option + else: + option = option + name = option.split(".")[0] top_results = sorted(results, key=lambda d: key_fetcher(d, attr=option), reverse=True)[:limit] for count, result in enumerate(top_results, 1): field = key_fetcher(result, attr=option) - new_data[result["tag"]][option] = field | {"count" : count} + new_data[name].append({"tag" : result["tag"], "value" : field, "count" : count}) season_raid_weeks = get_season_raid_weeks(season=season) - def capital_gold_donated(elem): cc_results = [] for week in season_raid_weeks: - week_result = elem.get('capital_gold', {}).get(week) - cc_results.append(ClanCapitalWeek(week_result)) - return sum([sum(cap.donated) for cap in cc_results]) - + week_result = elem.get('capital_gold', {}).get(week, {}) + cc_results.append(sum(week_result.get('donate', []))) + return sum(cc_results) top_capital_donos = sorted(results, key=capital_gold_donated, reverse=True)[:limit] - text += f'**{bot.emoji.capital_gold} CG Donated\n**' for count, result in enumerate(top_capital_donos, 1): cg_donated = capital_gold_donated(result) - text += f"`{count:<2} {'{:,}'.format(cg_donated):7} \u200e{result['name']}`\n" - text += '\n' + new_data["capital_donated"].append({"tag": result["tag"], "value": cg_donated, "count": count}) def capital_gold_raided(elem): cc_results = [] for week in season_raid_weeks: - week_result = elem.get('capital_gold', {}).get(week) - cc_results.append(ClanCapitalWeek(week_result)) - return sum([sum(cap.raided) for cap in cc_results]) - + week_result = elem.get('capital_gold', {}).get(week, {}) + cc_results.append(sum(week_result.get('raid', []))) + return sum(cc_results) top_capital_raided = sorted(results, key=capital_gold_raided, reverse=True)[:limit] - text += f'**{bot.emoji.capital_gold} CG Raided\n**' for count, result in enumerate(top_capital_raided, 1): cg_raided = capital_gold_raided(result) - text += f"`{count:<2} {'{:,}'.format(cg_raided):7} \u200e{result['name']}`\n" - text += '\n' + new_data["capital_raided"].append({"tag": result["tag"], "value": cg_raided, "count": count}) # ADD HITRATE - SEASON_START, SEASON_END = gen_season_start_end_as_iso(season=season) + SEASON_START, SEASON_END = season_start_end(season=season) + SEASON_START, SEASON_END = SEASON_START.format(CLASH_ISO_FORMAT), SEASON_END.format(CLASH_ISO_FORMAT) + pipeline = [ { '$match': { '$and': [ { '$or': [ - {'data.clan.members.tag': {'$in': member_tags}}, - {'data.opponent.members.tag': {'$in': member_tags}}, + {'data.clan.members.tag': {'$in': body.player_tags}}, + {'data.opponent.members.tag': {'$in': body.player_tags}}, ] }, {'data.preparationStartTime': {'$gte': SEASON_START}}, @@ -188,7 +190,7 @@ def capital_gold_raided(elem): {'$group': {'_id': '$uniqueKey', 'data': {'$first': '$data'}}}, {'$project': {'members': {'$concatArrays': ['$data.clan.members', '$data.opponent.members']}}}, {'$unwind': '$members'}, - {'$match': {'members.tag': {'$in': member_tags}}}, + {'$match': {'members.tag': {'$in': body.player_tags}}}, { '$project': { '_id': 0, @@ -207,11 +209,10 @@ def capital_gold_raided(elem): {'$sort': {'totalStars': -1}}, {'$limit': limit}, ] - war_star_results = await bot.clan_war.aggregate(pipeline=pipeline).to_list(length=None) + war_star_results = await mongo.clan_wars.aggregate(pipeline=pipeline).to_list(length=None) - if war_star_results: - text += f'**{bot.emoji.war_star} War Stars\n**' - for count, result in enumerate(war_star_results, 1): - text += f"`{count:<2} {'{:,}'.format(result.get('totalStars')):3} \u200e{result.get('name')}`\n" + new_data["war_stars"] = [{"tag": result["_id"], "value": result["totalStars"], "count": count} + for count, result in enumerate(war_star_results, 1)] + return {"items" : [{key : value} for key, value in new_data.items()]} diff --git a/utils/time.py b/utils/time.py index e8c6ace0..b22f0a45 100644 --- a/utils/time.py +++ b/utils/time.py @@ -3,6 +3,8 @@ import coc import calendar +CLASH_ISO_FORMAT = 'YYYYMMDDTHHmmss.000[Z]' + class DiscordTimeStamp: def __init__(self, date: pend.DateTime): self.slash_date = f'' @@ -195,7 +197,7 @@ def get_season_raid_weeks(season: str): weeks = [] for i in range(7): - week = start.add(weeks=i) + week = start.add(weeks=i).add(days=4) if week > end: break weeks.append(week.to_date_string()) From 1851422f442cd8a63eea27326bf86a3947e1a59c Mon Sep 17 00:00:00 2001 From: Destinea Date: Thu, 3 Apr 2025 10:40:04 +0200 Subject: [PATCH 067/174] feat: Improved stars stats --- routers/v2/player/utils.py | 92 ++++++++++---------------------------- 1 file changed, 24 insertions(+), 68 deletions(-) diff --git a/routers/v2/player/utils.py b/routers/v2/player/utils.py index 993f74dd..9341b7a2 100644 --- a/routers/v2/player/utils.py +++ b/routers/v2/player/utils.py @@ -109,6 +109,7 @@ def group_legends_by_season(legends: dict) -> dict: season = grouped[season_key] + # Detect format type is_new_format = "new_attacks" in day_data or "new_defenses" in day_data if is_new_format: @@ -128,7 +129,6 @@ def group_legends_by_season(legends: dict) -> dict: day_data["trophies_gained_total"] = trophies_gained day_data["trophies_lost_total"] = trophies_lost day_data["trophies_total"] = trophies_total - else: attacks = day_data.get("attacks", []) defenses = day_data.get("defenses", []) @@ -143,8 +143,8 @@ def group_legends_by_season(legends: dict) -> dict: gained = day_data.get("trophies_gained_total", 0) lost = day_data.get("trophies_lost_total", 0) - attacks = count_number_of_attacks_from_list(day_data.get("attacks", [])) - defenses = count_number_of_attacks_from_list(day_data.get("defenses", [])) + attacks = day_data.get("num_attacks", 0) + defenses = day_data.get("num_defenses", 0) end_trophies = day_data.get("end_trophies", 0) season["season_end_trophies"] = end_trophies @@ -156,15 +156,27 @@ def group_legends_by_season(legends: dict) -> dict: season["season_total_attacks"] += attacks season["season_total_defenses"] += defenses - num_attacks = day_data.get("num_attacks", 0) - attack_distribution = determine_star_distribution(day_data.get("attacks", []), num_attacks) - for star, count in attack_distribution.items(): - season["season_stars_distribution_attacks"][star] += count - - num_defenses = day_data.get("num_defenses", 0) - defense_distribution = determine_star_distribution(day_data.get("defenses", []), num_defenses) - for star, count in defense_distribution.items(): - season["season_stars_distribution_defenses"][star] += count + for trophies in day_data.get("attacks", []): + if 5 <= trophies <= 15: + season["season_stars_distribution_attacks"][1] += 1 + elif 16 <= trophies <= 32: + season["season_stars_distribution_attacks"][2] += 1 + elif trophies == 40: + season["season_stars_distribution_attacks"][3] += 1 + else: + season["season_stars_distribution_attacks"][2] += 1 + + for trophies in day_data.get("defenses", []): + if 0 <= trophies <= 4: + season["season_stars_distribution_defenses"][0] += 1 + elif 5 <= trophies <= 15: + season["season_stars_distribution_defenses"][1] += 1 + elif 16 <= trophies <= 32: + season["season_stars_distribution_defenses"][2] += 1 + elif trophies == 40: + season["season_stars_distribution_defenses"][3] += 1 + else: + season["season_stars_distribution_defenses"][2] += 1 total_possible = len(season["days"]) * 8 season["season_total_attacks_defenses_possible"] = total_possible @@ -219,62 +231,6 @@ def group_legends_by_season(legends: dict) -> dict: return grouped -def determine_star_distribution(trophies_list: list[int], expected_count: int) -> dict[int, int]: - distribution = {0: 0, 1: 0, 2: 0, 3: 0} - - for trophies in trophies_list: - if trophies == 320: - distribution[3] += 8 - elif 280 < trophies < 320: - distribution[2] += 8 - elif trophies == 280: - distribution[3] += 7 - elif 240 < trophies < 280: - distribution[2] += 7 - elif trophies == 240: - distribution[3] += 6 - elif 200 < trophies < 240: - distribution[2] += 6 - elif trophies == 200: - distribution[3] += 5 - elif 160 < trophies < 200: - distribution[2] += 5 - elif trophies == 160: - distribution[3] += 4 - elif 120 < trophies < 160: - distribution[2] += 4 - elif trophies == 120: - distribution[3] += 3 - elif 80 < trophies < 120: - distribution[2] += 3 - elif trophies == 80: - distribution[3] += 2 - elif 40 < trophies < 80: - distribution[2] += 2 - elif trophies == 40: - distribution[3] += 1 - elif 5 <= trophies <= 15: - distribution[1] += 1 - elif trophies <= 4: - distribution[0] += 1 - else: - distribution[2] += 1 # fallback - - # Normalize the distribution - total = sum(distribution.values()) - if total > expected_count: - surplus = total - expected_count - # Remove stars from 3 to 0 - for star in [2, 1, 3, 0]: - removed = min(surplus, distribution[star]) - distribution[star] -= removed - surplus -= removed - if surplus == 0: - break - - return distribution - - def count_number_of_attacks_from_list(attacks: list[int]) -> int: """Count the number of attacks from a list of attack trophies.""" count = 0 From ca23e873b3af991ef9c6e6a7d823424be960754e Mon Sep 17 00:00:00 2001 From: Destinea Date: Thu, 3 Apr 2025 12:44:08 +0200 Subject: [PATCH 068/174] feat: War summary --- routers/v2/clan/models.py | 1 - routers/v2/war/endpoints.py | 361 ++++++++++++++++++------------------ routers/v2/war/utils.py | 152 +++++++++++++++ 3 files changed, 330 insertions(+), 184 deletions(-) create mode 100644 routers/v2/war/utils.py diff --git a/routers/v2/clan/models.py b/routers/v2/clan/models.py index 1080813f..799bb703 100644 --- a/routers/v2/clan/models.py +++ b/routers/v2/clan/models.py @@ -1,6 +1,5 @@ from typing import List from pydantic import BaseModel - class ClanTagsRequest(BaseModel): clan_tags: List[str] \ No newline at end of file diff --git a/routers/v2/war/endpoints.py b/routers/v2/war/endpoints.py index bf9669e3..eb784c0d 100644 --- a/routers/v2/war/endpoints.py +++ b/routers/v2/war/endpoints.py @@ -1,22 +1,21 @@ -import operator - -import coc +from fastapi.responses import JSONResponse import pendulum as pend -from collections import defaultdict from fastapi import HTTPException -from fastapi import APIRouter, Query, Request, Depends +from fastapi import APIRouter, Request + +from routers.v2.clan.models import ClanTagsRequest +from routers.v2.war.utils import fetch_current_war_info_bypass, fetch_league_info, ranking_create, \ + fetch_war_league_infos +from utils.time import is_cwl from utils.utils import fix_tag, remove_id_fields -from utils.time import gen_season_date, gen_raid_date from utils.database import MongoClient as mongo -from routers.v2.player.models import PlayerTagsRequest - -router = APIRouter(prefix="/v2",tags=["War"], include_in_schema=True) +router = APIRouter(prefix="/v2", tags=["War"], include_in_schema=True) @router.get("/war/{clan_tag}/previous", - tags=["War Endpoints"], - name="Previous Wars for a clan") + tags=["War Endpoints"], + name="Previous Wars for a clan") async def war_previous( clan_tag: str, request: Request = Request, @@ -42,7 +41,7 @@ async def war_previous( full_wars = await mongo.clan_wars.find(query).sort("data.endTime", -1).limit(limit).to_list(length=None) - #early on we had some duplicate wars, so just filter them out + # early on we had some duplicate wars, so just filter them out found_ids = set() new_wars = [] for war in full_wars: @@ -53,7 +52,7 @@ async def war_previous( new_wars.append(war.get("data")) found_ids.add(id) - return remove_id_fields({"items" : new_wars}) + return remove_id_fields({"items": new_wars}) @router.get("/cwl/{clan_tag}/ranking-history", name="CWL ranking history for a clan") @@ -61,7 +60,7 @@ async def cwl_ranking_history(clan_tag: str, request: Request): clan_tag = fix_tag(clan_tag) # Fetch all CWL group documents containing the clan - results = await mongo.cwl_groups.find({"data.clans.tag": clan_tag}, {"data.clans" : 0}).to_list(length=None) + results = await mongo.cwl_groups.find({"data.clans.tag": clan_tag}, {"data.clans": 0}).to_list(length=None) if not results: raise HTTPException(status_code=404, detail="No CWL Data Found") @@ -83,7 +82,7 @@ async def cwl_ranking_history(clan_tag: str, request: Request): matching_wars_data = await mongo.clan_wars.find({ "data.tag": {"$in": list(all_war_tags)} }, - {"data.clan.members" : 0, "data.opponent.members" : 0} + {"data.clan.members": 0, "data.opponent.members": 0} ).to_list(length=None) # Build a lookup dictionary keyed by war tag war_lookup = {w["data"]["tag"]: w["data"] for w in matching_wars_data} @@ -138,173 +137,169 @@ async def cwl_ranking_history(clan_tag: str, request: Request): @router.get("/cwl/league-thresholds", name="Promo and demotion thresholds for CWL leagues") async def cwl_league_thresholds(request: Request): return { - "items": [ - { - "id": 48000001, - "name": "Bronze League III", - "promo" : 3, - "demote" : 9 - }, - { - "id": 48000002, - "name": "Bronze League II", - "promo" : 3, - "demote" : 8 - }, - { - "id": 48000003, - "name": "Bronze League I", - "promo" : 3, - "demote" : 8 - }, - { - "id": 48000004, - "name": "Silver League III", - "promo" : 2, - "demote" : 8 - }, - { - "id": 48000005, - "name": "Silver League II", - "promo" : 2, - "demote" : 7 - }, - { - "id": 48000006, - "name": "Silver League I", - "promo" : 2, - "demote" : 7 - }, - { - "id": 48000007, - "name": "Gold League III", - "promo" : 2, - "demote" : 7 - }, - { - "id": 48000008, - "name": "Gold League II", - "promo" : 2, - "demote" : 7 - }, - { - "id": 48000009, - "name": "Gold League I", - "promo" : 2, - "demote" : 7 - }, - { - "id": 48000010, - "name": "Crystal League III", - "promo" : 2, - "demote" : 7 - }, - { - "id": 48000011, - "name": "Crystal League II", - "promo" : 2, - "demote" : 7 - }, - { - "id": 48000012, - "name": "Crystal League I", - "promo" : 1, - "demote" : 7 - }, - { - "id": 48000013, - "name": "Master League III", - "promo" : 1, - "demote" : 7 - }, - { - "id": 48000014, - "name": "Master League II", - "promo" : 1, - "demote" : 7 - }, - { - "id": 48000015, - "name": "Master League I", - "promo" : 1, - "demote" : 7 - }, - { - "id": 48000016, - "name": "Champion League III", - "promo" : 1, - "demote" : 7 - }, - { - "id": 48000017, - "name": "Champion League II", - "promo" : 1, - "demote" : 7 - }, - { - "id": 48000018, - "name": "Champion League I", - "promo" : 0, - "demote" : 6 - } - ] + "items": [ + { + "id": 48000001, + "name": "Bronze League III", + "promo": 3, + "demote": 9 + }, + { + "id": 48000002, + "name": "Bronze League II", + "promo": 3, + "demote": 8 + }, + { + "id": 48000003, + "name": "Bronze League I", + "promo": 3, + "demote": 8 + }, + { + "id": 48000004, + "name": "Silver League III", + "promo": 2, + "demote": 8 + }, + { + "id": 48000005, + "name": "Silver League II", + "promo": 2, + "demote": 7 + }, + { + "id": 48000006, + "name": "Silver League I", + "promo": 2, + "demote": 7 + }, + { + "id": 48000007, + "name": "Gold League III", + "promo": 2, + "demote": 7 + }, + { + "id": 48000008, + "name": "Gold League II", + "promo": 2, + "demote": 7 + }, + { + "id": 48000009, + "name": "Gold League I", + "promo": 2, + "demote": 7 + }, + { + "id": 48000010, + "name": "Crystal League III", + "promo": 2, + "demote": 7 + }, + { + "id": 48000011, + "name": "Crystal League II", + "promo": 2, + "demote": 7 + }, + { + "id": 48000012, + "name": "Crystal League I", + "promo": 1, + "demote": 7 + }, + { + "id": 48000013, + "name": "Master League III", + "promo": 1, + "demote": 7 + }, + { + "id": 48000014, + "name": "Master League II", + "promo": 1, + "demote": 7 + }, + { + "id": 48000015, + "name": "Master League I", + "promo": 1, + "demote": 7 + }, + { + "id": 48000016, + "name": "Champion League III", + "promo": 1, + "demote": 7 + }, + { + "id": 48000017, + "name": "Champion League II", + "promo": 1, + "demote": 7 + }, + { + "id": 48000018, + "name": "Champion League I", + "promo": 0, + "demote": 6 + } + ] } -def ranking_create(data: dict): - # Initialize accumulators - star_dict = defaultdict(int) - dest_dict = defaultdict(int) - tag_to_name = {} - rounds_won = defaultdict(int) - rounds_lost = defaultdict(int) - rounds_tied = defaultdict(int) - - for rnd in data.get("rounds", []): - for war in rnd.get("warTags", []): - if war is None: - continue - - war_obj = coc.ClanWar(data=war, client=None) - status = str(war_obj.status) - if status == "won": - rounds_won[war_obj.clan.tag] += 1 - rounds_lost[war_obj.opponent.tag] += 1 - star_dict[war_obj.clan.tag] += 10 - elif status == "lost": - rounds_won[war_obj.opponent.tag] += 1 - rounds_lost[war_obj.clan.tag] += 1 - star_dict[war_obj.opponent.tag] += 10 - else: - rounds_tied[war_obj.clan.tag] += 1 - rounds_tied[war_obj.opponent.tag] += 1 - - tag_to_name[war_obj.clan.tag] = war_obj.clan.name - tag_to_name[war_obj.opponent.tag] = war_obj.opponent.name - - for clan in [war_obj.clan, war_obj.opponent]: - star_dict[clan.tag] += clan.stars - dest_dict[clan.tag] += clan.destruction - - # Create a list of stats per clan for sorting - star_list = [] - for tag, stars in star_dict.items(): - destruction = dest_dict[tag] - name = tag_to_name.get(tag, "") - star_list.append([name, tag, stars, destruction]) - - # Sort descending by stars then destruction - sorted_list = sorted(star_list, key=lambda x: (x[2], x[3]), reverse=True) - return [ - { - "name": x[0], - "tag": x[1], - "stars": x[2], - "destruction": x[3], - "rounds": { - "won": rounds_won.get(x[1], 0), - "tied": rounds_tied.get(x[1], 0), - "lost": rounds_lost.get(x[1], 0) - } - } - for x in sorted_list - ] \ No newline at end of file + +@router.get( + "/clan/{clan_tag}/war-summary", + name="Get full war and CWL summary for a clan, including war state, CWL rounds and war details" +) +async def get_clan_war_summary(clan_tag: str): + war_info = fetch_current_war_info_bypass(clan_tag) + league_info = None + war_league_infos = [] + + if is_cwl(): + league_info = fetch_league_info(clan_tag) + if league_info and "rounds" in league_info: + for round_entry in league_info["rounds"]: + war_tags = round_entry.get("warTags", []) + war_league_infos.extend(fetch_war_league_infos(war_tags)) + + return JSONResponse(content={ + "isInWar": war_info["state"] == "war", + "isInCwl": league_info is not None and war_info["state"] == "notInWar", + "war_info": war_info, + "league_info": league_info, + "war_league_infos": war_league_infos + }) + + +@router.post("/clan/war-summary", name="Get full war and CWL summary for multiple clans") +async def get_multiple_clan_war_summary(body: ClanTagsRequest, request: Request): + if not body.clan_tags: + raise HTTPException(status_code=400, detail="clan_tags cannot be empty") + + results = [] + for clan_tag in body.clan_tags: + war_info = fetch_current_war_info_bypass(clan_tag) + league_info = None + war_league_infos = [] + + if is_cwl(): + league_info = fetch_league_info(clan_tag) + if league_info and "rounds" in league_info: + for round_entry in league_info["rounds"]: + war_tags = round_entry.get("warTags", []) + war_league_infos.extend(fetch_war_league_infos(war_tags)) + + results.append({ + "clan_tag": clan_tag, + "isInWar": war_info["state"] == "war", + "isInCwl": league_info is not None and war_info["state"] == "notInWar", + "war_info": war_info, + "league_info": league_info, + "war_league_infos": war_league_infos + }) + + return JSONResponse(content={"items": results}) \ No newline at end of file diff --git a/routers/v2/war/utils.py b/routers/v2/war/utils.py new file mode 100644 index 00000000..94220882 --- /dev/null +++ b/routers/v2/war/utils.py @@ -0,0 +1,152 @@ +from collections import defaultdict + +import coc +import requests +import time + + +def ranking_create(data: dict): + # Initialize accumulators + star_dict = defaultdict(int) + dest_dict = defaultdict(int) + tag_to_name = {} + rounds_won = defaultdict(int) + rounds_lost = defaultdict(int) + rounds_tied = defaultdict(int) + + for rnd in data.get("rounds", []): + for war in rnd.get("warTags", []): + if war is None: + continue + + war_obj = coc.ClanWar(data=war, client=None) + status = str(war_obj.status) + if status == "won": + rounds_won[war_obj.clan.tag] += 1 + rounds_lost[war_obj.opponent.tag] += 1 + star_dict[war_obj.clan.tag] += 10 + elif status == "lost": + rounds_won[war_obj.opponent.tag] += 1 + rounds_lost[war_obj.clan.tag] += 1 + star_dict[war_obj.opponent.tag] += 10 + else: + rounds_tied[war_obj.clan.tag] += 1 + rounds_tied[war_obj.opponent.tag] += 1 + + tag_to_name[war_obj.clan.tag] = war_obj.clan.name + tag_to_name[war_obj.opponent.tag] = war_obj.opponent.name + + for clan in [war_obj.clan, war_obj.opponent]: + star_dict[clan.tag] += clan.stars + dest_dict[clan.tag] += clan.destruction + + # Create a list of stats per clan for sorting + star_list = [] + for tag, stars in star_dict.items(): + destruction = dest_dict[tag] + name = tag_to_name.get(tag, "") + star_list.append([name, tag, stars, destruction]) + + # Sort descending by stars then destruction + sorted_list = sorted(star_list, key=lambda x: (x[2], x[3]), reverse=True) + return [ + { + "name": x[0], + "tag": x[1], + "stars": x[2], + "destruction": x[3], + "rounds": { + "won": rounds_won.get(x[1], 0), + "tied": rounds_tied.get(x[1], 0), + "lost": rounds_lost.get(x[1], 0) + } + } + for x in sorted_list + ] + +def fetch_current_war_info(clan_tag, bypass=False): + try: + tag_encoded = clan_tag.replace("#", "%23") + url = f"https://proxy.clashk.ing/v1/clans/{tag_encoded}/currentwar" + res = requests.get(url, timeout=15) + + if res.status_code == 200: + data = res.json() + if data.get("state") != "notInWar" and data.get("reason") != "accessDenied": + return {"state": "war", "currentWarInfo": data, "bypass": bypass} + elif data.get("state") == "notInWar": + return {"state": "notInWar"} + elif res.status_code == 403: + return {"state": "accessDenied"} + except Exception as e: + print(f"Error fetching current war info: {e}") + + return {"state": "notInWar"} + + +def fetch_opponent_tag(clan_tag): + tag_clean = clan_tag.lstrip("#") + url = f"https://proxy.clashk.ing/v1/war/{tag_clean}/basic" + res = requests.get(url) + + if res.status_code == 200: + data = res.json() + if "clans" in data and isinstance(data["clans"], list): + for tag in data["clans"]: + if tag != clan_tag: + return tag + return None + + +def fetch_current_war_info_bypass(clan_tag): + war = fetch_current_war_info(clan_tag) + if war["state"] == "accessDenied": + opponent_tag = fetch_opponent_tag(clan_tag) + if opponent_tag: + return fetch_current_war_info(opponent_tag, bypass=True) + return war + + +def fetch_league_info(clan_tag): + try: + tag_encoded = clan_tag.replace("#", "%23") + url = f"https://proxy.clashk.ing/v1/clans/{tag_encoded}/currentwar/leaguegroup" + res = requests.get(url, timeout=15) + + if res.status_code == 200: + data = res.json() + if data.get("state") != "notInWar": + return data + except Exception as e: + print(f"Error fetching CWL info: {e}") + return None + +def fetch_war_league_info(war_tag): + retry_count = 0 + war_tag_encoded = war_tag.replace('#', '%23') + while retry_count < 3: + try: + url = f"https://proxy.clashk.ing/v1/clanwarleagues/wars/{war_tag_encoded}" + response = requests.get(url) + if response.status_code == 200: + data = response.json() + if data.get("state") != "notInWar": + return data + return None + else: + retry_count += 1 + time.sleep(5) + except Exception: + retry_count += 1 + time.sleep(5) + return None + + +def fetch_war_league_infos(war_tags): + infos = [] + for tag in war_tags: + if tag != "#0": + info = fetch_war_league_info(tag) + if info: + infos.append(info) + return infos \ No newline at end of file From 9fa636b3f5239e9ef67f031e5750809319ef126f Mon Sep 17 00:00:00 2001 From: Destinea Date: Thu, 3 Apr 2025 16:23:04 +0200 Subject: [PATCH 069/174] chore: Renamed war endpoint --- routers/v2/war/endpoints.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/routers/v2/war/endpoints.py b/routers/v2/war/endpoints.py index eb784c0d..679e9de2 100644 --- a/routers/v2/war/endpoints.py +++ b/routers/v2/war/endpoints.py @@ -251,7 +251,7 @@ async def cwl_league_thresholds(request: Request): @router.get( - "/clan/{clan_tag}/war-summary", + "/war/{clan_tag}/war-summary", name="Get full war and CWL summary for a clan, including war state, CWL rounds and war details" ) async def get_clan_war_summary(clan_tag: str): @@ -275,7 +275,7 @@ async def get_clan_war_summary(clan_tag: str): }) -@router.post("/clan/war-summary", name="Get full war and CWL summary for multiple clans") +@router.post("/war/war-summary", name="Get full war and CWL summary for multiple clans") async def get_multiple_clan_war_summary(body: ClanTagsRequest, request: Request): if not body.clan_tags: raise HTTPException(status_code=400, detail="clan_tags cannot be empty") From 8ea9107118d772c1a84567ea582af3e57acab2bf Mon Sep 17 00:00:00 2001 From: Destinea Date: Thu, 3 Apr 2025 16:32:01 +0200 Subject: [PATCH 070/174] chore: Changed tag --- routers/v2/war/endpoints.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/routers/v2/war/endpoints.py b/routers/v2/war/endpoints.py index 679e9de2..88a5dceb 100644 --- a/routers/v2/war/endpoints.py +++ b/routers/v2/war/endpoints.py @@ -14,7 +14,6 @@ @router.get("/war/{clan_tag}/previous", - tags=["War Endpoints"], name="Previous Wars for a clan") async def war_previous( clan_tag: str, @@ -302,4 +301,4 @@ async def get_multiple_clan_war_summary(body: ClanTagsRequest, request: Request) "war_league_infos": war_league_infos }) - return JSONResponse(content={"items": results}) \ No newline at end of file + return JSONResponse(content={"items": results}) From 9f5e19ed997950f36ebd075d0aa21eac8a94eaea Mon Sep 17 00:00:00 2001 From: Destinea Date: Thu, 3 Apr 2025 16:53:41 +0200 Subject: [PATCH 071/174] feat: Used Asyncio on war endpoint --- routers/v2/war/endpoints.py | 19 +++++++++++-------- routers/v2/war/utils.py | 20 ++++++++++---------- 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/routers/v2/war/endpoints.py b/routers/v2/war/endpoints.py index 88a5dceb..a75dc869 100644 --- a/routers/v2/war/endpoints.py +++ b/routers/v2/war/endpoints.py @@ -1,3 +1,5 @@ +import asyncio + from fastapi.responses import JSONResponse import pendulum as pend from fastapi import HTTPException @@ -279,26 +281,27 @@ async def get_multiple_clan_war_summary(body: ClanTagsRequest, request: Request) if not body.clan_tags: raise HTTPException(status_code=400, detail="clan_tags cannot be empty") - results = [] - for clan_tag in body.clan_tags: - war_info = fetch_current_war_info_bypass(clan_tag) + async def process_clan(clan_tag: str): + war_info = await fetch_current_war_info_bypass(clan_tag) league_info = None war_league_infos = [] if is_cwl(): - league_info = fetch_league_info(clan_tag) + league_info = await fetch_league_info(clan_tag) if league_info and "rounds" in league_info: + war_tags = [] for round_entry in league_info["rounds"]: - war_tags = round_entry.get("warTags", []) - war_league_infos.extend(fetch_war_league_infos(war_tags)) + war_tags.extend(round_entry.get("warTags", [])) + war_league_infos = await fetch_war_league_infos(war_tags) - results.append({ + return { "clan_tag": clan_tag, "isInWar": war_info["state"] == "war", "isInCwl": league_info is not None and war_info["state"] == "notInWar", "war_info": war_info, "league_info": league_info, "war_league_infos": war_league_infos - }) + } + results = await asyncio.gather(*(process_clan(tag) for tag in body.clan_tags)) return JSONResponse(content={"items": results}) diff --git a/routers/v2/war/utils.py b/routers/v2/war/utils.py index 94220882..9442a47a 100644 --- a/routers/v2/war/utils.py +++ b/routers/v2/war/utils.py @@ -64,7 +64,7 @@ def ranking_create(data: dict): for x in sorted_list ] -def fetch_current_war_info(clan_tag, bypass=False): +async def fetch_current_war_info(clan_tag, bypass=False): try: tag_encoded = clan_tag.replace("#", "%23") url = f"https://proxy.clashk.ing/v1/clans/{tag_encoded}/currentwar" @@ -84,7 +84,7 @@ def fetch_current_war_info(clan_tag, bypass=False): return {"state": "notInWar"} -def fetch_opponent_tag(clan_tag): +async def fetch_opponent_tag(clan_tag): tag_clean = clan_tag.lstrip("#") url = f"https://proxy.clashk.ing/v1/war/{tag_clean}/basic" res = requests.get(url) @@ -98,16 +98,16 @@ def fetch_opponent_tag(clan_tag): return None -def fetch_current_war_info_bypass(clan_tag): - war = fetch_current_war_info(clan_tag) +async def fetch_current_war_info_bypass(clan_tag): + war = await fetch_current_war_info(clan_tag) if war["state"] == "accessDenied": - opponent_tag = fetch_opponent_tag(clan_tag) + opponent_tag = await fetch_opponent_tag(clan_tag) if opponent_tag: - return fetch_current_war_info(opponent_tag, bypass=True) + return await fetch_current_war_info(opponent_tag, bypass=True) return war -def fetch_league_info(clan_tag): +async def fetch_league_info(clan_tag): try: tag_encoded = clan_tag.replace("#", "%23") url = f"https://proxy.clashk.ing/v1/clans/{tag_encoded}/currentwar/leaguegroup" @@ -121,7 +121,7 @@ def fetch_league_info(clan_tag): print(f"Error fetching CWL info: {e}") return None -def fetch_war_league_info(war_tag): +async def fetch_war_league_info(war_tag): retry_count = 0 war_tag_encoded = war_tag.replace('#', '%23') while retry_count < 3: @@ -142,11 +142,11 @@ def fetch_war_league_info(war_tag): return None -def fetch_war_league_infos(war_tags): +async def fetch_war_league_infos(war_tags): infos = [] for tag in war_tags: if tag != "#0": - info = fetch_war_league_info(tag) + info = await fetch_war_league_info(tag) if info: infos.append(info) return infos \ No newline at end of file From 80cb4c944edc81c4ef57864696e5c5e769996dd9 Mon Sep 17 00:00:00 2001 From: Destinea Date: Fri, 4 Apr 2025 11:18:30 +0200 Subject: [PATCH 072/174] feat: War & CWL stats --- routers/v2/war/endpoints.py | 13 ++-- routers/v2/war/utils.py | 134 +++++++++++++++++++++++++++++++++++- 2 files changed, 138 insertions(+), 9 deletions(-) diff --git a/routers/v2/war/endpoints.py b/routers/v2/war/endpoints.py index a75dc869..e7d016e5 100644 --- a/routers/v2/war/endpoints.py +++ b/routers/v2/war/endpoints.py @@ -7,7 +7,7 @@ from routers.v2.clan.models import ClanTagsRequest from routers.v2.war.utils import fetch_current_war_info_bypass, fetch_league_info, ranking_create, \ - fetch_war_league_infos + fetch_war_league_infos, enrich_league_info from utils.time import is_cwl from utils.utils import fix_tag, remove_id_fields from utils.database import MongoClient as mongo @@ -256,16 +256,16 @@ async def cwl_league_thresholds(request: Request): name="Get full war and CWL summary for a clan, including war state, CWL rounds and war details" ) async def get_clan_war_summary(clan_tag: str): - war_info = fetch_current_war_info_bypass(clan_tag) + war_info = await fetch_current_war_info_bypass(clan_tag) league_info = None war_league_infos = [] if is_cwl(): - league_info = fetch_league_info(clan_tag) + league_info = await fetch_league_info(clan_tag) if league_info and "rounds" in league_info: for round_entry in league_info["rounds"]: war_tags = round_entry.get("warTags", []) - war_league_infos.extend(fetch_war_league_infos(war_tags)) + war_league_infos.extend(await fetch_war_league_infos(war_tags)) return JSONResponse(content={ "isInWar": war_info["state"] == "war", @@ -289,10 +289,9 @@ async def process_clan(clan_tag: str): if is_cwl(): league_info = await fetch_league_info(clan_tag) if league_info and "rounds" in league_info: - war_tags = [] - for round_entry in league_info["rounds"]: - war_tags.extend(round_entry.get("warTags", [])) + war_tags = [tag for r in league_info["rounds"] for tag in r.get("warTags", [])] war_league_infos = await fetch_war_league_infos(war_tags) + league_info = await enrich_league_info(league_info, war_league_infos) return { "clan_tag": clan_tag, diff --git a/routers/v2/war/utils.py b/routers/v2/war/utils.py index 9442a47a..be0f6b15 100644 --- a/routers/v2/war/utils.py +++ b/routers/v2/war/utils.py @@ -1,5 +1,4 @@ from collections import defaultdict - import coc import requests import time @@ -121,6 +120,7 @@ async def fetch_league_info(clan_tag): print(f"Error fetching CWL info: {e}") return None + async def fetch_war_league_info(war_tag): retry_count = 0 war_tag_encoded = war_tag.replace('#', '%23') @@ -149,4 +149,134 @@ async def fetch_war_league_infos(war_tags): info = await fetch_war_league_info(tag) if info: infos.append(info) - return infos \ No newline at end of file + return infos + + +async def init_clan_summary_map(league_info): + clan_summary_map = {} + for clan in league_info.get("clans", []): + tag = clan.get("tag") + clan_summary_map[tag] = { + "total_stars": 0, + "attack_count": 0, + "total_destruction": 0.0, # destruction subie + "total_destruction_inflicted": 0.0, # destruction infligée + "wars_played": 0, + "members": defaultdict(lambda: { + "name": None, + "stars": 0, + "3_stars": 0, + "2_stars": 0, + "1_star": 0, + "0_star": 0, + "total_destruction": 0.0, + "attack_count": 0, + "defense_stars_taken": 0, + "defense_total_destruction": 0.0, + "defense_count": 0 + }) + } + return clan_summary_map + + +async def process_war_stats(war_league_infos, clan_summary_map): + for war in war_league_infos: + if war.get("state") not in ["inWar", "warEnded"]: + continue + + for side in ["clan", "opponent"]: + clan = war[side] + tag = clan["tag"] + if tag not in clan_summary_map: + continue + summary = clan_summary_map[tag] + + summary["total_stars"] += clan.get("stars", 0) + summary["wars_played"] += 1 + + for member in clan.get("members", []): + name = member["name"] + mtag = member.get("tag") + stats = summary["members"][mtag] + stats["name"] = name + + attack = member.get("attacks") + if attack: + attack = attack[0] if isinstance(attack, list) else attack + stars = attack["stars"] + destruction = attack["destructionPercentage"] + stats["stars"] += stars + stats["total_destruction"] += destruction + stats["attack_count"] += 1 + summary["total_destruction_inflicted"] += destruction + summary["attack_count"] += 1 + if stars == 3: + stats["3_stars"] += 1 + elif stars == 2: + stats["2_stars"] += 1 + elif stars == 1: + stats["1_star"] += 1 + else: + stats["0_star"] += 1 + + defense = member.get("bestOpponentAttack") + if defense: + stats["defense_stars_taken"] += defense["stars"] + stats["defense_total_destruction"] += defense["destructionPercentage"] + stats["defense_count"] += 1 + summary["total_destruction"] += defense["destructionPercentage"] + + +async def compute_clan_ranking(clan_summary_map): + clan_ranking = [ + { + "tag": tag, + "stars": summary["total_stars"], + "destruction": summary["total_destruction_inflicted"] + } + for tag, summary in clan_summary_map.items() + ] + sorted_clans = sorted(clan_ranking, key=lambda x: (-x["stars"], -x["destruction"])) + for idx, clan in enumerate(sorted_clans): + clan["rank"] = idx + 1 + return sorted_clans + + +async def enrich_league_info(league_info, war_league_infos): + clan_summary_map = await init_clan_summary_map(league_info) + await process_war_stats(war_league_infos, clan_summary_map) + sorted_clans = await compute_clan_ranking(clan_summary_map) + + league_info["total_stars"] = sum(c["stars"] for c in sorted_clans) + league_info["total_destruction"] = round(sum(c["destruction"] for c in sorted_clans), 2) + + for clan in league_info.get("clans", []): + tag = clan.get("tag") + if tag not in clan_summary_map: + continue + summary = clan_summary_map[tag] + clan["total_stars"] = summary["total_stars"] + clan["total_destruction"] = round(summary["total_destruction"], 2) + clan["total_destruction_inflicted"] = round(summary["total_destruction_inflicted"], 2) + clan["wars_played"] = summary["wars_played"] + clan["rank"] = next((r["rank"] for r in sorted_clans if r["tag"] == tag), None) + clan["attack_count"] = summary["attack_count"] + + for member in clan.get("members", []): + mtag = member.get("tag") + if mtag in summary["members"]: + stats = summary["members"][mtag] + member.update({ + "stars": stats["stars"], + "3_stars": stats["3_stars"], + "2_stars": stats["2_stars"], + "1_star": stats["1_star"], + "0_star": stats["0_star"], + "total_destruction": round(stats["total_destruction"], 2), + "attack_count": stats["attack_count"], + "defense_stars_taken": stats["defense_stars_taken"], + "defense_total_destruction": round(stats["defense_total_destruction"], 2), + "defense_count": stats["defense_count"] + }) + + return league_info From 11d19df17f8266a62895868122e53776445f084f Mon Sep 17 00:00:00 2001 From: Destinea Date: Fri, 4 Apr 2025 18:54:17 +0200 Subject: [PATCH 073/174] feat: Added CWL defenses stats --- routers/v2/war/utils.py | 54 +++++++++++++++++++++++++++++++---------- 1 file changed, 41 insertions(+), 13 deletions(-) diff --git a/routers/v2/war/utils.py b/routers/v2/war/utils.py index be0f6b15..bbc3d9f5 100644 --- a/routers/v2/war/utils.py +++ b/routers/v2/war/utils.py @@ -159,8 +159,9 @@ async def init_clan_summary_map(league_info): clan_summary_map[tag] = { "total_stars": 0, "attack_count": 0, - "total_destruction": 0.0, # destruction subie - "total_destruction_inflicted": 0.0, # destruction infligée + "missed_attacks": 0, + "total_destruction": 0.0, + "total_destruction_inflicted": 0.0, "wars_played": 0, "members": defaultdict(lambda: { "name": None, @@ -171,7 +172,12 @@ async def init_clan_summary_map(league_info): "0_star": 0, "total_destruction": 0.0, "attack_count": 0, + "missed_attacks": 0, "defense_stars_taken": 0, + "defense_3_stars": 0, + "defense_2_stars": 0, + "defense_1_star": 0, + "defense_0_star": 0, "defense_total_destruction": 0.0, "defense_count": 0 }) @@ -218,13 +224,25 @@ async def process_war_stats(war_league_infos, clan_summary_map): stats["1_star"] += 1 else: stats["0_star"] += 1 + elif war.get("state") == "warEnded": + stats["missed_attacks"] += 1 + summary["missed_attacks"] += 1 defense = member.get("bestOpponentAttack") if defense: - stats["defense_stars_taken"] += defense["stars"] + stars = defense["stars"] + stats["defense_stars_taken"] += stars stats["defense_total_destruction"] += defense["destructionPercentage"] stats["defense_count"] += 1 summary["total_destruction"] += defense["destructionPercentage"] + if stars == 3: + stats["defense_3_stars"] += 1 + elif stars == 2: + stats["defense_2_stars"] += 1 + elif stars == 1: + stats["defense_1_star"] += 1 + else: + stats["defense_0_star"] += 1 async def compute_clan_ranking(clan_summary_map): @@ -261,22 +279,32 @@ async def enrich_league_info(league_info, war_league_infos): clan["wars_played"] = summary["wars_played"] clan["rank"] = next((r["rank"] for r in sorted_clans if r["tag"] == tag), None) clan["attack_count"] = summary["attack_count"] + clan["missed_attacks"] = summary["missed_attacks"] for member in clan.get("members", []): mtag = member.get("tag") if mtag in summary["members"]: stats = summary["members"][mtag] member.update({ - "stars": stats["stars"], - "3_stars": stats["3_stars"], - "2_stars": stats["2_stars"], - "1_star": stats["1_star"], - "0_star": stats["0_star"], - "total_destruction": round(stats["total_destruction"], 2), - "attack_count": stats["attack_count"], - "defense_stars_taken": stats["defense_stars_taken"], - "defense_total_destruction": round(stats["defense_total_destruction"], 2), - "defense_count": stats["defense_count"] + "attacks": { + "stars": stats["stars"], + "3_stars": stats["3_stars"], + "2_stars": stats["2_stars"], + "1_star": stats["1_star"], + "0_star": stats["0_star"], + "total_destruction": round(stats["total_destruction"], 2), + "attack_count": stats["attack_count"], + "missed_attacks": stats["missed_attacks"] + }, + "defense": { + "stars": stats["defense_stars_taken"], + "3_stars": stats["defense_3_stars"], + "2_stars": stats["defense_2_stars"], + "1_star": stats["defense_1_star"], + "0_star": stats["defense_0_star"], + "total_destruction": round(stats["defense_total_destruction"], 2), + "defense_count": stats["defense_count"] + } }) return league_info From 9cb79c89feba29158794759c05d6985a38b25ade Mon Sep 17 00:00:00 2001 From: Destinea Date: Fri, 4 Apr 2025 21:57:02 +0200 Subject: [PATCH 074/174] feat: Added war_tag in CWL wars --- routers/v2/war/utils.py | 1 + 1 file changed, 1 insertion(+) diff --git a/routers/v2/war/utils.py b/routers/v2/war/utils.py index bbc3d9f5..858b3a20 100644 --- a/routers/v2/war/utils.py +++ b/routers/v2/war/utils.py @@ -131,6 +131,7 @@ async def fetch_war_league_info(war_tag): if response.status_code == 200: data = response.json() if data.get("state") != "notInWar": + data["war_tag"] = war_tag return data return None else: From 693bb8e0e123943d07a90ac74a314f551c929822 Mon Sep 17 00:00:00 2001 From: Destinea Date: Fri, 4 Apr 2025 23:20:45 +0200 Subject: [PATCH 075/174] feat: Better Discord Auth error Handle --- routers/v2/auth/endpoints.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/routers/v2/auth/endpoints.py b/routers/v2/auth/endpoints.py index a46b6f39..2bad0808 100644 --- a/routers/v2/auth/endpoints.py +++ b/routers/v2/auth/endpoints.py @@ -80,7 +80,10 @@ async def auth_discord(request: Request): headers={"Content-Type": "application/x-www-form-urlencoded"}) if token_response.status_code != 200: - raise HTTPException(status_code=500, detail="Error during Discord authentication") + raise HTTPException( + status_code=500, + detail=f"Discord token error: {token_response.status_code} - {token_response.text}" + ) discord_data = token_response.json() access_token_discord = discord_data["access_token"] From bb785ae1cd4ea2972804d68037944a575d734b72 Mon Sep 17 00:00:00 2001 From: Destinea Date: Fri, 4 Apr 2025 23:31:16 +0200 Subject: [PATCH 076/174] feat: Dynamic Discord redirect uri --- routers/v2/auth/endpoints.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/routers/v2/auth/endpoints.py b/routers/v2/auth/endpoints.py index 2bad0808..e06cc35a 100644 --- a/routers/v2/auth/endpoints.py +++ b/routers/v2/auth/endpoints.py @@ -61,6 +61,7 @@ async def auth_discord(request: Request): code_verifier = form.get("code_verifier") device_id = form.get("device_id") device_name = form.get("device_name") + redirect_uri = form.get("redirect_uri") or config.DISCORD_REDIRECT_URI if not code or not code_verifier: raise HTTPException(status_code=400, detail="Missing Discord code or code_verifier") @@ -71,7 +72,7 @@ async def auth_discord(request: Request): "client_id": config.DISCORD_CLIENT_ID, "code": code, "grant_type": "authorization_code", - "redirect_uri": config.DISCORD_REDIRECT_URI, + "redirect_uri": redirect_uri, "code_verifier": code_verifier } From 4842f8a86002a1f4f06aa6141134b493391f1861 Mon Sep 17 00:00:00 2001 From: Destinea Date: Sat, 5 Apr 2025 10:12:41 +0200 Subject: [PATCH 077/174] feat: Used asyncio --- routers/v2/war/endpoints.py | 49 ++++++++++++---------- routers/v2/war/utils.py | 84 ++++++++++++++++++++++--------------- 2 files changed, 76 insertions(+), 57 deletions(-) diff --git a/routers/v2/war/endpoints.py b/routers/v2/war/endpoints.py index e7d016e5..fc6d9c05 100644 --- a/routers/v2/war/endpoints.py +++ b/routers/v2/war/endpoints.py @@ -1,5 +1,6 @@ import asyncio +import aiohttp from fastapi.responses import JSONResponse import pendulum as pend from fastapi import HTTPException @@ -281,26 +282,28 @@ async def get_multiple_clan_war_summary(body: ClanTagsRequest, request: Request) if not body.clan_tags: raise HTTPException(status_code=400, detail="clan_tags cannot be empty") - async def process_clan(clan_tag: str): - war_info = await fetch_current_war_info_bypass(clan_tag) - league_info = None - war_league_infos = [] - - if is_cwl(): - league_info = await fetch_league_info(clan_tag) - if league_info and "rounds" in league_info: - war_tags = [tag for r in league_info["rounds"] for tag in r.get("warTags", [])] - war_league_infos = await fetch_war_league_infos(war_tags) - league_info = await enrich_league_info(league_info, war_league_infos) - - return { - "clan_tag": clan_tag, - "isInWar": war_info["state"] == "war", - "isInCwl": league_info is not None and war_info["state"] == "notInWar", - "war_info": war_info, - "league_info": league_info, - "war_league_infos": war_league_infos - } - - results = await asyncio.gather(*(process_clan(tag) for tag in body.clan_tags)) - return JSONResponse(content={"items": results}) + async with aiohttp.ClientSession() as session: + + async def process_clan(clan_tag: str): + war_info = await fetch_current_war_info_bypass(clan_tag, session) + league_info = None + war_league_infos = [] + + if is_cwl(): + league_info = await fetch_league_info(clan_tag, session) + if league_info and "rounds" in league_info: + war_tags = [tag for r in league_info["rounds"] for tag in r.get("warTags", [])] + war_league_infos = await fetch_war_league_infos(war_tags, session) + league_info = await enrich_league_info(league_info, war_league_infos) + + return { + "clan_tag": clan_tag, + "isInWar": war_info["state"] == "war", + "isInCwl": league_info is not None and war_info["state"] == "notInWar", + "war_info": war_info, + "league_info": league_info, + "war_league_infos": war_league_infos + } + + results = await asyncio.gather(*(process_clan(tag) for tag in body.clan_tags)) + return JSONResponse(content={"items": results}) diff --git a/routers/v2/war/utils.py b/routers/v2/war/utils.py index 858b3a20..8c973035 100644 --- a/routers/v2/war/utils.py +++ b/routers/v2/war/utils.py @@ -1,8 +1,10 @@ +import asyncio from collections import defaultdict import coc import requests -import time +import aiohttp +semaphore = asyncio.Semaphore(10) def ranking_create(data: dict): # Initialize accumulators @@ -63,6 +65,7 @@ def ranking_create(data: dict): for x in sorted_list ] + async def fetch_current_war_info(clan_tag, bypass=False): try: tag_encoded = clan_tag.replace("#", "%23") @@ -97,60 +100,73 @@ async def fetch_opponent_tag(clan_tag): return None -async def fetch_current_war_info_bypass(clan_tag): +async def fetch_current_war_info_bypass(clan_tag, session): war = await fetch_current_war_info(clan_tag) if war["state"] == "accessDenied": - opponent_tag = await fetch_opponent_tag(clan_tag) + opponent_tag = await fetch_opponent_tag(clan_tag, session) if opponent_tag: return await fetch_current_war_info(opponent_tag, bypass=True) return war -async def fetch_league_info(clan_tag): +async def fetch_league_info(clan_tag, session): try: tag_encoded = clan_tag.replace("#", "%23") url = f"https://proxy.clashk.ing/v1/clans/{tag_encoded}/currentwar/leaguegroup" - res = requests.get(url, timeout=15) - - if res.status_code == 200: - data = res.json() - if data.get("state") != "notInWar": - return data + async with session.get(url, timeout=15) as res: + if res.status == 200: + data = await res.json() + if data.get("state") != "notInWar": + return data except Exception as e: print(f"Error fetching CWL info: {e}") return None -async def fetch_war_league_info(war_tag): - retry_count = 0 +async def fetch_war_league_info(war_tag, session): war_tag_encoded = war_tag.replace('#', '%23') - while retry_count < 3: + url = f"https://proxy.clashk.ing/v1/clanwarleagues/wars/{war_tag_encoded}" + + for _ in range(3): try: - url = f"https://proxy.clashk.ing/v1/clanwarleagues/wars/{war_tag_encoded}" - response = requests.get(url) - if response.status_code == 200: - data = response.json() - if data.get("state") != "notInWar": - data["war_tag"] = war_tag - return data - return None - else: - retry_count += 1 - time.sleep(5) + async with semaphore: + async with session.get(url) as response: + if response.status == 200: + data = await response.json() + if data.get("state") != "notInWar": + data["war_tag"] = war_tag + return data + return None except Exception: - retry_count += 1 - time.sleep(5) + await asyncio.sleep(5) return None -async def fetch_war_league_infos(war_tags): - infos = [] - for tag in war_tags: - if tag != "#0": - info = await fetch_war_league_info(tag) - if info: - infos.append(info) - return infos +async def fetch_war_league_infos(war_tags, session): + tasks = [ + fetch_war_league_info(tag, session) + for tag in war_tags + if tag != "#0" + ] + results = await asyncio.gather(*tasks, return_exceptions=True) + return [r for r in results if r and not isinstance(r, Exception)] + + + +async def fetch_opponent_tag(clan_tag, session): + tag_clean = clan_tag.lstrip("#") + url = f"https://proxy.clashk.ing/v1/war/{tag_clean}/basic" + try: + async with session.get(url) as res: + if res.status == 200: + data = await res.json() + if "clans" in data and isinstance(data["clans"], list): + for tag in data["clans"]: + if tag != clan_tag: + return tag + except Exception: + pass + return None async def init_clan_summary_map(league_info): From f51ed736247a697b2a0448817a7d39c7d436d316 Mon Sep 17 00:00:00 2001 From: Destinea Date: Sat, 5 Apr 2025 11:09:28 +0200 Subject: [PATCH 078/174] feat: Added TownHallLevels --- routers/v2/war/utils.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/routers/v2/war/utils.py b/routers/v2/war/utils.py index 8c973035..f38fa047 100644 --- a/routers/v2/war/utils.py +++ b/routers/v2/war/utils.py @@ -180,6 +180,7 @@ async def init_clan_summary_map(league_info): "total_destruction": 0.0, "total_destruction_inflicted": 0.0, "wars_played": 0, + "town_hall_levels": {}, "members": defaultdict(lambda: { "name": None, "stars": 0, @@ -298,8 +299,14 @@ async def enrich_league_info(league_info, war_league_infos): clan["attack_count"] = summary["attack_count"] clan["missed_attacks"] = summary["missed_attacks"] + townhall_counts = defaultdict(int) + for member in clan.get("members", []): mtag = member.get("tag") + th_level = member.get("townHallLevel") + if th_level: + townhall_counts[th_level] += 1 + if mtag in summary["members"]: stats = summary["members"][mtag] member.update({ @@ -324,4 +331,6 @@ async def enrich_league_info(league_info, war_league_infos): } }) + clan["town_hall_levels"] = dict(townhall_counts) + return league_info From 94426c20bf15e635ebda42b72dcfbde13f13bf4a Mon Sep 17 00:00:00 2001 From: Destinea Date: Sat, 5 Apr 2025 12:01:34 +0200 Subject: [PATCH 079/174] feat: One tag endpoint --- routers/v2/clan/endpoints.py | 38 +++++++++++++++--- routers/v2/player/endpoints.py | 70 +++++++++++++++++++++++++++++++--- 2 files changed, 97 insertions(+), 11 deletions(-) diff --git a/routers/v2/clan/endpoints.py b/routers/v2/clan/endpoints.py index 9a904ccd..5c16290b 100644 --- a/routers/v2/clan/endpoints.py +++ b/routers/v2/clan/endpoints.py @@ -112,7 +112,7 @@ async def clan_board_totals(clan_tag: str, request: Request, body: PlayerTagsReq @router.post("/clans/full-stats", name="Get full stats for a list of clans") -async def get_full_clan_stats(request: Request, body: ClanTagsRequest): +async def get_clans_stats(request: Request, body: ClanTagsRequest): """Retrieve Clash of Clans account details for a list of clans.""" if not body.clan_tags: @@ -132,8 +132,34 @@ async def fetch_clan_data(session, tag): return {"items": remove_id_fields(api_responses)} + +@router.get("/clan/{clan_tag}/full-stats", name="Get full stats for a single clan") +async def get_clan_stats(clan_tag: str, request: Request): + """Retrieve Clash of Clans account details for a single clan.""" + + if not clan_tag: + raise HTTPException(status_code=400, detail="clan_tag is required") + + fixed_tag = fix_tag(clan_tag) + + async def fetch_clan_data(session, tag): + url = f"https://proxy.clashk.ing/v1/clans/{tag.replace('#', '%23')}" + async with session.get(url) as response: + if response.status == 200: + return await response.json() + return None + + async with aiohttp.ClientSession() as session: + api_response = await fetch_clan_data(session, fixed_tag) + + if not api_response: + raise HTTPException(status_code=404, detail="Clan not found") + + return remove_id_fields(api_response) + + @router.get("/clan/{clan_tag}/donations/{season}", - name="Get donations for a clan's members in a specific season") + name="Get donations for a clan's members in a specific season") async def clan_donations(clan_tag: str, season: str, request: Request): clan_stats = await mongo.clan_stats.find_one({'tag': fix_tag(clan_tag)}, projection={'_id': 0, f'{season}': 1}) clan_season_donations = clan_stats.get(season, {}) @@ -141,8 +167,8 @@ async def clan_donations(clan_tag: str, season: str, request: Request): items = [] for tag, data in clan_season_donations.items(): items.append({ - "tag" : tag, - "donated" : data.get('donated', 0), - "received" : data.get('received', 0) + "tag": tag, + "donated": data.get('donated', 0), + "received": data.get('received', 0) }) - return {"items": items} \ No newline at end of file + return {"items": items} diff --git a/routers/v2/player/endpoints.py b/routers/v2/player/endpoints.py index 6dd06a15..9e1dc699 100644 --- a/routers/v2/player/endpoints.py +++ b/routers/v2/player/endpoints.py @@ -89,7 +89,7 @@ def fetch_attribute(data: dict, attr: str): @router.post("/players/full-stats", name="Get full stats for a list of players") -async def get_full_player_stats(body: PlayerTagsRequest, request: Request): +async def get_players_stats(body: PlayerTagsRequest, request: Request): """Retrieve Clash of Clans account details for a list of players.""" if not body.player_tags: @@ -163,6 +163,64 @@ async def fetch_player_data(session, tag): return {"items": remove_id_fields(combined_results)} +@router.get("/player/{player_tag}/full-stats", name="Get full stats for a single player") +async def get_player_stats(player_tag: str, request: Request): + """Retrieve Clash of Clans account details for a single player.""" + + if not player_tag: + raise HTTPException(status_code=400, detail="player_tag is required") + + fixed_tag = fix_tag(player_tag) + + # Fetch MongoDB data + player_mongo = await mongo.player_stats.find_one( + {"tag": fixed_tag}, + { + '_id': 0, + 'tag': 1, + 'donations': 1, + 'clan_games': 1, + 'season_pass': 1, + 'activity': 1, + 'last_online': 1, + 'last_online_time': 1, + 'attack_wins': 1, + 'dark_elixir': 1, + 'gold': 1, + 'capital_gold': 1, + 'season_trophies': 1, + 'last_updated': 1 + } + ) or {} + + # Fetch API data + async def fetch_player_data(session, tag): + url = f"https://proxy.clashk.ing/v1/players/{tag.replace('#', '%23')}" + async with session.get(url) as response: + if response.status == 200: + return await response.json() + return None + + async with aiohttp.ClientSession() as session: + api_data = await fetch_player_data(session, fixed_tag) + + if api_data: + player_mongo.update(api_data) + else: + raise HTTPException(status_code=404, detail="Player not found") + + # Inject legend stats + legends_data = await get_legend_stats_common([fixed_tag]) + player_mongo["legends_by_season"] = legends_data[0]["legends_by_season"] if legends_data else {} + player_mongo.pop("legends", None) + + # Inject end-of-season and current rankings + player_mongo["legend_eos_ranking"] = await get_legend_rankings_for_tag(fixed_tag) + player_mongo["rankings"] = await get_current_rankings(fixed_tag) + + return remove_id_fields(player_mongo) + + @router.post("/players/legend-days", name="Get legend stats for multiple players") async def get_legend_stats(body: PlayerTagsRequest, request: Request): if not body.player_tags: @@ -197,10 +255,10 @@ async def get_bulk_legend_rankings(body: PlayerTagsRequest, limit: int = 10): return {"items": results} + @router.post("/players/summary/{season}/top", name="Get summary of top stats for a list of players") async def players_summary_top(season: str, request: Request, body: PlayerTagsRequest, limit: int = 10): - results = await mongo.player_stats.find( {'$and': [{'tag': {'$in': body.player_tags}}]} ).to_list(length=None) @@ -228,15 +286,17 @@ def key_fetcher(d: dict, attr: str): top_results = sorted(results, key=lambda d: key_fetcher(d, attr=option), reverse=True)[:limit] for count, result in enumerate(top_results, 1): field = key_fetcher(result, attr=option) - new_data[name].append({"tag" : result["tag"], "value" : field, "count" : count}) + new_data[name].append({"tag": result["tag"], "value": field, "count": count}) season_raid_weeks = get_season_raid_weeks(season=season) + def capital_gold_donated(elem): cc_results = [] for week in season_raid_weeks: week_result = elem.get('capital_gold', {}).get(week, {}) cc_results.append(sum(week_result.get('donate', []))) return sum(cc_results) + top_capital_donos = sorted(results, key=capital_gold_donated, reverse=True)[:limit] for count, result in enumerate(top_capital_donos, 1): cg_donated = capital_gold_donated(result) @@ -248,6 +308,7 @@ def capital_gold_raided(elem): week_result = elem.get('capital_gold', {}).get(week, {}) cc_results.append(sum(week_result.get('raid', []))) return sum(cc_results) + top_capital_raided = sorted(results, key=capital_gold_raided, reverse=True)[:limit] for count, result in enumerate(top_capital_raided, 1): cg_raided = capital_gold_raided(result) @@ -325,5 +386,4 @@ def capital_gold_raided(elem): new_data["war_stars"] = [{"tag": result["_id"], "value": result["totalStars"], "count": count} for count, result in enumerate(war_star_results, 1)] - return {"items" : [{key : value} for key, value in new_data.items()]} - + return {"items": [{key: value} for key, value in new_data.items()]} From 75a5af939ac96cdf7f4b9267b563a943d50b60ca Mon Sep 17 00:00:00 2001 From: Destinea Date: Sun, 6 Apr 2025 21:00:40 +0200 Subject: [PATCH 080/174] feat: Added avgMapPosition, avgOpponentPosition, avgAttackOrder --- routers/v2/war/endpoints.py | 40 ++++++++++++++----------- routers/v2/war/utils.py | 59 ++++++++++++++++++++++++++++++++++++- 2 files changed, 80 insertions(+), 19 deletions(-) diff --git a/routers/v2/war/endpoints.py b/routers/v2/war/endpoints.py index fc6d9c05..70d0c741 100644 --- a/routers/v2/war/endpoints.py +++ b/routers/v2/war/endpoints.py @@ -257,24 +257,28 @@ async def cwl_league_thresholds(request: Request): name="Get full war and CWL summary for a clan, including war state, CWL rounds and war details" ) async def get_clan_war_summary(clan_tag: str): - war_info = await fetch_current_war_info_bypass(clan_tag) - league_info = None - war_league_infos = [] - - if is_cwl(): - league_info = await fetch_league_info(clan_tag) - if league_info and "rounds" in league_info: - for round_entry in league_info["rounds"]: - war_tags = round_entry.get("warTags", []) - war_league_infos.extend(await fetch_war_league_infos(war_tags)) - - return JSONResponse(content={ - "isInWar": war_info["state"] == "war", - "isInCwl": league_info is not None and war_info["state"] == "notInWar", - "war_info": war_info, - "league_info": league_info, - "war_league_infos": war_league_infos - }) + + async with aiohttp.ClientSession() as session: + war_info = await fetch_current_war_info_bypass(clan_tag, session) + league_info = None + war_league_infos = [] + + if is_cwl(): + league_info = await fetch_league_info(clan_tag, session) + if league_info and "rounds" in league_info: + for round_entry in league_info["rounds"]: + war_tags = round_entry.get("warTags", []) + war_league_infos.extend(await fetch_war_league_infos(war_tags, session)) + + league_info = await enrich_league_info(league_info, war_league_infos) + + return JSONResponse(content={ + "isInWar": war_info["state"] == "war", + "isInCwl": league_info is not None and war_info["state"] == "notInWar", + "war_info": war_info, + "league_info": league_info, + "war_league_infos": war_league_infos + }) @router.post("/war/war-summary", name="Get full war and CWL summary for multiple clans") diff --git a/routers/v2/war/utils.py b/routers/v2/war/utils.py index f38fa047..cc5ee66b 100644 --- a/routers/v2/war/utils.py +++ b/routers/v2/war/utils.py @@ -6,6 +6,7 @@ semaphore = asyncio.Semaphore(10) + def ranking_create(data: dict): # Initialize accumulators star_dict = defaultdict(int) @@ -152,7 +153,6 @@ async def fetch_war_league_infos(war_tags, session): return [r for r in results if r and not isinstance(r, Exception)] - async def fetch_opponent_tag(clan_tag, session): tag_clean = clan_tag.lstrip("#") url = f"https://proxy.clashk.ing/v1/war/{tag_clean}/basic" @@ -183,6 +183,9 @@ async def init_clan_summary_map(league_info): "town_hall_levels": {}, "members": defaultdict(lambda: { "name": None, + "map_position": None, + "avg_opponent_position": None, + "avg_attack_order": None, "stars": 0, "3_stars": 0, "2_stars": 0, @@ -218,12 +221,20 @@ async def process_war_stats(war_league_infos, clan_summary_map): summary["total_stars"] += clan.get("stars", 0) summary["wars_played"] += 1 + avg_pos_map = compute_member_position_stats(war, side, "opponent" if side == "clan" else "clan") + for member in clan.get("members", []): name = member["name"] mtag = member.get("tag") stats = summary["members"][mtag] stats["name"] = name + if mtag in avg_pos_map: + stats = summary["members"][mtag] + stats["map_position"] = avg_pos_map[mtag]["map_position"] + stats["avg_opponent_position"] = avg_pos_map[mtag]["avg_opponent_position"] + stats["avg_attack_order"] = avg_pos_map[mtag]["avg_attack_order"] + attack = member.get("attacks") if attack: attack = attack[0] if isinstance(attack, list) else attack @@ -278,6 +289,49 @@ async def compute_clan_ranking(clan_summary_map): return sorted_clans +def compute_member_position_stats(war, clan_key="clan", opponent_key="opponent"): + enemy_map = { + member["tag"]: member.get("mapPosition") + for member in war[opponent_key]["members"] + } + + result = {} + + for member in war[clan_key]["members"]: + tag = member["tag"] + position = member.get("mapPosition") + attacks = member.get("attacks", []) + + opponent_positions = [] + attack_orders = [] + + for attack in attacks: + defender_tag = attack.get("defenderTag") + if defender_tag in enemy_map: + opponent_positions.append(enemy_map[defender_tag]) + if "order" in attack: + attack_orders.append(attack["order"]) + + avg_opponent_position = ( + round(sum(opponent_positions) / len(opponent_positions), 2) + if opponent_positions else None + ) + + avg_attack_order = ( + round(sum(attack_orders) / len(attack_orders), 2) + if attack_orders else None + ) + + result[tag] = { + "map_position": position, + "avg_opponent_position": avg_opponent_position, + "avg_attack_order": avg_attack_order, + } + + return result + + + async def enrich_league_info(league_info, war_league_infos): clan_summary_map = await init_clan_summary_map(league_info) await process_war_stats(war_league_infos, clan_summary_map) @@ -310,6 +364,9 @@ async def enrich_league_info(league_info, war_league_infos): if mtag in summary["members"]: stats = summary["members"][mtag] member.update({ + "avgMapPosition": stats["map_position"], + "avgOpponentPosition": stats["avg_opponent_position"], + "avgAttackOrder": stats["avg_attack_order"], "attacks": { "stars": stats["stars"], "3_stars": stats["3_stars"], From 46fd669ff2149386bc263e50e89942769ca0b599 Mon Sep 17 00:00:00 2001 From: Destinea Date: Mon, 7 Apr 2025 15:16:36 +0200 Subject: [PATCH 081/174] feat: Added average TownHall Level --- routers/v2/war/utils.py | 52 +++++++++++++++++++++++++++++++++++++---- 1 file changed, 47 insertions(+), 5 deletions(-) diff --git a/routers/v2/war/utils.py b/routers/v2/war/utils.py index cc5ee66b..7b3eb44e 100644 --- a/routers/v2/war/utils.py +++ b/routers/v2/war/utils.py @@ -229,11 +229,28 @@ async def process_war_stats(war_league_infos, clan_summary_map): stats = summary["members"][mtag] stats["name"] = name + if "map_position_list" not in stats: + stats["map_position_list"] = [] + stats["opponent_position_list"] = [] + stats["opponent_th_level_list"] = [] + stats["attack_order_list"] = [] + if mtag in avg_pos_map: stats = summary["members"][mtag] stats["map_position"] = avg_pos_map[mtag]["map_position"] stats["avg_opponent_position"] = avg_pos_map[mtag]["avg_opponent_position"] stats["avg_attack_order"] = avg_pos_map[mtag]["avg_attack_order"] + stats["avg_townhall_level"] = avg_pos_map[mtag]["avg_townhall_level"] + stats["avg_opponent_townhall_level"] = avg_pos_map[mtag]["avg_opponent_townhall_level"] + data = avg_pos_map[mtag] + if data["map_position"] is not None: + stats["map_position_list"].append(data["map_position"]) + if data["avg_opponent_position"] is not None: + stats["opponent_position_list"].append(data["avg_opponent_position"]) + if data["avg_opponent_townhall_level"] is not None: + stats["opponent_th_level_list"].append(data["avg_opponent_townhall_level"]) + if data["avg_attack_order"] is not None: + stats["attack_order_list"].append(data["avg_attack_order"]) attack = member.get("attacks") if attack: @@ -295,28 +312,48 @@ def compute_member_position_stats(war, clan_key="clan", opponent_key="opponent") for member in war[opponent_key]["members"] } + enemy_townhall_map = { + member["tag"]: member.get("townhallLevel") + for member in war[opponent_key]["members"] + } + result = {} for member in war[clan_key]["members"]: tag = member["tag"] position = member.get("mapPosition") + townhall = member.get("townhallLevel") attacks = member.get("attacks", []) opponent_positions = [] + opponent_th_levels = [] attack_orders = [] + if tag == "#PGPU0URYV": + print(attacks) + for attack in attacks: defender_tag = attack.get("defenderTag") if defender_tag in enemy_map: opponent_positions.append(enemy_map[defender_tag]) + if defender_tag in enemy_townhall_map: + opponent_th_levels.append(enemy_townhall_map[defender_tag]) if "order" in attack: attack_orders.append(attack["order"]) + if tag == "#PGPU0URYV": + print(opponent_th_levels) + avg_opponent_position = ( round(sum(opponent_positions) / len(opponent_positions), 2) if opponent_positions else None ) + avg_opponent_townhall_level = ( + round(sum(opponent_th_levels) / len(opponent_th_levels), 2) + if opponent_th_levels else None + ) + avg_attack_order = ( round(sum(attack_orders) / len(attack_orders), 2) if attack_orders else None @@ -324,14 +361,15 @@ def compute_member_position_stats(war, clan_key="clan", opponent_key="opponent") result[tag] = { "map_position": position, + "avg_townhall_level": townhall, "avg_opponent_position": avg_opponent_position, - "avg_attack_order": avg_attack_order, + "avg_opponent_townhall_level": avg_opponent_townhall_level, + "avg_attack_order": avg_attack_order } return result - async def enrich_league_info(league_info, war_league_infos): clan_summary_map = await init_clan_summary_map(league_info) await process_war_stats(war_league_infos, clan_summary_map) @@ -361,12 +399,16 @@ async def enrich_league_info(league_info, war_league_infos): if th_level: townhall_counts[th_level] += 1 + avg = lambda l: round(sum(l) / len(l), 1) if l else None + if mtag in summary["members"]: stats = summary["members"][mtag] member.update({ - "avgMapPosition": stats["map_position"], - "avgOpponentPosition": stats["avg_opponent_position"], - "avgAttackOrder": stats["avg_attack_order"], + "avgMapPosition": avg(stats.get("map_position_list", [])), + "avgOpponentPosition": avg(stats.get("opponent_position_list", [])), + "avgAttackOrder": avg(stats.get("attack_order_list", [])), + "avgTownHallLevel": stats.get("avg_townhall_level"), + "avgOpponentTownHallLevel": avg(stats.get("opponent_th_level_list", [])), "attacks": { "stars": stats["stars"], "3_stars": stats["3_stars"], From 85b53d39ce13eb74e87084cfd81e28837a58be81 Mon Sep 17 00:00:00 2001 From: Destinea Date: Mon, 7 Apr 2025 16:02:23 +0200 Subject: [PATCH 082/174] feat: Added average defense stats --- routers/v2/war/utils.py | 47 ++++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/routers/v2/war/utils.py b/routers/v2/war/utils.py index 7b3eb44e..261ba67d 100644 --- a/routers/v2/war/utils.py +++ b/routers/v2/war/utils.py @@ -234,6 +234,9 @@ async def process_war_stats(war_league_infos, clan_summary_map): stats["opponent_position_list"] = [] stats["opponent_th_level_list"] = [] stats["attack_order_list"] = [] + stats["avg_attacker_position"] = avg_pos_map[mtag]["avg_attacker_position"] + stats["avg_defense_order"] = avg_pos_map[mtag]["avg_defense_order"] + stats["avg_attacker_townhall_level"] = avg_pos_map[mtag]["avg_attacker_townhall_level"] if mtag in avg_pos_map: stats = summary["members"][mtag] @@ -324,13 +327,15 @@ def compute_member_position_stats(war, clan_key="clan", opponent_key="opponent") position = member.get("mapPosition") townhall = member.get("townhallLevel") attacks = member.get("attacks", []) + defense = member.get("bestOpponentAttack") opponent_positions = [] opponent_th_levels = [] attack_orders = [] - if tag == "#PGPU0URYV": - print(attacks) + defense_positions = [] + defense_orders = [] + attacker_th_levels = [] for attack in attacks: defender_tag = attack.get("defenderTag") @@ -341,30 +346,25 @@ def compute_member_position_stats(war, clan_key="clan", opponent_key="opponent") if "order" in attack: attack_orders.append(attack["order"]) - if tag == "#PGPU0URYV": - print(opponent_th_levels) - - avg_opponent_position = ( - round(sum(opponent_positions) / len(opponent_positions), 2) - if opponent_positions else None - ) - - avg_opponent_townhall_level = ( - round(sum(opponent_th_levels) / len(opponent_th_levels), 2) - if opponent_th_levels else None - ) - - avg_attack_order = ( - round(sum(attack_orders) / len(attack_orders), 2) - if attack_orders else None - ) + # Defensive stats + if defense: + attacker_tag = defense.get("attackerTag") + if attacker_tag in enemy_map: + defense_positions.append(enemy_map[attacker_tag]) + if attacker_tag in enemy_townhall_map: + attacker_th_levels.append(enemy_townhall_map[attacker_tag]) + if "order" in defense: + defense_orders.append(defense["order"]) result[tag] = { "map_position": position, "avg_townhall_level": townhall, - "avg_opponent_position": avg_opponent_position, - "avg_opponent_townhall_level": avg_opponent_townhall_level, - "avg_attack_order": avg_attack_order + "avg_opponent_position": round(sum(opponent_positions) / len(opponent_positions), 1) if opponent_positions else None, + "avg_opponent_townhall_level": round(sum(opponent_th_levels) / len(opponent_th_levels), 1) if opponent_th_levels else None, + "avg_attack_order": round(sum(attack_orders) / len(attack_orders), 1) if attack_orders else None, + "avg_attacker_position": round(sum(defense_positions) / len(defense_positions), 1) if defense_positions else None, + "avg_defense_order": round(sum(defense_orders) / len(defense_orders), 1) if defense_orders else None, + "avg_attacker_townhall_level": round(sum(attacker_th_levels) / len(attacker_th_levels), 1) if attacker_th_levels else None, } return result @@ -409,6 +409,9 @@ async def enrich_league_info(league_info, war_league_infos): "avgAttackOrder": avg(stats.get("attack_order_list", [])), "avgTownHallLevel": stats.get("avg_townhall_level"), "avgOpponentTownHallLevel": avg(stats.get("opponent_th_level_list", [])), + "avgAttackerPosition": stats["avg_attacker_position"], + "avgDefenseOrder": stats["avg_defense_order"], + "avgAttackerTownHallLevel": stats["avg_attacker_townhall_level"], "attacks": { "stars": stats["stars"], "3_stars": stats["3_stars"], From c76a5844335fd6ab27d469107f1ac4ce28dff1ee Mon Sep 17 00:00:00 2001 From: Destinea Date: Mon, 7 Apr 2025 18:03:50 +0200 Subject: [PATCH 083/174] feat: Added missed defenses --- routers/v2/war/utils.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/routers/v2/war/utils.py b/routers/v2/war/utils.py index 261ba67d..1d4de4c0 100644 --- a/routers/v2/war/utils.py +++ b/routers/v2/war/utils.py @@ -177,6 +177,7 @@ async def init_clan_summary_map(league_info): "total_stars": 0, "attack_count": 0, "missed_attacks": 0, + "missed_defenses": 0, "total_destruction": 0.0, "total_destruction_inflicted": 0.0, "wars_played": 0, @@ -194,6 +195,7 @@ async def init_clan_summary_map(league_info): "total_destruction": 0.0, "attack_count": 0, "missed_attacks": 0, + "missed_defenses": 0, "defense_stars_taken": 0, "defense_3_stars": 0, "defense_2_stars": 0, @@ -292,6 +294,9 @@ async def process_war_stats(war_league_infos, clan_summary_map): stats["defense_1_star"] += 1 else: stats["defense_0_star"] += 1 + else: + stats["missed_defenses"] += 1 + summary["missed_defenses"] += 1 async def compute_clan_ranking(clan_summary_map): @@ -429,7 +434,8 @@ async def enrich_league_info(league_info, war_league_infos): "1_star": stats["defense_1_star"], "0_star": stats["defense_0_star"], "total_destruction": round(stats["defense_total_destruction"], 2), - "defense_count": stats["defense_count"] + "defense_count": stats["defense_count"], + "missed_defenses": stats["missed_defenses"] } }) From 8cf12bf7c888ef2279de4777e248861025be0ea5 Mon Sep 17 00:00:00 2001 From: Destinea Date: Mon, 7 Apr 2025 23:10:06 +0200 Subject: [PATCH 084/174] feat: stars by TH level --- routers/v2/war/utils.py | 179 +++++++++++++++++++++++++++++----------- 1 file changed, 131 insertions(+), 48 deletions(-) diff --git a/routers/v2/war/utils.py b/routers/v2/war/utils.py index 1d4de4c0..e795089d 100644 --- a/routers/v2/war/utils.py +++ b/routers/v2/war/utils.py @@ -182,25 +182,31 @@ async def init_clan_summary_map(league_info): "total_destruction_inflicted": 0.0, "wars_played": 0, "town_hall_levels": {}, + "own_th_level_list_attack": [], + "opponent_th_level_list_attack": [], + "own_th_level_list_defense": [], + "attacker_th_level_list_defense": [], "members": defaultdict(lambda: { "name": None, "map_position": None, "avg_opponent_position": None, "avg_attack_order": None, "stars": 0, - "3_stars": 0, - "2_stars": 0, - "1_star": 0, - "0_star": 0, + "3_stars": {}, + "2_stars": {}, + "1_star": {}, + "0_star": {}, + "stars_by_th": {}, + "defense_stars_by_th": {}, "total_destruction": 0.0, "attack_count": 0, "missed_attacks": 0, "missed_defenses": 0, "defense_stars_taken": 0, - "defense_3_stars": 0, - "defense_2_stars": 0, - "defense_1_star": 0, - "defense_0_star": 0, + "defense_3_stars": {}, + "defense_2_stars": {}, + "defense_1_star": {}, + "defense_0_star": {}, "defense_total_destruction": 0.0, "defense_count": 0 }) @@ -231,14 +237,24 @@ async def process_war_stats(war_league_infos, clan_summary_map): stats = summary["members"][mtag] stats["name"] = name + # Initialize lists if not present + if "own_th_level_list_attack" not in stats: + stats["own_th_level_list_attack"] = [] + if "opponent_th_level_list_attack" not in stats: + stats["opponent_th_level_list_attack"] = [] + if "own_th_level_list_defense" not in stats: + stats["own_th_level_list_defense"] = [] + if "attacker_th_level_list_defense" not in stats: + stats["attacker_th_level_list_defense"] = [] + if "map_position_list" not in stats: stats["map_position_list"] = [] stats["opponent_position_list"] = [] stats["opponent_th_level_list"] = [] stats["attack_order_list"] = [] - stats["avg_attacker_position"] = avg_pos_map[mtag]["avg_attacker_position"] - stats["avg_defense_order"] = avg_pos_map[mtag]["avg_defense_order"] - stats["avg_attacker_townhall_level"] = avg_pos_map[mtag]["avg_attacker_townhall_level"] + stats["attacker_position_list"] = [] + stats["defense_order_list"] = [] + stats["attacker_th_level_list"] = [] if mtag in avg_pos_map: stats = summary["members"][mtag] @@ -256,44 +272,69 @@ async def process_war_stats(war_league_infos, clan_summary_map): stats["opponent_th_level_list"].append(data["avg_opponent_townhall_level"]) if data["avg_attack_order"] is not None: stats["attack_order_list"].append(data["avg_attack_order"]) + if data["avg_attacker_position"] is not None: + stats["attacker_position_list"].append(data["avg_attacker_position"]) + if data["avg_defense_order"] is not None: + stats["defense_order_list"].append(data["avg_defense_order"]) + if data["avg_attacker_townhall_level"] is not None: + stats["attacker_th_level_list"].append(data["avg_attacker_townhall_level"]) attack = member.get("attacks") if attack: attack = attack[0] if isinstance(attack, list) else attack stars = attack["stars"] destruction = attack["destructionPercentage"] + defender_tag = attack.get("defenderTag") + defender_th = None + own_th = member.get("townhallLevel") + + if defender_tag and war["opponent" if side == "clan" else "clan"]: + for opp_member in war["opponent" if side == "clan" else "clan"]["members"]: + if opp_member["tag"] == defender_tag: + defender_th = opp_member.get("townhallLevel") + break + + if defender_th is not None: + stats["stars_by_th"].setdefault(stars, {}).setdefault(defender_th, 0) + stats["stars_by_th"][stars][defender_th] += 1 + stats["opponent_th_level_list_attack"].append(defender_th) + stats["own_th_level_list_attack"].append(own_th) + stats["stars"] += stars stats["total_destruction"] += destruction stats["attack_count"] += 1 summary["total_destruction_inflicted"] += destruction summary["attack_count"] += 1 - if stars == 3: - stats["3_stars"] += 1 - elif stars == 2: - stats["2_stars"] += 1 - elif stars == 1: - stats["1_star"] += 1 - else: - stats["0_star"] += 1 - elif war.get("state") == "warEnded": - stats["missed_attacks"] += 1 - summary["missed_attacks"] += 1 + + else: + if war.get("state") == "warEnded": + stats["missed_attacks"] += 1 + summary["missed_attacks"] += 1 defense = member.get("bestOpponentAttack") if defense: stars = defense["stars"] + attacker_tag = defense.get("attackerTag") + attacker_th = None + defender_th = member.get("townhallLevel") + + if attacker_tag and war["opponent" if side == "clan" else "clan"]: + for opp_member in war["opponent" if side == "clan" else "clan"]["members"]: + if opp_member["tag"] == attacker_tag: + attacker_th = opp_member.get("townhallLevel") + break + + if attacker_th is not None: + stats["defense_stars_by_th"].setdefault(stars, {}).setdefault(attacker_th, 0) + stats["defense_stars_by_th"][stars][attacker_th] += 1 + stats["attacker_th_level_list_defense"].append(attacker_th) + stats["own_th_level_list_defense"].append(defender_th) + stats["defense_stars_taken"] += stars stats["defense_total_destruction"] += defense["destructionPercentage"] stats["defense_count"] += 1 summary["total_destruction"] += defense["destructionPercentage"] - if stars == 3: - stats["defense_3_stars"] += 1 - elif stars == 2: - stats["defense_2_stars"] += 1 - elif stars == 1: - stats["defense_1_star"] += 1 - else: - stats["defense_0_star"] += 1 + else: stats["missed_defenses"] += 1 summary["missed_defenses"] += 1 @@ -315,6 +356,8 @@ async def compute_clan_ranking(clan_summary_map): def compute_member_position_stats(war, clan_key="clan", opponent_key="opponent"): + from collections import defaultdict + enemy_map = { member["tag"]: member.get("mapPosition") for member in war[opponent_key]["members"] @@ -342,34 +385,52 @@ def compute_member_position_stats(war, clan_key="clan", opponent_key="opponent") defense_orders = [] attacker_th_levels = [] + stars_by_th = defaultdict(lambda: defaultdict(int)) + defense_stars_by_th = defaultdict(lambda: defaultdict(int)) + for attack in attacks: defender_tag = attack.get("defenderTag") if defender_tag in enemy_map: opponent_positions.append(enemy_map[defender_tag]) if defender_tag in enemy_townhall_map: - opponent_th_levels.append(enemy_townhall_map[defender_tag]) + th_level = enemy_townhall_map[defender_tag] + opponent_th_levels.append(th_level) + stars = attack.get("stars") + if stars is not None: + stars_by_th[stars][th_level] += 1 if "order" in attack: attack_orders.append(attack["order"]) - # Defensive stats if defense: attacker_tag = defense.get("attackerTag") if attacker_tag in enemy_map: defense_positions.append(enemy_map[attacker_tag]) if attacker_tag in enemy_townhall_map: - attacker_th_levels.append(enemy_townhall_map[attacker_tag]) + th_level = enemy_townhall_map[attacker_tag] + attacker_th_levels.append(th_level) + stars = defense.get("stars") + if stars is not None: + defense_stars_by_th[stars][th_level] += 1 if "order" in defense: defense_orders.append(defense["order"]) result[tag] = { "map_position": position, "avg_townhall_level": townhall, - "avg_opponent_position": round(sum(opponent_positions) / len(opponent_positions), 1) if opponent_positions else None, - "avg_opponent_townhall_level": round(sum(opponent_th_levels) / len(opponent_th_levels), 1) if opponent_th_levels else None, + "avg_opponent_position": round(sum(opponent_positions) / len(opponent_positions), + 1) if opponent_positions else None, + "avg_opponent_townhall_level": round(sum(opponent_th_levels) / len(opponent_th_levels), + 1) if opponent_th_levels else None, "avg_attack_order": round(sum(attack_orders) / len(attack_orders), 1) if attack_orders else None, - "avg_attacker_position": round(sum(defense_positions) / len(defense_positions), 1) if defense_positions else None, + "avg_attacker_position": round(sum(defense_positions) / len(defense_positions), + 1) if defense_positions else None, "avg_defense_order": round(sum(defense_orders) / len(defense_orders), 1) if defense_orders else None, - "avg_attacker_townhall_level": round(sum(attacker_th_levels) / len(attacker_th_levels), 1) if attacker_th_levels else None, + "avg_attacker_townhall_level": round(sum(attacker_th_levels) / len(attacker_th_levels), + 1) if attacker_th_levels else None, + "opponent_th_levels": opponent_th_levels, + "attacker_th_levels": attacker_th_levels, + "stars_by_th": dict(stars_by_th), + "defense_stars_by_th": dict(defense_stars_by_th), } return result @@ -408,31 +469,53 @@ async def enrich_league_info(league_info, war_league_infos): if mtag in summary["members"]: stats = summary["members"][mtag] + member.update({ "avgMapPosition": avg(stats.get("map_position_list", [])), "avgOpponentPosition": avg(stats.get("opponent_position_list", [])), "avgAttackOrder": avg(stats.get("attack_order_list", [])), "avgTownHallLevel": stats.get("avg_townhall_level"), "avgOpponentTownHallLevel": avg(stats.get("opponent_th_level_list", [])), - "avgAttackerPosition": stats["avg_attacker_position"], - "avgDefenseOrder": stats["avg_defense_order"], - "avgAttackerTownHallLevel": stats["avg_attacker_townhall_level"], + "avgAttackerPosition": avg(stats.get("attacker_position_list", [])), + "avgDefenseOrder": avg(stats.get("defense_order_list", [])), + "avgAttackerTownHallLevel": avg(stats.get("attacker_th_level_list", [])), + "attackLowerTHLevel": sum( + 1 for own_th, enemy_th in + zip(stats.get("own_th_level_list_attack", []), stats.get("opponent_th_level_list_attack", [])) + if enemy_th < own_th + ), + "attackUpperTHLevel": sum( + 1 for own_th, enemy_th in + zip(stats.get("own_th_level_list_attack", []), stats.get("opponent_th_level_list", [])) + if enemy_th > own_th + ), + "defenseLowerTHLevel": sum( + 1 for own_th, enemy_th in + zip(stats.get("own_th_level_list_defense", []), stats.get("attacker_th_level_list_defense", [])) + if enemy_th < own_th + ), + "defenseUpperTHLevel": sum( + 1 for own_th, enemy_th in + zip(stats.get("own_th_level_list_defense", []), stats.get("attacker_th_level_list", [])) + if enemy_th > own_th + ), + "attacks": { "stars": stats["stars"], - "3_stars": stats["3_stars"], - "2_stars": stats["2_stars"], - "1_star": stats["1_star"], - "0_star": stats["0_star"], + "3_stars": dict(stats.get("stars_by_th", {}).get(3, {})), + "2_stars": dict(stats.get("stars_by_th", {}).get(2, {})), + "1_star": dict(stats.get("stars_by_th", {}).get(1, {})), + "0_star": dict(stats.get("stars_by_th", {}).get(0, {})), "total_destruction": round(stats["total_destruction"], 2), "attack_count": stats["attack_count"], "missed_attacks": stats["missed_attacks"] }, "defense": { "stars": stats["defense_stars_taken"], - "3_stars": stats["defense_3_stars"], - "2_stars": stats["defense_2_stars"], - "1_star": stats["defense_1_star"], - "0_star": stats["defense_0_star"], + "3_stars": dict(stats.get("defense_stars_by_th", {}).get(3, {})), + "2_stars": dict(stats.get("defense_stars_by_th", {}).get(2, {})), + "1_star": dict(stats.get("defense_stars_by_th", {}).get(1, {})), + "0_star": dict(stats.get("defense_stars_by_th", {}).get(0, {})), "total_destruction": round(stats["defense_total_destruction"], 2), "defense_count": stats["defense_count"], "missed_defenses": stats["missed_defenses"] From 3b7a96833c693970c8674f526f79d92811c4e8ff Mon Sep 17 00:00:00 2001 From: Destinea Date: Thu, 10 Apr 2025 09:59:54 +0200 Subject: [PATCH 085/174] feat: Added /players/warhits --- routers/v2/player/endpoints.py | 256 ++++++++++++++++++++++----------- routers/v2/player/models.py | 19 ++- routers/v2/player/utils.py | 150 +++++++++++++++++-- routers/v2/war/models.py | 0 4 files changed, 331 insertions(+), 94 deletions(-) create mode 100644 routers/v2/war/models.py diff --git a/routers/v2/player/endpoints.py b/routers/v2/player/endpoints.py index 9e1dc699..2c019773 100644 --- a/routers/v2/player/endpoints.py +++ b/routers/v2/player/endpoints.py @@ -1,15 +1,17 @@ import asyncio from collections import defaultdict +import coc import aiohttp from fastapi import HTTPException from fastapi import APIRouter, Request, Response - -from routers.v2.player.utils import get_legend_rankings_for_tag, get_legend_stats_common, get_current_rankings -from utils.time import get_season_raid_weeks, season_start_end, CLASH_ISO_FORMAT +import pendulum as pend +from routers.v2.player.utils import get_legend_rankings_for_tag, get_legend_stats_common, get_current_rankings, \ + assemble_full_player_data, fetch_full_player_data, compute_warhit_stats +from utils.time import get_season_raid_weeks, season_start_end, CLASH_ISO_FORMAT, is_raids from utils.utils import fix_tag, remove_id_fields, bulk_requests from utils.database import MongoClient as mongo -from routers.v2.player.models import PlayerTagsRequest +from routers.v2.player.models import PlayerTagsRequest, PlayerWarhitsFilter router = APIRouter(prefix="/v2", tags=["Player"], include_in_schema=True) @@ -97,83 +99,58 @@ async def get_players_stats(body: PlayerTagsRequest, request: Request): player_tags = [fix_tag(tag) for tag in body.player_tags] - # Get Mongo-stored data + # Fetch MongoDB player_stats in bulk players_info = await mongo.player_stats.find( - {'tag': {'$in': player_tags}}, + {"tag": {"$in": player_tags}}, { - '_id': 0, - 'tag': 1, - 'donations': 1, - 'clan_games': 1, - 'season_pass': 1, - 'activity': 1, - 'last_online': 1, - 'last_online_time': 1, - 'attack_wins': 1, - 'dark_elixir': 1, - 'gold': 1, - 'capital_gold': 1, - 'season_trophies': 1, - 'last_updated': 1 + "_id": 0, + "tag": 1, + "donations": 1, + "clan_games": 1, + "season_pass": 1, + "activity": 1, + "last_online": 1, + "last_online_time": 1, + "attack_wins": 1, + "dark_elixir": 1, + "gold": 1, + "capital_gold": 1, + "season_trophies": 1, + "last_updated": 1 } ).to_list(length=None) mongo_data_dict = {player["tag"]: player for player in players_info} - # Get data from Clash of Clans API - async def fetch_player_data(session, tag): - url = f"https://proxy.clashk.ing/v1/players/{tag.replace('#', '%23')}" - async with session.get(url) as response: - if response.status == 200: - return await response.json() - return None - - async with aiohttp.ClientSession() as session: - api_responses = await asyncio.gather( - *(fetch_player_data(session, tag) for tag in player_tags) - ) - - # Load legend stats + # Load legends data in bulk legends_data = await get_legend_stats_common(player_tags) tag_to_legends = {entry["tag"]: entry["legends_by_season"] for entry in legends_data} - # Merge and enrich data - combined_results = [] - - for tag, api_data in zip(player_tags, api_responses): - player_data = mongo_data_dict.get(tag, {}) - - if api_data: - player_data.update(api_data) - - # Inject legend days (by season) - player_data["legends_by_season"] = tag_to_legends.get(tag, {}) - player_data.pop("legends", None) - - # Inject legend history rankings - legend_rankings = await get_legend_rankings_for_tag(tag) - player_data["legend_eos_ranking"] = legend_rankings - - # Inject current season rankings - legends_current_rankings = await get_current_rankings(tag) - player_data["rankings"] = legends_current_rankings - - combined_results.append(player_data) + # Fetch API, raid & war data per player in parallel + async with aiohttp.ClientSession() as session: + fetch_tasks = [ + fetch_full_player_data(session, tag, mongo_data_dict.get(tag, {})) + for tag in player_tags + ] + player_results = await asyncio.gather(*fetch_tasks) + + # Assemble enriched player data in parallel + combined_results = await asyncio.gather(*[ + assemble_full_player_data(tag, api_data, raid_data, war_data, mongo_data, tag_to_legends) + for tag, api_data, raid_data, war_data, mongo_data in player_results + ]) return {"items": remove_id_fields(combined_results)} @router.get("/player/{player_tag}/full-stats", name="Get full stats for a single player") async def get_player_stats(player_tag: str, request: Request): - """Retrieve Clash of Clans account details for a single player.""" - if not player_tag: raise HTTPException(status_code=400, detail="player_tag is required") fixed_tag = fix_tag(player_tag) - # Fetch MongoDB data - player_mongo = await mongo.player_stats.find_one( + mongo_data = await mongo.player_stats.find_one( {"tag": fixed_tag}, { '_id': 0, @@ -193,32 +170,15 @@ async def get_player_stats(player_tag: str, request: Request): } ) or {} - # Fetch API data - async def fetch_player_data(session, tag): - url = f"https://proxy.clashk.ing/v1/players/{tag.replace('#', '%23')}" - async with session.get(url) as response: - if response.status == 200: - return await response.json() - return None + legends_data = await get_legend_stats_common([fixed_tag]) + tag_to_legends = {entry["tag"]: entry["legends_by_season"] for entry in legends_data} async with aiohttp.ClientSession() as session: - api_data = await fetch_player_data(session, fixed_tag) - - if api_data: - player_mongo.update(api_data) - else: - raise HTTPException(status_code=404, detail="Player not found") + tag, api_data, raid_data, war_data, mongo_data = await fetch_full_player_data(session, fixed_tag, mongo_data) - # Inject legend stats - legends_data = await get_legend_stats_common([fixed_tag]) - player_mongo["legends_by_season"] = legends_data[0]["legends_by_season"] if legends_data else {} - player_mongo.pop("legends", None) + player_data = await assemble_full_player_data(tag, api_data, raid_data, war_data, mongo_data, tag_to_legends) - # Inject end-of-season and current rankings - player_mongo["legend_eos_ranking"] = await get_legend_rankings_for_tag(fixed_tag) - player_mongo["rankings"] = await get_current_rankings(fixed_tag) - - return remove_id_fields(player_mongo) + return remove_id_fields(player_data) @router.post("/players/legend-days", name="Get legend stats for multiple players") @@ -387,3 +347,135 @@ def capital_gold_raided(elem): for count, result in enumerate(war_star_results, 1)] return {"items": [{key: value} for key, value in new_data.items()]} + + +@router.post("/players/warhits", name="Bulk war hits overview and detailed stats") +async def players_warhits_stats(filter: PlayerWarhitsFilter, request: Request): + client = coc.Client(raw_attribute=True) + + START = pend.from_timestamp(filter.timestamp_start, tz=pend.UTC).strftime('%Y%m%dT%H%M%S.000Z') + END = pend.from_timestamp(filter.timestamp_end, tz=pend.UTC).strftime('%Y%m%dT%H%M%S.000Z') + + player_tags = [fix_tag(tag) for tag in filter.player_tags] + + pipeline = [ + {"$match": { + "$and": [ + {"$or": [ + {"data.clan.members.tag": {"$in": player_tags}}, + {"data.opponent.members.tag": {"$in": player_tags}} + ]}, + {"data.preparationStartTime": {"$gte": START}}, + {"data.preparationStartTime": {"$lte": END}} + ] + }}, + {"$unset": ["_id"]}, + {"$project": {"data": "$data"}}, + {"$sort": {"data.preparationStartTime": -1}} + ] + + wars = await mongo.clan_wars.aggregate(pipeline, allowDiskUse=True).to_list(length=None) + + found_wars = set() + player_data = {tag: {"attacks": [], "defenses": [], "townhall": None, "missedAttacks": 0, "missedDefenses": 0} for tag in player_tags} + + for war_doc in wars: + war_raw = war_doc["data"] + war = coc.ClanWar(data=war_raw, client=client) + war_id = "-".join(sorted([war.clan_tag, war.opponent.tag])) + f"-{int(war.preparation_start_time.time.timestamp())}" + if war_id in found_wars: + continue + if len(found_wars) >= filter.limit: + break + found_wars.add(war_id) + + if filter.type != "all" and war.type.lower() != filter.type.lower(): + continue + + for tag in player_tags: + war_member = war.get_member(tag) + if not war_member: + continue + + player_data[tag]["townhall"] = war_member.town_hall + player_data[tag]["missedAttacks"] += war.attacks_per_member - len(war_member.attacks) + player_data[tag]["missedDefenses"] += 1 if not war_member.best_opponent_attack else 0 + + for atk in war_member.attacks: + atk_data = atk._raw_data + atk_data["defender"] = { + "tag": atk.defender.tag, + "townhallLevel": atk.defender.town_hall, + "mapPosition": atk.defender.map_position, + } + atk_data["attacker"] = { + "townhallLevel": war_member.town_hall + } + + if filter.enemy_th and atk.defender.town_hall != filter.enemy_th: + continue + if filter.fresh_only and not atk.is_fresh_attack: + continue + if filter.min_stars and atk.stars < filter.min_stars: + continue + if filter.max_stars and atk.stars > filter.max_stars: + continue + if filter.min_destruction and atk.destruction < filter.min_destruction: + continue + if filter.max_destruction and atk.destruction > filter.max_destruction: + continue + if filter.map_position_min and atk.defender.map_position < filter.map_position_min: + continue + if filter.map_position_max and atk.defender.map_position > filter.map_position_max: + continue + + player_data[tag]["attacks"].append(atk_data) + + for defn in war_member.defenses: + def_data = defn._raw_data + def_data["attacker"] = { + "tag": defn.attacker.tag, + "townhallLevel": defn.attacker.town_hall, + "mapPosition": defn.attacker.map_position, + } + def_data["defender"] = { + "townhallLevel": war_member.town_hall + } + + if filter.enemy_th and defn.attacker.town_hall != filter.enemy_th: + continue + if filter.fresh_only and not defn.is_fresh_attack: + continue + if filter.min_stars and defn.stars < filter.min_stars: + continue + if filter.max_stars and defn.stars > filter.max_stars: + continue + if filter.min_destruction and defn.destruction < filter.min_destruction: + continue + if filter.max_destruction and defn.destruction > filter.max_destruction: + continue + if filter.map_position_min and defn.attacker.map_position < filter.map_position_min: + continue + if filter.map_position_max and defn.attacker.map_position > filter.map_position_max: + continue + + player_data[tag]["defenses"].append(def_data) + + enriched_data = [] + for tag, data in player_data.items(): + enriched_data.append({ + "tag": tag, + "stats": compute_warhit_stats( + tag=tag, + townhall_level=data["townhall"], + attacks=data["attacks"], + defenses=data["defenses"], + filter=filter, + missed_attacks=data["missedAttacks"], + missed_defenses=data["missedDefenses"] + ), + "attacks": data["attacks"], + "defenses": data["defenses"] + }) + + return {"items": enriched_data} \ No newline at end of file diff --git a/routers/v2/player/models.py b/routers/v2/player/models.py index 4a922d21..881f4c04 100644 --- a/routers/v2/player/models.py +++ b/routers/v2/player/models.py @@ -1,5 +1,22 @@ from pydantic import BaseModel -from typing import List +from typing import List, Optional + class PlayerTagsRequest(BaseModel): player_tags: List[str] + +class PlayerWarhitsFilter(BaseModel): + player_tags: List[str] + timestamp_start: int = 0 + timestamp_end: int = 2527625513 + limit: int = 50 + own_th: Optional[int] = None + enemy_th: Optional[int] = None + type: str = "all" + fresh_only: Optional[bool] = None + min_stars: Optional[int] = None + max_stars: Optional[int] = None + min_destruction: Optional[float] = None + max_destruction: Optional[float] = None + map_position_min: Optional[int] = None + map_position_max: Optional[int] = None \ No newline at end of file diff --git a/routers/v2/player/utils.py b/routers/v2/player/utils.py index 9341b7a2..74fc928b 100644 --- a/routers/v2/player/utils.py +++ b/routers/v2/player/utils.py @@ -1,7 +1,13 @@ +from collections import defaultdict + +import coc from fastapi import HTTPException import pendulum + +from routers.v2.player.models import PlayerWarhitsFilter from utils.database import MongoClient as mongo +from utils.time import is_raids from utils.utils import fix_tag @@ -254,17 +260,6 @@ def count_number_of_attacks_from_list(attacks: list[int]) -> int: return count -def get_star_distribution(trophies_list: list[int]) -> tuple[dict[int, int], int]: - distribution = {0: 0, 1: 0, 2: 0, 3: 0} - total_attacks = 0 - for trophies in trophies_list: - stars = trophies_to_stars_stacked(trophies) - for star, count in stars.items(): - distribution[star] += count - total_attacks += count - return distribution, total_attacks - - async def process_legend_stats(raw_legends: dict) -> dict: """Enrich raw legends days and group them by season.""" for day, data in raw_legends.items(): @@ -314,3 +309,136 @@ async def get_current_rankings(tag: str) -> dict: if fallback: ranking_data["global_rank"] = fallback.get("rank") return ranking_data + +async def fetch_player_api_data(session, tag: str): + url = f"https://proxy.clashk.ing/v1/players/{tag.replace('#', '%23')}" + async with session.get(url) as response: + if response.status == 200: + return await response.json() + return None + + +async def fetch_raid_data(session, tag: str, player_clan_tag: str): + raid_data = {} + if player_clan_tag: + url = f"https://proxy.clashk.ing/v1/clans/{player_clan_tag.replace('#', '%23')}/capitalraidseasons?limit=1" + async with session.get(url) as response: + if response.status == 200: + data = await response.json() + if data.get("items"): + raid_weekend_entry = coc.RaidLogEntry(data=data["items"][0], client=None, clan_tag=player_clan_tag) + if raid_weekend_entry.end_time.seconds_until >= 0: + raid_member = raid_weekend_entry.get_member(tag=tag) + if raid_member: + raid_data = { + "attacks_done": raid_member.attack_count, + "attack_limit": raid_member.attack_limit + raid_member.bonus_attack_limit, + } + return raid_data + + +async def fetch_full_player_data(session, tag: str, mongo_data: dict): + api_data = await fetch_player_api_data(session, tag) + clan_tag = api_data.get("clan", {}).get("tag") if api_data else None + raid_data = await fetch_raid_data(session, tag, clan_tag) if is_raids() else {} + war_data = await mongo.war_timers.find_one({"_id": tag}, {"_id": 0}) or {} + return tag, api_data, raid_data, war_data, mongo_data + +async def assemble_full_player_data(tag, api_data, raid_data, war_data, mongo_data, legends_data): + player_data = mongo_data or {} + if api_data: + player_data.update(api_data) + + player_data["legends_by_season"] = legends_data.get(tag, {}) + player_data.pop("legends", None) + + player_data["legend_eos_ranking"] = await get_legend_rankings_for_tag(tag) + player_data["rankings"] = await get_current_rankings(tag) + player_data["raid_data"] = raid_data + player_data["war_data"] = war_data + + return player_data + + +def compute_warhit_stats( + tag: str, + townhall_level: int, + attacks: List[dict], + defenses: List[dict], + filter: PlayerWarhitsFilter, + missed_attacks: int = 0, + missed_defenses: int = 0 +): + from collections import defaultdict + + def filter_hit(hit, is_attack=True): + th_key = "defender" if is_attack else "attacker" + + if filter.min_stars is not None and hit["stars"] < filter.min_stars: + return False + if filter.max_stars is not None and hit["stars"] > filter.max_stars: + return False + if filter.min_destruction is not None and hit["destructionPercentage"] < filter.min_destruction: + return False + if filter.max_destruction is not None and hit["destructionPercentage"] > filter.max_destruction: + return False + if filter.enemy_th is not None and hit[th_key].get("townhallLevel") != filter.enemy_th: + return False + if filter.map_position_min is not None and hit[th_key].get("mapPosition") < filter.map_position_min: + return False + if filter.map_position_max is not None and hit[th_key].get("mapPosition") > filter.map_position_max: + return False + if filter.own_th is not None and hit["attacker"].get("townhallLevel") != filter.own_th: + return False + return True + + filtered_attacks = [a for a in attacks if filter_hit(a, is_attack=True)] + filtered_defenses = [d for d in defenses if filter_hit(d, is_attack=False)] + + def average(key, lst): + return round(sum(hit[key] for hit in lst) / len(lst), 2) if lst else 0.0 + + def count_stars(lst): + star_count = defaultdict(int) + for hit in lst: + star_count[hit["stars"]] += 1 + return {str(k): star_count[k] for k in range(4)} + + def group_by_enemy_th(lst, is_attack=True): + th_key = "defender" if is_attack else "attacker" + grouped = defaultdict(list) + for hit in lst: + enemy_th_level = hit[th_key]["townhallLevel"] + grouped[enemy_th_level].append(hit) + + result = {} + for th, hits in grouped.items(): + result[str(th)] = { + "averageStars": average("stars", hits), + "averageDestruction": average("destructionPercentage", hits), + "count": len(hits), + "starsCount": count_stars(hits), + } + return result + + return { + "tag": tag, + "townhallLevel": townhall_level, + "totalAttacks": len(filtered_attacks), + "totalDefenses": len(filtered_defenses), + "missedAttacks": missed_attacks, + "missedDefenses": missed_defenses, + "averageStars": average("stars", filtered_attacks), + "averageDestruction": average("destructionPercentage", filtered_attacks), + "averageStarsDef": average("stars", filtered_defenses), + "averageDestructionDef": average("destructionPercentage", filtered_defenses), + "starsCount": count_stars(filtered_attacks), + "starsCountDef": count_stars(filtered_defenses), + "byEnemyTownhall": group_by_enemy_th(filtered_attacks, is_attack=True), + "byEnemyTownhallDef": group_by_enemy_th(filtered_defenses, is_attack=False), + "timeRange": { + "start": filter.timestamp_start, + "end": filter.timestamp_end, + }, + "warType": filter.type, + } diff --git a/routers/v2/war/models.py b/routers/v2/war/models.py new file mode 100644 index 00000000..e69de29b From 4232e3df69d4142197f70e017b9f41112ec5137d Mon Sep 17 00:00:00 2001 From: Destinea Date: Thu, 10 Apr 2025 18:01:21 +0200 Subject: [PATCH 086/174] feat: Added same TH filter in warhits endpoint --- routers/v2/player/endpoints.py | 6 ++++++ routers/v2/player/models.py | 1 + 2 files changed, 7 insertions(+) diff --git a/routers/v2/player/endpoints.py b/routers/v2/player/endpoints.py index 2c019773..7f9610b5 100644 --- a/routers/v2/player/endpoints.py +++ b/routers/v2/player/endpoints.py @@ -413,6 +413,10 @@ async def players_warhits_stats(filter: PlayerWarhitsFilter, request: Request): } if filter.enemy_th and atk.defender.town_hall != filter.enemy_th: + print("Enemy TH filter applied") + continue + if filter.same_th and atk.defender.town_hall != war_member.town_hall: + print("Same TH filter applied") continue if filter.fresh_only and not atk.is_fresh_attack: continue @@ -444,6 +448,8 @@ async def players_warhits_stats(filter: PlayerWarhitsFilter, request: Request): if filter.enemy_th and defn.attacker.town_hall != filter.enemy_th: continue + if filter.same_th and defn.defender.town_hall != war_member.town_hall: + continue if filter.fresh_only and not defn.is_fresh_attack: continue if filter.min_stars and defn.stars < filter.min_stars: diff --git a/routers/v2/player/models.py b/routers/v2/player/models.py index 881f4c04..081b87b0 100644 --- a/routers/v2/player/models.py +++ b/routers/v2/player/models.py @@ -12,6 +12,7 @@ class PlayerWarhitsFilter(BaseModel): limit: int = 50 own_th: Optional[int] = None enemy_th: Optional[int] = None + same_th: bool = False type: str = "all" fresh_only: Optional[bool] = None min_stars: Optional[int] = None From 49f0c7e2ee6e6ac19ffcf9ed6d6a69ef6c1d7f50 Mon Sep 17 00:00:00 2001 From: Destinea Date: Thu, 10 Apr 2025 18:22:48 +0200 Subject: [PATCH 087/174] feat: Added warCounts --- routers/v2/player/endpoints.py | 14 ++++++++------ routers/v2/player/utils.py | 18 +++++++++++------- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/routers/v2/player/endpoints.py b/routers/v2/player/endpoints.py index 7f9610b5..8bdabb1d 100644 --- a/routers/v2/player/endpoints.py +++ b/routers/v2/player/endpoints.py @@ -377,12 +377,14 @@ async def players_warhits_stats(filter: PlayerWarhitsFilter, request: Request): wars = await mongo.clan_wars.aggregate(pipeline, allowDiskUse=True).to_list(length=None) found_wars = set() - player_data = {tag: {"attacks": [], "defenses": [], "townhall": None, "missedAttacks": 0, "missedDefenses": 0} for tag in player_tags} + player_data = {tag: {"attacks": [], "defenses": [], "townhall": None, "missedAttacks": 0, "missedDefenses": 0, + "warsCount": 0} for tag in player_tags} for war_doc in wars: war_raw = war_doc["data"] war = coc.ClanWar(data=war_raw, client=client) - war_id = "-".join(sorted([war.clan_tag, war.opponent.tag])) + f"-{int(war.preparation_start_time.time.timestamp())}" + war_id = "-".join( + sorted([war.clan_tag, war.opponent.tag])) + f"-{int(war.preparation_start_time.time.timestamp())}" if war_id in found_wars: continue if len(found_wars) >= filter.limit: @@ -400,6 +402,7 @@ async def players_warhits_stats(filter: PlayerWarhitsFilter, request: Request): player_data[tag]["townhall"] = war_member.town_hall player_data[tag]["missedAttacks"] += war.attacks_per_member - len(war_member.attacks) player_data[tag]["missedDefenses"] += 1 if not war_member.best_opponent_attack else 0 + player_data[tag]["warsCount"] += 1 for atk in war_member.attacks: atk_data = atk._raw_data @@ -413,10 +416,8 @@ async def players_warhits_stats(filter: PlayerWarhitsFilter, request: Request): } if filter.enemy_th and atk.defender.town_hall != filter.enemy_th: - print("Enemy TH filter applied") continue if filter.same_th and atk.defender.town_hall != war_member.town_hall: - print("Same TH filter applied") continue if filter.fresh_only and not atk.is_fresh_attack: continue @@ -478,10 +479,11 @@ async def players_warhits_stats(filter: PlayerWarhitsFilter, request: Request): defenses=data["defenses"], filter=filter, missed_attacks=data["missedAttacks"], - missed_defenses=data["missedDefenses"] + missed_defenses=data["missedDefenses"], + num_wars=data["warsCount"] ), "attacks": data["attacks"], "defenses": data["defenses"] }) - return {"items": enriched_data} \ No newline at end of file + return {"items": enriched_data} diff --git a/routers/v2/player/utils.py b/routers/v2/player/utils.py index 74fc928b..9c4c08a2 100644 --- a/routers/v2/player/utils.py +++ b/routers/v2/player/utils.py @@ -310,6 +310,7 @@ async def get_current_rankings(tag: str) -> dict: ranking_data["global_rank"] = fallback.get("rank") return ranking_data + async def fetch_player_api_data(session, tag: str): url = f"https://proxy.clashk.ing/v1/players/{tag.replace('#', '%23')}" async with session.get(url) as response: @@ -344,6 +345,7 @@ async def fetch_full_player_data(session, tag: str, mongo_data: dict): war_data = await mongo.war_timers.find_one({"_id": tag}, {"_id": 0}) or {} return tag, api_data, raid_data, war_data, mongo_data + async def assemble_full_player_data(tag, api_data, raid_data, war_data, mongo_data, legends_data): player_data = mongo_data or {} if api_data: @@ -361,13 +363,14 @@ async def assemble_full_player_data(tag, api_data, raid_data, war_data, mongo_da def compute_warhit_stats( - tag: str, - townhall_level: int, - attacks: List[dict], - defenses: List[dict], - filter: PlayerWarhitsFilter, - missed_attacks: int = 0, - missed_defenses: int = 0 + tag: str, + townhall_level: int, + attacks: List[dict], + defenses: List[dict], + filter: PlayerWarhitsFilter, + missed_attacks: int = 0, + missed_defenses: int = 0, + num_wars: int = 0, ): from collections import defaultdict @@ -424,6 +427,7 @@ def group_by_enemy_th(lst, is_attack=True): return { "tag": tag, "townhallLevel": townhall_level, + "warsCounts": num_wars, "totalAttacks": len(filtered_attacks), "totalDefenses": len(filtered_defenses), "missedAttacks": missed_attacks, From f14a9ae0d52f2bad6082d6541ad51079009c501e Mon Sep 17 00:00:00 2001 From: Destinea Date: Fri, 11 Apr 2025 07:02:26 +0200 Subject: [PATCH 088/174] fix: Limit for each profile --- routers/v2/player/endpoints.py | 99 ++++++++++++++++------------------ routers/v2/player/models.py | 2 +- routers/v2/player/utils.py | 2 - 3 files changed, 48 insertions(+), 55 deletions(-) diff --git a/routers/v2/player/endpoints.py b/routers/v2/player/endpoints.py index 8bdabb1d..47ea4d1d 100644 --- a/routers/v2/player/endpoints.py +++ b/routers/v2/player/endpoints.py @@ -358,51 +358,48 @@ async def players_warhits_stats(filter: PlayerWarhitsFilter, request: Request): player_tags = [fix_tag(tag) for tag in filter.player_tags] - pipeline = [ - {"$match": { - "$and": [ - {"$or": [ - {"data.clan.members.tag": {"$in": player_tags}}, - {"data.opponent.members.tag": {"$in": player_tags}} - ]}, - {"data.preparationStartTime": {"$gte": START}}, - {"data.preparationStartTime": {"$lte": END}} - ] - }}, - {"$unset": ["_id"]}, - {"$project": {"data": "$data"}}, - {"$sort": {"data.preparationStartTime": -1}} - ] + async def fetch_player_wars(tag: str): + pipeline = [ + {"$match": { + "$and": [ + {"$or": [ + {"data.clan.members.tag": tag}, + {"data.opponent.members.tag": tag} + ]}, + {"data.preparationStartTime": {"$gte": START}}, + {"data.preparationStartTime": {"$lte": END}} + ] + }}, + {"$unset": ["_id"]}, + {"$project": {"data": "$data"}}, + {"$sort": {"data.preparationStartTime": -1}}, + {"$limit": filter.limit}, + ] - wars = await mongo.clan_wars.aggregate(pipeline, allowDiskUse=True).to_list(length=None) + wars_docs = await mongo.clan_wars.aggregate(pipeline, allowDiskUse=True).to_list(length=None) - found_wars = set() - player_data = {tag: {"attacks": [], "defenses": [], "townhall": None, "missedAttacks": 0, "missedDefenses": 0, - "warsCount": 0} for tag in player_tags} + player_data = {"attacks": [], "defenses": [], "townhall": None, "missedAttacks": 0, "missedDefenses": 0, "warsCount": 0} + found_wars = set() - for war_doc in wars: - war_raw = war_doc["data"] - war = coc.ClanWar(data=war_raw, client=client) - war_id = "-".join( - sorted([war.clan_tag, war.opponent.tag])) + f"-{int(war.preparation_start_time.time.timestamp())}" - if war_id in found_wars: - continue - if len(found_wars) >= filter.limit: - break - found_wars.add(war_id) + for war_doc in wars_docs: + war_raw = war_doc["data"] + war = coc.ClanWar(data=war_raw, client=client) + war_id = "-".join(sorted([war.clan_tag, war.opponent.tag])) + f"-{int(war.preparation_start_time.time.timestamp())}" + if war_id in found_wars: + continue + found_wars.add(war_id) - if filter.type != "all" and war.type.lower() != filter.type.lower(): - continue + if filter.type != "all" and war.type.lower() != filter.type.lower(): + continue - for tag in player_tags: war_member = war.get_member(tag) if not war_member: continue - player_data[tag]["townhall"] = war_member.town_hall - player_data[tag]["missedAttacks"] += war.attacks_per_member - len(war_member.attacks) - player_data[tag]["missedDefenses"] += 1 if not war_member.best_opponent_attack else 0 - player_data[tag]["warsCount"] += 1 + player_data["townhall"] = war_member.town_hall + player_data["missedAttacks"] += war.attacks_per_member - len(war_member.attacks) + player_data["missedDefenses"] += 1 if not war_member.best_opponent_attack else 0 + player_data["warsCount"] += 1 for atk in war_member.attacks: atk_data = atk._raw_data @@ -434,7 +431,7 @@ async def players_warhits_stats(filter: PlayerWarhitsFilter, request: Request): if filter.map_position_max and atk.defender.map_position > filter.map_position_max: continue - player_data[tag]["attacks"].append(atk_data) + player_data["attacks"].append(atk_data) for defn in war_member.defenses: def_data = defn._raw_data @@ -466,24 +463,22 @@ async def players_warhits_stats(filter: PlayerWarhitsFilter, request: Request): if filter.map_position_max and defn.attacker.map_position > filter.map_position_max: continue - player_data[tag]["defenses"].append(def_data) + player_data["defenses"].append(def_data) - enriched_data = [] - for tag, data in player_data.items(): - enriched_data.append({ + return { "tag": tag, "stats": compute_warhit_stats( - tag=tag, - townhall_level=data["townhall"], - attacks=data["attacks"], - defenses=data["defenses"], + townhall_level=player_data["townhall"], + attacks=player_data["attacks"], + defenses=player_data["defenses"], filter=filter, - missed_attacks=data["missedAttacks"], - missed_defenses=data["missedDefenses"], - num_wars=data["warsCount"] + missed_attacks=player_data["missedAttacks"], + missed_defenses=player_data["missedDefenses"], + num_wars=player_data["warsCount"] ), - "attacks": data["attacks"], - "defenses": data["defenses"] - }) + "attacks": player_data["attacks"], + "defenses": player_data["defenses"] + } - return {"items": enriched_data} + results = await asyncio.gather(*[fetch_player_wars(tag) for tag in player_tags]) + return {"items": results} \ No newline at end of file diff --git a/routers/v2/player/models.py b/routers/v2/player/models.py index 081b87b0..041cb781 100644 --- a/routers/v2/player/models.py +++ b/routers/v2/player/models.py @@ -9,7 +9,7 @@ class PlayerWarhitsFilter(BaseModel): player_tags: List[str] timestamp_start: int = 0 timestamp_end: int = 2527625513 - limit: int = 50 + limit: int = None own_th: Optional[int] = None enemy_th: Optional[int] = None same_th: bool = False diff --git a/routers/v2/player/utils.py b/routers/v2/player/utils.py index 9c4c08a2..d80b70cb 100644 --- a/routers/v2/player/utils.py +++ b/routers/v2/player/utils.py @@ -363,7 +363,6 @@ async def assemble_full_player_data(tag, api_data, raid_data, war_data, mongo_da def compute_warhit_stats( - tag: str, townhall_level: int, attacks: List[dict], defenses: List[dict], @@ -425,7 +424,6 @@ def group_by_enemy_th(lst, is_attack=True): return result return { - "tag": tag, "townhallLevel": townhall_level, "warsCounts": num_wars, "totalAttacks": len(filtered_attacks), From 5638223e669167e09e7ac083a1b29155bab53231 Mon Sep 17 00:00:00 2001 From: Destinea Date: Fri, 11 Apr 2025 07:56:31 +0200 Subject: [PATCH 089/174] feat: Separated player endpoint in two endpoints --- routers/v2/clan/endpoints.py | 4 +-- routers/v2/player/endpoints.py | 49 +++++++++++++++++++++++++++------- routers/v2/player/models.py | 3 ++- routers/v2/player/utils.py | 14 +++++----- 4 files changed, 49 insertions(+), 21 deletions(-) diff --git a/routers/v2/clan/endpoints.py b/routers/v2/clan/endpoints.py index 5c16290b..fc11a3e5 100644 --- a/routers/v2/clan/endpoints.py +++ b/routers/v2/clan/endpoints.py @@ -111,7 +111,7 @@ async def clan_board_totals(clan_tag: str, request: Request, body: PlayerTagsReq } -@router.post("/clans/full-stats", name="Get full stats for a list of clans") +@router.post("/clans/details", name="Get full stats for a list of clans") async def get_clans_stats(request: Request, body: ClanTagsRequest): """Retrieve Clash of Clans account details for a list of clans.""" @@ -133,7 +133,7 @@ async def fetch_clan_data(session, tag): return {"items": remove_id_fields(api_responses)} -@router.get("/clan/{clan_tag}/full-stats", name="Get full stats for a single clan") +@router.get("/clan/{clan_tag}/details", name="Get full stats for a single clan") async def get_clan_stats(clan_tag: str, request: Request): """Retrieve Clash of Clans account details for a single clan.""" diff --git a/routers/v2/player/endpoints.py b/routers/v2/player/endpoints.py index 47ea4d1d..23e576b5 100644 --- a/routers/v2/player/endpoints.py +++ b/routers/v2/player/endpoints.py @@ -3,11 +3,11 @@ import coc import aiohttp -from fastapi import HTTPException +from fastapi import HTTPException, Query from fastapi import APIRouter, Request, Response import pendulum as pend from routers.v2.player.utils import get_legend_rankings_for_tag, get_legend_stats_common, get_current_rankings, \ - assemble_full_player_data, fetch_full_player_data, compute_warhit_stats + assemble_full_player_data, fetch_full_player_data, compute_warhit_stats, fetch_player_api_data from utils.time import get_season_raid_weeks, season_start_end, CLASH_ISO_FORMAT, is_raids from utils.utils import fix_tag, remove_id_fields, bulk_requests from utils.database import MongoClient as mongo @@ -89,8 +89,31 @@ def fetch_attribute(data: dict, attr: str): return {"items": sorted(new_data, key=lambda x: (x["value"] is not None, x["value"]), reverse=True)} +@router.post("/players", name="Get full stats for a list of players") +async def get_players_stats(body: PlayerTagsRequest, request: Request): + """Quickly retrieve base API player data only for a list of players.""" + + if not body.player_tags: + raise HTTPException(status_code=400, detail="player_tags cannot be empty") + + player_tags = [fix_tag(tag) for tag in body.player_tags] -@router.post("/players/full-stats", name="Get full stats for a list of players") + async with aiohttp.ClientSession() as session: + fetch_tasks = [fetch_player_api_data(session, tag) for tag in player_tags] + api_results = await asyncio.gather(*fetch_tasks) + + result = [] + for tag, data in zip(player_tags, api_results): + if data: + result.append({ + "tag": tag, + **data + }) + + return {"items": result} + + +@router.post("/players/extended", name="Get full stats for a list of players") async def get_players_stats(body: PlayerTagsRequest, request: Request): """Retrieve Clash of Clans account details for a list of players.""" @@ -129,22 +152,28 @@ async def get_players_stats(body: PlayerTagsRequest, request: Request): # Fetch API, raid & war data per player in parallel async with aiohttp.ClientSession() as session: fetch_tasks = [ - fetch_full_player_data(session, tag, mongo_data_dict.get(tag, {})) + fetch_full_player_data( + session, + tag, + mongo_data_dict.get(tag, {}), + body.clan_tags.get(tag) if body.clan_tags else None + ) for tag in player_tags ] + player_results = await asyncio.gather(*fetch_tasks) # Assemble enriched player data in parallel combined_results = await asyncio.gather(*[ - assemble_full_player_data(tag, api_data, raid_data, war_data, mongo_data, tag_to_legends) - for tag, api_data, raid_data, war_data, mongo_data in player_results + assemble_full_player_data(tag, raid_data, war_data, mongo_data, tag_to_legends) + for tag, raid_data, war_data, mongo_data in player_results ]) return {"items": remove_id_fields(combined_results)} -@router.get("/player/{player_tag}/full-stats", name="Get full stats for a single player") -async def get_player_stats(player_tag: str, request: Request): +@router.get("/player/{player_tag}/extended", name="Get full stats for a single player") +async def get_player_stats(player_tag: str, request: Request, clan_tag: str = Query(None)): if not player_tag: raise HTTPException(status_code=400, detail="player_tag is required") @@ -174,9 +203,9 @@ async def get_player_stats(player_tag: str, request: Request): tag_to_legends = {entry["tag"]: entry["legends_by_season"] for entry in legends_data} async with aiohttp.ClientSession() as session: - tag, api_data, raid_data, war_data, mongo_data = await fetch_full_player_data(session, fixed_tag, mongo_data) + tag, raid_data, war_data, mongo_data = await fetch_full_player_data(session, fixed_tag, mongo_data, clan_tag) - player_data = await assemble_full_player_data(tag, api_data, raid_data, war_data, mongo_data, tag_to_legends) + player_data = await assemble_full_player_data(tag, raid_data, war_data, mongo_data, tag_to_legends) return remove_id_fields(player_data) diff --git a/routers/v2/player/models.py b/routers/v2/player/models.py index 041cb781..c325a665 100644 --- a/routers/v2/player/models.py +++ b/routers/v2/player/models.py @@ -1,9 +1,10 @@ from pydantic import BaseModel -from typing import List, Optional +from typing import List, Optional, Dict class PlayerTagsRequest(BaseModel): player_tags: List[str] + clan_tags: Optional[Dict[str, str]] = None # {"player_tag": "clan_tag"} class PlayerWarhitsFilter(BaseModel): player_tags: List[str] diff --git a/routers/v2/player/utils.py b/routers/v2/player/utils.py index d80b70cb..62a5e83e 100644 --- a/routers/v2/player/utils.py +++ b/routers/v2/player/utils.py @@ -37,7 +37,7 @@ def get_legend_season_range(date: pendulum.DateTime) -> tuple[pendulum.DateTime, return season_start, season_end -from typing import Union, List +from typing import Union, List, Optional async def get_legend_stats_common(player_tags: Union[str, List[str]]) -> Union[dict, List[dict]]: @@ -338,22 +338,20 @@ async def fetch_raid_data(session, tag: str, player_clan_tag: str): return raid_data -async def fetch_full_player_data(session, tag: str, mongo_data: dict): - api_data = await fetch_player_api_data(session, tag) - clan_tag = api_data.get("clan", {}).get("tag") if api_data else None +async def fetch_full_player_data(session, tag: str, mongo_data: dict, clan_tag: Optional[str]): raid_data = await fetch_raid_data(session, tag, clan_tag) if is_raids() else {} war_data = await mongo.war_timers.find_one({"_id": tag}, {"_id": 0}) or {} - return tag, api_data, raid_data, war_data, mongo_data + return tag, raid_data, war_data, mongo_data -async def assemble_full_player_data(tag, api_data, raid_data, war_data, mongo_data, legends_data): +async def assemble_full_player_data(tag, raid_data, war_data, mongo_data, legends_data): player_data = mongo_data or {} - if api_data: - player_data.update(api_data) + # Add legends data player_data["legends_by_season"] = legends_data.get(tag, {}) player_data.pop("legends", None) + # Add additional stats player_data["legend_eos_ranking"] = await get_legend_rankings_for_tag(tag) player_data["rankings"] = await get_current_rankings(tag) player_data["raid_data"] = raid_data From 212d65170683eba87735bc6bed822b5181db9cae Mon Sep 17 00:00:00 2001 From: Destinea Date: Fri, 11 Apr 2025 10:33:06 +0200 Subject: [PATCH 090/174] feat: Added war data in warhits --- routers/v2/player/endpoints.py | 40 +++++++++++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/routers/v2/player/endpoints.py b/routers/v2/player/endpoints.py index 23e576b5..6e3c6a6d 100644 --- a/routers/v2/player/endpoints.py +++ b/routers/v2/player/endpoints.py @@ -407,7 +407,15 @@ async def fetch_player_wars(tag: str): wars_docs = await mongo.clan_wars.aggregate(pipeline, allowDiskUse=True).to_list(length=None) - player_data = {"attacks": [], "defenses": [], "townhall": None, "missedAttacks": 0, "missedDefenses": 0, "warsCount": 0} + player_data = { + "attacks": [], + "defenses": [], + "townhall": None, + "missedAttacks": 0, + "missedDefenses": 0, + "warsCount": 0, + "wars": [] + } found_wars = set() for war_doc in wars_docs: @@ -430,6 +438,25 @@ async def fetch_player_wars(tag: str): player_data["missedDefenses"] += 1 if not war_member.best_opponent_attack else 0 player_data["warsCount"] += 1 + # Base war and member data + war_data = war._raw_data.copy() + for field in ["status_code", "_response_retry", "timestamp"]: + war_data.pop(field, None) + war_data["type"] = war.type + war_data["clan"].pop("members", None) + war_data["opponent"].pop("members", None) + + member_raw_data = war_member._raw_data.copy() + member_raw_data.pop("attacks", None) + member_raw_data.pop("bestOpponentAttack", None) + + war_info = { + "war_data": war_data, + "member_data": member_raw_data, + "attacks": [], + "defenses": [] + } + for atk in war_member.attacks: atk_data = atk._raw_data atk_data["defender"] = { @@ -440,6 +467,8 @@ async def fetch_player_wars(tag: str): atk_data["attacker"] = { "townhallLevel": war_member.town_hall } + atk_data["attack_order"] = atk.order + atk_data["fresh"] = atk.is_fresh_attack if filter.enemy_th and atk.defender.town_hall != filter.enemy_th: continue @@ -461,6 +490,7 @@ async def fetch_player_wars(tag: str): continue player_data["attacks"].append(atk_data) + war_info["attacks"].append(atk_data) for defn in war_member.defenses: def_data = defn._raw_data @@ -472,6 +502,8 @@ async def fetch_player_wars(tag: str): def_data["defender"] = { "townhallLevel": war_member.town_hall } + def_data["attack_order"] = defn.order + def_data["fresh"] = defn.is_fresh_attack if filter.enemy_th and defn.attacker.town_hall != filter.enemy_th: continue @@ -493,6 +525,9 @@ async def fetch_player_wars(tag: str): continue player_data["defenses"].append(def_data) + war_info["defenses"].append(def_data) + + player_data["wars"].append(war_info) return { "tag": tag, @@ -505,8 +540,7 @@ async def fetch_player_wars(tag: str): missed_defenses=player_data["missedDefenses"], num_wars=player_data["warsCount"] ), - "attacks": player_data["attacks"], - "defenses": player_data["defenses"] + "wars": player_data["wars"] } results = await asyncio.gather(*[fetch_player_wars(tag) for tag in player_tags]) From 8ce1ecce0281f1115bf4282c5e938c378d1b7b50 Mon Sep 17 00:00:00 2001 From: Destinea Date: Fri, 11 Apr 2025 11:35:15 +0200 Subject: [PATCH 091/174] feat: Added players name --- routers/v2/player/endpoints.py | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/routers/v2/player/endpoints.py b/routers/v2/player/endpoints.py index 6e3c6a6d..9873b7fd 100644 --- a/routers/v2/player/endpoints.py +++ b/routers/v2/player/endpoints.py @@ -459,14 +459,17 @@ async def fetch_player_wars(tag: str): for atk in war_member.attacks: atk_data = atk._raw_data - atk_data["defender"] = { - "tag": atk.defender.tag, - "townhallLevel": atk.defender.town_hall, - "mapPosition": atk.defender.map_position, - } + defender_data = atk.defender._raw_data.copy() + defender_data.pop("attacks", None) + defender_data.pop("bestOpponentAttack", None) + atk_data["defender"] = defender_data atk_data["attacker"] = { - "townhallLevel": war_member.town_hall + "tag": war_member.tag, + "townhallLevel": war_member.town_hall, + "name": war_member.name, + "mapPosition": war_member.map_position } + atk_data["attack_order"] = atk.order atk_data["fresh"] = atk.is_fresh_attack @@ -494,13 +497,20 @@ async def fetch_player_wars(tag: str): for defn in war_member.defenses: def_data = defn._raw_data - def_data["attacker"] = { - "tag": defn.attacker.tag, - "townhallLevel": defn.attacker.town_hall, - "mapPosition": defn.attacker.map_position, - } + def_data["attack_order"] = defn.order + def_data["fresh"] = defn.is_fresh_attack + + if defn.attacker: + attacker_data = defn.attacker._raw_data.copy() + attacker_data.pop("attacks", None) + attacker_data.pop("bestOpponentAttack", None) + def_data["attacker"] = attacker_data + def_data["defender"] = { - "townhallLevel": war_member.town_hall + "tag": war_member.tag, + "townhallLevel": war_member.town_hall, + "name": war_member.name, + "mapPosition": war_member.map_position, } def_data["attack_order"] = defn.order def_data["fresh"] = defn.is_fresh_attack From 591777e30f6f1687750c9a0a9739c5b16e57729b Mon Sep 17 00:00:00 2001 From: Destinea Date: Fri, 11 Apr 2025 14:35:57 +0200 Subject: [PATCH 092/174] feat: Stats by war type --- routers/v2/player/endpoints.py | 44 ++++++++++++++++++++++++---------- routers/v2/player/utils.py | 44 ++++++++++++++++++++++++++++++---- 2 files changed, 72 insertions(+), 16 deletions(-) diff --git a/routers/v2/player/endpoints.py b/routers/v2/player/endpoints.py index 9873b7fd..cb54a74b 100644 --- a/routers/v2/player/endpoints.py +++ b/routers/v2/player/endpoints.py @@ -7,7 +7,8 @@ from fastapi import APIRouter, Request, Response import pendulum as pend from routers.v2.player.utils import get_legend_rankings_for_tag, get_legend_stats_common, get_current_rankings, \ - assemble_full_player_data, fetch_full_player_data, compute_warhit_stats, fetch_player_api_data + assemble_full_player_data, fetch_full_player_data, compute_warhit_stats, fetch_player_api_data, \ + group_attacks_by_type from utils.time import get_season_raid_weeks, season_start_end, CLASH_ISO_FORMAT, is_raids from utils.utils import fix_tag, remove_id_fields, bulk_requests from utils.database import MongoClient as mongo @@ -89,6 +90,7 @@ def fetch_attribute(data: dict, attr: str): return {"items": sorted(new_data, key=lambda x: (x["value"] is not None, x["value"]), reverse=True)} + @router.post("/players", name="Get full stats for a list of players") async def get_players_stats(body: PlayerTagsRequest, request: Request): """Quickly retrieve base API player data only for a list of players.""" @@ -421,7 +423,8 @@ async def fetch_player_wars(tag: str): for war_doc in wars_docs: war_raw = war_doc["data"] war = coc.ClanWar(data=war_raw, client=client) - war_id = "-".join(sorted([war.clan_tag, war.opponent.tag])) + f"-{int(war.preparation_start_time.time.timestamp())}" + war_id = "-".join( + sorted([war.clan_tag, war.opponent.tag])) + f"-{int(war.preparation_start_time.time.timestamp())}" if war_id in found_wars: continue found_wars.add(war_id) @@ -537,21 +540,38 @@ async def fetch_player_wars(tag: str): player_data["defenses"].append(def_data) war_info["defenses"].append(def_data) + war_info["missedAttacks"] = war.attacks_per_member - len(war_member.attacks) + war_info["missedDefenses"] = 1 if not war_member.best_opponent_attack else 0 player_data["wars"].append(war_info) - return { - "tag": tag, - "stats": compute_warhit_stats( + # Inject war_type dans chaque attaque et défense + for war_info in player_data["wars"]: + war_type = war_info["war_data"].get("type", "all").lower() + for atk in war_info["attacks"]: + atk["war_type"] = war_type + for dfn in war_info["defenses"]: + dfn["war_type"] = war_type + + grouped = group_attacks_by_type(player_data["attacks"], player_data["defenses"], player_data["wars"]) + + computed_stats = {} + for war_type, data in grouped.items(): + print(war_type, data) + computed_stats[war_type] = compute_warhit_stats( townhall_level=player_data["townhall"], - attacks=player_data["attacks"], - defenses=player_data["defenses"], + attacks=data["attacks"], + defenses=data["defenses"], filter=filter, - missed_attacks=player_data["missedAttacks"], - missed_defenses=player_data["missedDefenses"], - num_wars=player_data["warsCount"] - ), + missed_attacks=data["missedAttacks"], + missed_defenses=data["missedDefenses"], + num_wars=data["warsCounts"], + ) + + return { + "tag": tag, + "stats": computed_stats, "wars": player_data["wars"] } results = await asyncio.gather(*[fetch_player_wars(tag) for tag in player_tags]) - return {"items": results} \ No newline at end of file + return {"items": results} diff --git a/routers/v2/player/utils.py b/routers/v2/player/utils.py index 62a5e83e..b3d49fcb 100644 --- a/routers/v2/player/utils.py +++ b/routers/v2/player/utils.py @@ -371,6 +371,7 @@ def compute_warhit_stats( ): from collections import defaultdict + def filter_hit(hit, is_attack=True): th_key = "defender" if is_attack else "attacker" @@ -421,6 +422,8 @@ def group_by_enemy_th(lst, is_attack=True): } return result + print("Number of wars:", num_wars) + return { "townhallLevel": townhall_level, "warsCounts": num_wars, @@ -428,10 +431,6 @@ def group_by_enemy_th(lst, is_attack=True): "totalDefenses": len(filtered_defenses), "missedAttacks": missed_attacks, "missedDefenses": missed_defenses, - "averageStars": average("stars", filtered_attacks), - "averageDestruction": average("destructionPercentage", filtered_attacks), - "averageStarsDef": average("stars", filtered_defenses), - "averageDestructionDef": average("destructionPercentage", filtered_defenses), "starsCount": count_stars(filtered_attacks), "starsCountDef": count_stars(filtered_defenses), "byEnemyTownhall": group_by_enemy_th(filtered_attacks, is_attack=True), @@ -442,3 +441,40 @@ def group_by_enemy_th(lst, is_attack=True): }, "warType": filter.type, } + + +def group_attacks_by_type(attacks, defenses, wars): + grouped = { + "all": {"attacks": [], "defenses": [], "missedAttacks": 0, "missedDefenses": 0, "warsCounts": 0}, + "random": {"attacks": [], "defenses": [], "missedAttacks": 0, "missedDefenses": 0, "warsCounts": 0}, + "cwl": {"attacks": [], "defenses": [], "missedAttacks": 0, "missedDefenses": 0, "warsCounts": 0}, + "friendly": {"attacks": [], "defenses": [], "missedAttacks": 0, "missedDefenses": 0, "warsCounts": 0}, + } + + for war in wars: + war_type = war.get("war_data", {}).get("type", "all").lower() + missed_attacks = war.get("missedAttacks", 0) + missed_defenses = war.get("missedDefenses", 0) + + grouped["all"]["missedAttacks"] += missed_attacks + grouped["all"]["missedDefenses"] += missed_defenses + grouped["all"]["warsCounts"] += 1 + + if war_type in grouped: + grouped[war_type]["missedAttacks"] += missed_attacks + grouped[war_type]["missedDefenses"] += missed_defenses + grouped[war_type]["warsCounts"] += 1 + + for atk in attacks: + war_type = atk.get("war_type", "all").lower() + grouped["all"]["attacks"].append(atk) + if war_type in grouped: + grouped[war_type]["attacks"].append(atk) + + for dfn in defenses: + war_type = dfn.get("war_type", "all").lower() + grouped["all"]["defenses"].append(dfn) + if war_type in grouped: + grouped[war_type]["defenses"].append(dfn) + + return grouped \ No newline at end of file From 9bd197b23f348c5cb2a422e66b79e0b8122ae54e Mon Sep 17 00:00:00 2001 From: Destinea Date: Fri, 11 Apr 2025 14:44:14 +0200 Subject: [PATCH 093/174] chore: Moved some keys --- routers/v2/player/endpoints.py | 10 +++++++--- routers/v2/player/utils.py | 9 --------- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/routers/v2/player/endpoints.py b/routers/v2/player/endpoints.py index cb54a74b..33b08b7c 100644 --- a/routers/v2/player/endpoints.py +++ b/routers/v2/player/endpoints.py @@ -556,9 +556,7 @@ async def fetch_player_wars(tag: str): computed_stats = {} for war_type, data in grouped.items(): - print(war_type, data) computed_stats[war_type] = compute_warhit_stats( - townhall_level=player_data["townhall"], attacks=data["attacks"], defenses=data["defenses"], filter=filter, @@ -569,8 +567,14 @@ async def fetch_player_wars(tag: str): return { "tag": tag, + "townhallLevel": player_data["townhall"], "stats": computed_stats, - "wars": player_data["wars"] + "wars": player_data["wars"], + "timeRange": { + "start": filter.timestamp_start, + "end": filter.timestamp_end, + }, + "warType": filter.type, } results = await asyncio.gather(*[fetch_player_wars(tag) for tag in player_tags]) diff --git a/routers/v2/player/utils.py b/routers/v2/player/utils.py index b3d49fcb..0cf089b4 100644 --- a/routers/v2/player/utils.py +++ b/routers/v2/player/utils.py @@ -361,7 +361,6 @@ async def assemble_full_player_data(tag, raid_data, war_data, mongo_data, legend def compute_warhit_stats( - townhall_level: int, attacks: List[dict], defenses: List[dict], filter: PlayerWarhitsFilter, @@ -422,10 +421,7 @@ def group_by_enemy_th(lst, is_attack=True): } return result - print("Number of wars:", num_wars) - return { - "townhallLevel": townhall_level, "warsCounts": num_wars, "totalAttacks": len(filtered_attacks), "totalDefenses": len(filtered_defenses), @@ -435,11 +431,6 @@ def group_by_enemy_th(lst, is_attack=True): "starsCountDef": count_stars(filtered_defenses), "byEnemyTownhall": group_by_enemy_th(filtered_attacks, is_attack=True), "byEnemyTownhallDef": group_by_enemy_th(filtered_defenses, is_attack=False), - "timeRange": { - "start": filter.timestamp_start, - "end": filter.timestamp_end, - }, - "warType": filter.type, } From deb9e13943455d25babc3ddfdbce1bdc917ef0be Mon Sep 17 00:00:00 2001 From: Destinea Date: Fri, 11 Apr 2025 15:44:43 +0200 Subject: [PATCH 094/174] chore: Added one day to is_cwl --- utils/time.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/time.py b/utils/time.py index b22f0a45..62a07f35 100644 --- a/utils/time.py +++ b/utils/time.py @@ -152,7 +152,7 @@ def is_raids(): def is_cwl(): now = pend.now(tz=pend.UTC) - return 1 <= now.day <= 10 and not ((now.day == 1 and now.hour < 8) or (now.day == 11 and now.hour >= 8)) + return 1 <= now.day <= 10 and not ((now.day == 1 and now.hour < 8) or (now.day == 12 and now.hour >= 8)) def is_clan_games(): From dbb5602719987b6768fc198b8163a47202de6a6b Mon Sep 17 00:00:00 2001 From: Destinea Date: Fri, 11 Apr 2025 15:50:43 +0200 Subject: [PATCH 095/174] chore: Added one day to is_cwl --- utils/time.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/time.py b/utils/time.py index 62a07f35..4905acdd 100644 --- a/utils/time.py +++ b/utils/time.py @@ -152,7 +152,7 @@ def is_raids(): def is_cwl(): now = pend.now(tz=pend.UTC) - return 1 <= now.day <= 10 and not ((now.day == 1 and now.hour < 8) or (now.day == 12 and now.hour >= 8)) + return 1 <= now.day <= 11 and not ((now.day == 1 and now.hour < 8) or (now.day == 12 and now.hour >= 8)) def is_clan_games(): From 13cda4ebe2e279b99434fda22f81f4342e51d6fa Mon Sep 17 00:00:00 2001 From: Destinea Date: Fri, 11 Apr 2025 22:31:01 +0200 Subject: [PATCH 096/174] feat: Added /war/cwl-summary/export --- routers/v2/war/endpoints.py | 248 +++++++++++++++++++++++++++++++++++- 1 file changed, 247 insertions(+), 1 deletion(-) diff --git a/routers/v2/war/endpoints.py b/routers/v2/war/endpoints.py index 70d0c741..b5aa122c 100644 --- a/routers/v2/war/endpoints.py +++ b/routers/v2/war/endpoints.py @@ -1,10 +1,12 @@ import asyncio +import uuid import aiohttp from fastapi.responses import JSONResponse import pendulum as pend from fastapi import HTTPException from fastapi import APIRouter, Request +from openpyxl.cell import Cell from routers.v2.clan.models import ClanTagsRequest from routers.v2.war.utils import fetch_current_war_info_bypass, fetch_league_info, ranking_create, \ @@ -13,6 +15,14 @@ from utils.utils import fix_tag, remove_id_fields from utils.database import MongoClient as mongo +from fastapi.responses import FileResponse +from openpyxl import Workbook +from tempfile import NamedTemporaryFile +import datetime +from openpyxl.styles import Font, Alignment +from openpyxl.worksheet.dimensions import ColumnDimension +from openpyxl.worksheet.table import Table, TableStyleInfo + router = APIRouter(prefix="/v2", tags=["War"], include_in_schema=True) @@ -257,7 +267,6 @@ async def cwl_league_thresholds(request: Request): name="Get full war and CWL summary for a clan, including war state, CWL rounds and war details" ) async def get_clan_war_summary(clan_tag: str): - async with aiohttp.ClientSession() as session: war_info = await fetch_current_war_info_bypass(clan_tag, session) league_info = None @@ -311,3 +320,240 @@ async def process_clan(clan_tag: str): results = await asyncio.gather(*(process_clan(tag) for tag in body.clan_tags)) return JSONResponse(content={"items": results}) + + +@router.get("/war/cwl-summary/export", name="Export CWL summary and members stats to Excel") +async def export_cwl_summary_to_excel(tag: str): + from openpyxl.worksheet.table import Table, TableStyleInfo + + def format_table(sheet, start_row, end_row, table_name_hint): + # Generate a unique table name from the hint + table_name = f"{table_name_hint}_{uuid.uuid4().hex[:8]}" # max 31 chars + + # Bold + center header + for cell in sheet[start_row]: + cell.font = Font(bold=True) + cell.alignment = Alignment(horizontal="center") + + # Center all values + for row in sheet.iter_rows(min_row=start_row + 1, max_row=end_row): + for cell in row: + cell.alignment = Alignment(horizontal="center") + + # Adjust width + for column_cells in sheet.columns: + first_real_cell = next((cell for cell in column_cells if isinstance(cell, Cell)), None) + if not first_real_cell: + continue + length = max(len(str(cell.value)) if cell.value else 0 for cell in column_cells) + col_letter = first_real_cell.column_letter + sheet.column_dimensions[col_letter].width = length + 2 + + # Add table (with filters) + last_col_letter = sheet[end_row][len(sheet[end_row]) - 1].column_letter + table_range = f"A{start_row}:{last_col_letter}{end_row}" + table = Table(displayName=table_name, ref=table_range) + style = TableStyleInfo( + name="TableStyleMedium9", + showFirstColumn=False, + showLastColumn=False, + showRowStripes=True, + showColumnStripes=False + ) + table.tableStyleInfo = style + sheet.add_table(table) + + # Fetch league_info from the existing war-summary endpoint + async with aiohttp.ClientSession() as session: + try: + response = await session.get(f"http://localhost:8000/v2/war/{tag}/war-summary") + response.raise_for_status() + data = await response.json() + league_info = data.get("league_info") + except aiohttp.ClientError as e: + raise HTTPException(status_code=500, detail=f"Error fetching war summary: {str(e)}") + + if not league_info: + raise HTTPException(status_code=404, detail="No league info available") + + wb = Workbook() + ws_clan = wb.active + ws_clan.title = "Clan Summary" + clan_name = "" + + # Sort clans by rank + clans = sorted(league_info.get("clans", []), key=lambda c: c.get("rank", 0)) + + # Add header row for clans overview + ws_clan.append([ + "Rank", # Rank in CWL + "Name", # Clan name + "Tag", # Clan tag + "Level", # Clan level + "Wars Played", # Number of wars played + "Total Stars", # Total stars + "Total Destruction %", # Total destruction % dealt + "Destruction Taken %", # Total destruction % received + "Attack Count", # Number of attacks performed + "Missed Attacks" # Number of missed attacks + ]) + start_row = ws_clan.max_row + + for clan in clans: + ws_clan.append([ + clan.get("rank"), + clan.get("name"), + clan.get("tag"), + clan.get("clanLevel"), + clan.get("wars_played"), + clan.get("total_stars"), + clan.get("total_destruction"), + clan.get("total_destruction_inflicted"), + clan.get("attack_count"), + clan.get("missed_attacks"), + ]) + + end_row = ws_clan.max_row + + format_table(ws_clan, start_row, end_row, "ClanSummary") + + # Find our clan and create a separate sheet for its members + tag = tag.replace("!", "#") + + for clan in clans: + sheet = wb.create_sheet(title=clan.get("name", "Clan")[:30]) + + row = sheet.max_row + sheet.merge_cells(f"A{row}:P{row}") + cell = sheet.cell(row=row, column=1) + cell.value = "⚔️ Attacks" + cell.font = Font(bold=True) + cell.alignment = Alignment(horizontal="center") + headers_attack = [ + "Name", "Tag", "TH", "War Participated", "Attacks Done", "Missed", + "Stars", "Avg Stars", "3 Stars", + "2 Stars", "1 Star", "0 Star", "3 Stars %", "0-1 Stars %", + "Total Destruction", "Avg Destruction", "Avg Map Position", "Avg Opponent Map Position", + "Avg Order", "Avg Opponent TH Level", "Lower TH", "Upper TH" + ] + + sheet.append(headers_attack) + attack_start_row = sheet.max_row + + for member in clan.get("members", []): + if member.get("avgMapPosition"): + attacks = member.get("attacks", {}) or {} + war_participated = attacks.get("missed_attacks", 0) + attacks.get("attack_count", 0) + attack_count = attacks.get("attack_count", 0) + stars_total = attacks.get("stars", 0) + destruction_total = attacks.get("total_destruction", 0) + + three_stars = sum((attacks.get("3_stars") or {}).values()) + two_stars = sum((attacks.get("2_stars") or {}).values()) + one_star = sum((attacks.get("1_star") or {}).values()) + zero_star = sum((attacks.get("0_star") or {}).values()) + + sheet.append([ + member.get("name"), + member.get("tag"), + member.get("townHallLevel"), + war_participated, + attack_count, + attacks.get("missed_attacks", 0), + stars_total, + round(stars_total / attack_count if attack_count > 0 else 0, 2), + three_stars, + two_stars, + one_star, + zero_star, + round((three_stars / attack_count) * 100 if attack_count > 0 else 0, 2), + round((zero_star + one_star) * 100 / attack_count if attack_count > 0 else 0, 2), + destruction_total, + round(destruction_total / attack_count if attack_count > 0 else 0, 2), + member.get("avgMapPosition"), + member.get("avgOpponentPosition"), + member.get("avgAttackOrder"), + member.get("avgOpponentTownHallLevel"), + member.get("attackLowerTHLevel"), + member.get("attackUpperTHLevel"), + ]) + + attack_end_row = sheet.max_row + format_table(sheet, attack_start_row, attack_end_row, "AttacksTable") + + sheet.append([]) # Empty row + sheet.append([]) # Empty row + # Merge cells A{row} to Q{row} and write "🛡️ Defenses" + row = sheet.max_row + 2 + sheet.merge_cells(f"A{row}:P{row}") + cell = sheet.cell(row=row, column=1) + cell.value = "🛡️ Defenses" + cell.font = Font(bold=True) + cell.alignment = Alignment(horizontal="center") + headers_defense = [ + "Name", "Tag", "TH", "War Participated", "Defenses Received", "Missed", + "Stars Taken", "Avg Stars", "3 Stars", + "2 Stars", "1 Star", "0 Star", "3 Stars %", "0-1 Stars %", + "Total Destruction", "Avg Destruction", "Avg Attacker Map Position", "Avg Map Position", + "Avg Opponent Order", + "Avg Opponent TH Level", "Lower TH", "Upper TH" + ] + sheet.append(headers_defense) + defense_start_row = sheet.max_row + + for member in clan.get("members", []): + if member.get("avgMapPosition"): + attacks = member.get("attacks", {}) or {} + war_participated = attacks.get("missed_attacks", 0) + attacks.get("attack_count", 0) + defenses = member.get("defense", {}) or {} + defense_count = defenses.get("defense_count", 0) + stars_total = defenses.get("stars", 0) + destruction_total = defenses.get("total_destruction", 0) + missed_defenses = defenses.get("missed_defenses", 0) + + three_stars = sum((defenses.get("3_stars") or {}).values()) + two_stars = sum((defenses.get("2_stars") or {}).values()) + one_star = sum((defenses.get("1_star") or {}).values()) + zero_star = sum((defenses.get("0_star") or {}).values()) + + sheet.append([ + member.get("name"), + member.get("tag"), + member.get("townHallLevel"), + war_participated, + defense_count, + missed_defenses, + stars_total, + round(stars_total / defense_count * 100 if defense_count > 0 else 0, 2), + three_stars, + two_stars, + one_star, + zero_star, + round((three_stars / defense_count) * 100 if defense_count > 0 else 0, 2), + round(((zero_star + one_star) * 100 / defense_count) if defense_count > 0 else 0, 2), + destruction_total, + round(destruction_total / defense_count if defense_count > 0 else 0, 2), + member.get("avgOpponentPosition"), + member.get("avgMapPosition"), + member.get("avgDefenseOrder"), + member.get("avgAttackerTownHallLevel"), + member.get("defenseLowerTHLevel"), + member.get("defenseUpperTHLevel"), + ]) + + defense_end_row = sheet.max_row + format_table(sheet, defense_start_row, defense_end_row, "DefensesTable") + + # Save the Excel file to a temporary location + tmp = NamedTemporaryFile(delete=False, suffix=".xlsx") + wb.save(tmp.name) + tmp.seek(0) + + clan_name = next((c for c in clans if c.get("tag") == tag), None).get("name") + season = league_info.get("season") + filename = f"cwl_summary_{clan_name}_{season}.xlsx" + return FileResponse( + path=tmp.name, + filename=filename, + media_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' + ) From 22bc2f993a0fe75469e5b88ebce7cf1cc47acdff Mon Sep 17 00:00:00 2001 From: Destinea Date: Sat, 12 Apr 2025 09:46:38 +0200 Subject: [PATCH 097/174] feat: Clashking them + fix on missed attacks --- routers/v2/war/endpoints.py | 187 +++++++++++++++++++++++------------- routers/v2/war/utils.py | 17 +++- utils/time.py | 2 +- 3 files changed, 136 insertions(+), 70 deletions(-) diff --git a/routers/v2/war/endpoints.py b/routers/v2/war/endpoints.py index b5aa122c..99abff26 100644 --- a/routers/v2/war/endpoints.py +++ b/routers/v2/war/endpoints.py @@ -1,4 +1,6 @@ import asyncio +import os +import tempfile import uuid import aiohttp @@ -18,10 +20,9 @@ from fastapi.responses import FileResponse from openpyxl import Workbook from tempfile import NamedTemporaryFile -import datetime -from openpyxl.styles import Font, Alignment -from openpyxl.worksheet.dimensions import ColumnDimension +from openpyxl.styles import Font, Alignment, PatternFill, Border, Side from openpyxl.worksheet.table import Table, TableStyleInfo +from openpyxl.drawing.image import Image as OpenpyxlImage router = APIRouter(prefix="/v2", tags=["War"], include_in_schema=True) @@ -279,7 +280,7 @@ async def get_clan_war_summary(clan_tag: str): war_tags = round_entry.get("warTags", []) war_league_infos.extend(await fetch_war_league_infos(war_tags, session)) - league_info = await enrich_league_info(league_info, war_league_infos) + league_info = await enrich_league_info(league_info, war_league_infos, session) return JSONResponse(content={ "isInWar": war_info["state"] == "war", @@ -307,7 +308,7 @@ async def process_clan(clan_tag: str): if league_info and "rounds" in league_info: war_tags = [tag for r in league_info["rounds"] for tag in r.get("warTags", [])] war_league_infos = await fetch_war_league_infos(war_tags, session) - league_info = await enrich_league_info(league_info, war_league_infos) + league_info = await enrich_league_info(league_info, war_league_infos, session) return { "clan_tag": clan_tag, @@ -322,25 +323,33 @@ async def process_clan(clan_tag: str): return JSONResponse(content={"items": results}) + @router.get("/war/cwl-summary/export", name="Export CWL summary and members stats to Excel") async def export_cwl_summary_to_excel(tag: str): - from openpyxl.worksheet.table import Table, TableStyleInfo def format_table(sheet, start_row, end_row, table_name_hint): - # Generate a unique table name from the hint - table_name = f"{table_name_hint}_{uuid.uuid4().hex[:8]}" # max 31 chars + table_name = f"{table_name_hint}_{uuid.uuid4().hex[:8]}"[:31] + + thin_border = Border( + left=Side(style='thin', color="000000"), + right=Side(style='thin', color="000000"), + top=Side(style='thin', color="000000"), + bottom=Side(style='thin', color="000000") + ) - # Bold + center header for cell in sheet[start_row]: - cell.font = Font(bold=True) cell.alignment = Alignment(horizontal="center") + cell.fill = clashking_theme["header_fill_red"] + cell.font = clashking_theme["header_font_white"] + cell.border = thin_border - # Center all values for row in sheet.iter_rows(min_row=start_row + 1, max_row=end_row): for cell in row: cell.alignment = Alignment(horizontal="center") + cell.fill = clashking_theme["data_fill_white"] + cell.border = thin_border + - # Adjust width for column_cells in sheet.columns: first_real_cell = next((cell for cell in column_cells if isinstance(cell, Cell)), None) if not first_real_cell: @@ -349,7 +358,6 @@ def format_table(sheet, start_row, end_row, table_name_hint): col_letter = first_real_cell.column_letter sheet.column_dimensions[col_letter].width = length + 2 - # Add table (with filters) last_col_letter = sheet[end_row][len(sheet[end_row]) - 1].column_letter table_range = f"A{start_row}:{last_col_letter}{end_row}" table = Table(displayName=table_name, ref=table_range) @@ -363,7 +371,34 @@ def format_table(sheet, start_row, end_row, table_name_hint): table.tableStyleInfo = style sheet.add_table(table) - # Fetch league_info from the existing war-summary endpoint + async def insert_logo_from_cdn(sheet, image_url: str, anchor_cell="A1", height=80): + # Download the image to a temporary file + async with aiohttp.ClientSession() as session: + async with session.get(image_url) as resp: + if resp.status != 200: + raise Exception(f"Failed to download logo from CDN: {resp.status}") + image_data = await resp.read() + + # Write image to a temp file + with tempfile.NamedTemporaryFile(delete=False, suffix=".png") as tmp_img: + tmp_img.write(image_data) + tmp_img_path = tmp_img.name + + # Insert into Excel + logo = OpenpyxlImage(tmp_img_path) + logo.height = height + logo.width = int(height * 3) + sheet.add_image(logo, anchor_cell) + + clashking_theme = { + "header_fill_red": PatternFill(start_color="D00000", end_color="D00000", fill_type="solid"), + "header_fill_black": PatternFill(start_color="000000", end_color="000000", fill_type="solid"), + "header_font_white": Font(color="FFFFFF", bold=True), + "data_font_black": Font(color="000000"), + "title_fill": PatternFill(start_color="F0F0F0", end_color="F0F0F0", fill_type="solid"), + "data_fill_white": PatternFill(start_color="FFFFFF", end_color="FFFFFF", fill_type="solid"), + } + async with aiohttp.ClientSession() as session: try: response = await session.get(f"http://localhost:8000/v2/war/{tag}/war-summary") @@ -378,24 +413,38 @@ def format_table(sheet, start_row, end_row, table_name_hint): wb = Workbook() ws_clan = wb.active - ws_clan.title = "Clan Summary" - clan_name = "" + ws_clan.title = "Summary" - # Sort clans by rank clans = sorted(league_info.get("clans", []), key=lambda c: c.get("rank", 0)) - # Add header row for clans overview + + await insert_logo_from_cdn( + ws_clan, + image_url="https://assets.clashk.ing/logos/crown-text-white-bg/BqlEp974170917vB1qK0zunfANJCGi0W031dTksEq7KQ9LoXWMFk0u77unHJa.png", + anchor_cell="F1", + height=50 + ) + + row = ws_clan.max_row + 3 + ws_clan.merge_cells(f"A{row}:J{row}") + cell = ws_clan.cell(row=row, column=1) + cell.value = f"[{league_info.get('season', '')}] 🏆 {league_info.get('war_league', '')}" + cell.alignment = Alignment(horizontal="center") + cell.fill = clashking_theme["title_fill"] + cell.font = Font(bold=True, size=14) + + row = ws_clan.max_row + 1 + ws_clan.merge_cells(f"A{row}:J{row}") + cell = ws_clan.cell(row=row, column=1) + cell.value = "CWL Clan Rankings" + cell.alignment = Alignment(horizontal="center") + cell.fill = clashking_theme["header_fill_black"] + cell.font = clashking_theme["header_font_white"] + ws_clan.append([ - "Rank", # Rank in CWL - "Name", # Clan name - "Tag", # Clan tag - "Level", # Clan level - "Wars Played", # Number of wars played - "Total Stars", # Total stars - "Total Destruction %", # Total destruction % dealt - "Destruction Taken %", # Total destruction % received - "Attack Count", # Number of attacks performed - "Missed Attacks" # Number of missed attacks + "Rank", "Name", "Tag", "Level", "Wars Played", + "Total Stars", "Total Destruction %", "Destruction Taken %", + "Attack Count", "Missed Attacks" ]) start_row = ws_clan.max_row @@ -412,23 +461,27 @@ def format_table(sheet, start_row, end_row, table_name_hint): clan.get("attack_count"), clan.get("missed_attacks"), ]) - end_row = ws_clan.max_row - format_table(ws_clan, start_row, end_row, "ClanSummary") - # Find our clan and create a separate sheet for its members tag = tag.replace("!", "#") - for clan in clans: sheet = wb.create_sheet(title=clan.get("name", "Clan")[:30]) + await insert_logo_from_cdn( + sheet, + image_url="https://assets.clashk.ing/logos/crown-text-white-bg/BqlEp974170917vB1qK0zunfANJCGi0W031dTksEq7KQ9LoXWMFk0u77unHJa.png", + anchor_cell="N1", + height=50 + ) - row = sheet.max_row - sheet.merge_cells(f"A{row}:P{row}") + row = sheet.max_row + 3 + sheet.merge_cells(f"A{row}:V{row}") cell = sheet.cell(row=row, column=1) cell.value = "⚔️ Attacks" - cell.font = Font(bold=True) cell.alignment = Alignment(horizontal="center") + cell.fill = clashking_theme["header_fill_black"] + cell.font = clashking_theme["header_font_white"] + headers_attack = [ "Name", "Tag", "TH", "War Participated", "Attacks Done", "Missed", "Stars", "Avg Stars", "3 Stars", @@ -436,40 +489,33 @@ def format_table(sheet, start_row, end_row, table_name_hint): "Total Destruction", "Avg Destruction", "Avg Map Position", "Avg Opponent Map Position", "Avg Order", "Avg Opponent TH Level", "Lower TH", "Upper TH" ] - sheet.append(headers_attack) attack_start_row = sheet.max_row for member in clan.get("members", []): if member.get("avgMapPosition"): - attacks = member.get("attacks", {}) or {} - war_participated = attacks.get("missed_attacks", 0) + attacks.get("attack_count", 0) - attack_count = attacks.get("attack_count", 0) - stars_total = attacks.get("stars", 0) - destruction_total = attacks.get("total_destruction", 0) - - three_stars = sum((attacks.get("3_stars") or {}).values()) - two_stars = sum((attacks.get("2_stars") or {}).values()) - one_star = sum((attacks.get("1_star") or {}).values()) - zero_star = sum((attacks.get("0_star") or {}).values()) + a = member.get("attacks", {}) or {} + w = a.get("missed_attacks", 0) + a.get("attack_count", 0) + s = a.get("stars", 0) + d = a.get("total_destruction", 0) sheet.append([ member.get("name"), member.get("tag"), member.get("townHallLevel"), - war_participated, - attack_count, - attacks.get("missed_attacks", 0), - stars_total, - round(stars_total / attack_count if attack_count > 0 else 0, 2), - three_stars, - two_stars, - one_star, - zero_star, - round((three_stars / attack_count) * 100 if attack_count > 0 else 0, 2), - round((zero_star + one_star) * 100 / attack_count if attack_count > 0 else 0, 2), - destruction_total, - round(destruction_total / attack_count if attack_count > 0 else 0, 2), + w, + a.get("attack_count", 0), + a.get("missed_attacks", 0), + s, + round(s / w if w > 0 else 0, 2), + sum((a.get("3_stars") or {}).values()), + sum((a.get("2_stars") or {}).values()), + sum((a.get("1_star") or {}).values()), + sum((a.get("0_star") or {}).values()), + round((sum((a.get("3_stars") or {}).values()) / w) * 100 if w > 0 else 0, 2), + round(((sum((a.get("0_star") or {}).values()) + sum((a.get("1_star") or {}).values())) * 100 / w) if w > 0 else 0, 2), + d, + round(d / w if w > 0 else 0, 2), member.get("avgMapPosition"), member.get("avgOpponentPosition"), member.get("avgAttackOrder"), @@ -481,15 +527,19 @@ def format_table(sheet, start_row, end_row, table_name_hint): attack_end_row = sheet.max_row format_table(sheet, attack_start_row, attack_end_row, "AttacksTable") + sheet.append([]) # Empty row sheet.append([]) # Empty row - # Merge cells A{row} to Q{row} and write "🛡️ Defenses" + + row = sheet.max_row + 2 - sheet.merge_cells(f"A{row}:P{row}") + sheet.merge_cells(f"A{row}:V{row}") cell = sheet.cell(row=row, column=1) cell.value = "🛡️ Defenses" - cell.font = Font(bold=True) cell.alignment = Alignment(horizontal="center") + cell.fill = clashking_theme["header_fill_black"] + cell.font = clashking_theme["header_font_white"] + headers_defense = [ "Name", "Tag", "TH", "War Participated", "Defenses Received", "Missed", "Stars Taken", "Avg Stars", "3 Stars", @@ -524,15 +574,15 @@ def format_table(sheet, start_row, end_row, table_name_hint): defense_count, missed_defenses, stars_total, - round(stars_total / defense_count * 100 if defense_count > 0 else 0, 2), + round(stars_total / war_participated * 100 if defense_count > 0 else 0, 2), three_stars, two_stars, one_star, zero_star, - round((three_stars / defense_count) * 100 if defense_count > 0 else 0, 2), - round(((zero_star + one_star) * 100 / defense_count) if defense_count > 0 else 0, 2), + round((three_stars / war_participated) * 100 if war_participated > 0 else 0, 2), + round(((zero_star + one_star) * 100 / war_participated) if war_participated > 0 else 0, 2), destruction_total, - round(destruction_total / defense_count if defense_count > 0 else 0, 2), + round(destruction_total / war_participated if war_participated > 0 else 0, 2), member.get("avgOpponentPosition"), member.get("avgMapPosition"), member.get("avgDefenseOrder"), @@ -544,12 +594,12 @@ def format_table(sheet, start_row, end_row, table_name_hint): defense_end_row = sheet.max_row format_table(sheet, defense_start_row, defense_end_row, "DefensesTable") - # Save the Excel file to a temporary location + tmp = NamedTemporaryFile(delete=False, suffix=".xlsx") wb.save(tmp.name) tmp.seek(0) - clan_name = next((c for c in clans if c.get("tag") == tag), None).get("name") + clan_name = next((c for c in clans if c.get("tag") == tag), None).get("name", "clan") season = league_info.get("season") filename = f"cwl_summary_{clan_name}_{season}.xlsx" return FileResponse( @@ -557,3 +607,4 @@ def format_table(sheet, start_row, end_row, table_name_hint): filename=filename, media_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' ) + diff --git a/routers/v2/war/utils.py b/routers/v2/war/utils.py index e795089d..f59d5cd1 100644 --- a/routers/v2/war/utils.py +++ b/routers/v2/war/utils.py @@ -4,6 +4,8 @@ import requests import aiohttp +from utils.utils import fix_tag + semaphore = asyncio.Semaphore(10) @@ -436,7 +438,7 @@ def compute_member_position_stats(war, clan_key="clan", opponent_key="opponent") return result -async def enrich_league_info(league_info, war_league_infos): +async def enrich_league_info(league_info, war_league_infos, session): clan_summary_map = await init_clan_summary_map(league_info) await process_war_stats(war_league_infos, clan_summary_map) sorted_clans = await compute_clan_ranking(clan_summary_map) @@ -524,4 +526,17 @@ async def enrich_league_info(league_info, war_league_infos): clan["town_hall_levels"] = dict(townhall_counts) + # Get clan with rank = 3 to get current league because they won't go up or down + third_clan = next((clan for clan in league_info["clans"] if clan["rank"] == 3), None) + clan_tag = third_clan.get("tag", "").replace("#", "%23") + url = f"https://proxy.clashk.ing/v1/clans/{clan_tag}" + try: + async with session.get(url) as res: + if res.status == 200: + data = await res.json() + if "warLeague" in data: + league_info["war_league"] = data["warLeague"]["name"] + except Exception: + pass + return league_info diff --git a/utils/time.py b/utils/time.py index 4905acdd..10e6fb91 100644 --- a/utils/time.py +++ b/utils/time.py @@ -152,7 +152,7 @@ def is_raids(): def is_cwl(): now = pend.now(tz=pend.UTC) - return 1 <= now.day <= 11 and not ((now.day == 1 and now.hour < 8) or (now.day == 12 and now.hour >= 8)) + return 1 <= now.day <= 12 and not ((now.day == 1 and now.hour < 8) or (now.day == 13 and now.hour >= 8)) def is_clan_games(): From 1f9f62ea3e4f362c8be9ab071275ae75b1ac3431 Mon Sep 17 00:00:00 2001 From: Destinea Date: Sun, 13 Apr 2025 09:26:14 +0200 Subject: [PATCH 098/174] feat: Added v2/clans/join-leave endpoint with filters & stats --- routers/v2/clan/endpoints.py | 86 +++++++++++++++++++- routers/v2/clan/models.py | 40 +++++++++- routers/v2/clan/utils.py | 149 +++++++++++++++++++++++++++++++++++ 3 files changed, 270 insertions(+), 5 deletions(-) create mode 100644 routers/v2/clan/utils.py diff --git a/routers/v2/clan/endpoints.py b/routers/v2/clan/endpoints.py index fc11a3e5..34b7ca2c 100644 --- a/routers/v2/clan/endpoints.py +++ b/routers/v2/clan/endpoints.py @@ -1,14 +1,17 @@ import asyncio +from typing import Optional, List import aiohttp import pendulum as pend from collections import defaultdict -from fastapi import HTTPException +from fastapi import HTTPException, Depends from fastapi import APIRouter, Query, Request +from h11 import Response -from routers.v2.clan.models import ClanTagsRequest +from routers.v2.clan.models import ClanTagsRequest, JoinLeaveQueryParams +from routers.v2.clan.utils import filter_leave_join, extract_join_leave_pairs, filter_join_leave, generate_stats from utils.utils import fix_tag, remove_id_fields -from utils.time import gen_season_date, gen_raid_date +from utils.time import gen_season_date, gen_raid_date, season_start_end from utils.database import MongoClient as mongo from routers.v2.player.models import PlayerTagsRequest @@ -172,3 +175,80 @@ async def clan_donations(clan_tag: str, season: str, request: Request): "received": data.get('received', 0) }) return {"items": items} + + +@router.get("/clan/{clan_tag}/join-leave", name="Join Leaves in a season") +async def clan_join_leave( + clan_tag: str, + request: Request, + filters: JoinLeaveQueryParams = Depends() +): + try: + clan_tag = fix_tag(clan_tag) + + if filters.season: + season_start, season_end = season_start_end(filters.season, gold_pass_season=True) + filters.timestamp_start = int(season_start.timestamp()) + filters.time_stamp_end = int(season_end.timestamp()) + + base_query = { + "$and": [ + {"clan": clan_tag}, + {"time": {"$gte": pend.from_timestamp(filters.timestamp_start, tz=pend.UTC)}}, + {"time": {"$lte": pend.from_timestamp(filters.time_stamp_end, tz=pend.UTC)}} + ] + } + + if filters.type: + base_query["$and"].append({"type": filters.type}) + if filters.townhall: + base_query["$and"].append({"th": {"$in": filters.townhall}}) + if filters.tag: + base_query["$and"].append({"tag": {"$in": filters.tag}}) + if filters.name_contains: + base_query["$and"].append({"name": {"$regex": filters.name_contains, "$options": "i"}}) + + cursor = mongo.clan_join_leave.find(base_query, {"_id": 0}).sort("time", -1) + if not filters.season: + cursor = cursor.limit(filters.limit) + + result = await cursor.to_list(length=None) + + if filters.filter_leave_join_enabled: + result = filter_leave_join(result, filters.filter_time) + if filters.filter_join_leave_enabled: + result = filter_join_leave(result, filters.filter_time) + if filters.only_type in ("join_leave", "leave_join"): + result = extract_join_leave_pairs(result, filters.filter_time, direction=filters.only_type) + + return { + "stats": generate_stats(result), + "join_leave_list": result + } + + except Exception as e: + raise HTTPException(status_code=500, detail=f"Error fetching data: {str(e)}") + + +@router.post("/clans/join-leave", name="Join Leaves in a season") +async def get_multiple_clan_join_leave( + body: ClanTagsRequest, + request: Request, + filters: JoinLeaveQueryParams = Depends() +): + try: + clan_tags = [fix_tag(tag) for tag in body.clan_tags] + + async def process_join_leave(clan_tag: str): + response = await clan_join_leave(clan_tag=clan_tag, request=request, filters=filters) + return { + "clan_tag": clan_tag, + "stats": response["stats"], + "join_leave_list": response["join_leave_list"] + } + + results = await asyncio.gather(*(process_join_leave(tag) for tag in clan_tags)) + return {"items": results} + + except Exception as e: + raise HTTPException(status_code=500, detail=f"Error fetching bulk data: {str(e)}") diff --git a/routers/v2/clan/models.py b/routers/v2/clan/models.py index 799bb703..0c36bafb 100644 --- a/routers/v2/clan/models.py +++ b/routers/v2/clan/models.py @@ -1,5 +1,41 @@ -from typing import List +from typing import Optional, List from pydantic import BaseModel +from fastapi import Query + + +class JoinLeaveQueryParams: + def __init__( + self, + timestamp_start: int = Query(0), + time_stamp_end: int = Query(9999999999), + season: Optional[str] = Query( + None, regex=r"^\d{4}-\d{2}$", description="Season format YYYY-MM" + ), + limit: int = Query(50), + filter_leave_join_enabled: bool = Query(False), + filter_join_leave_enabled: bool = Query(False), + filter_time: Optional[int] = Query(86400), + only_type: Optional[str] = Query( + None, pattern="^(join_leave|leave_join)$" + ), + townhall: Optional[List[int]] = Query(None), + type: Optional[str] = Query(None, regex="^(join|leave)$"), + tag: Optional[List[str]] = Query(None), + name_contains: Optional[str] = Query(None), + ): + self.timestamp_start = timestamp_start + self.time_stamp_end = time_stamp_end + self.season = season + self.limit = limit + self.filter_leave_join_enabled = filter_leave_join_enabled + self.filter_join_leave_enabled = filter_join_leave_enabled + self.filter_time = filter_time + self.only_type = only_type + self.townhall = townhall + self.type = type + self.tag = tag + self.name_contains = name_contains + class ClanTagsRequest(BaseModel): - clan_tags: List[str] \ No newline at end of file + clan_tags: List[str] diff --git a/routers/v2/clan/utils.py b/routers/v2/clan/utils.py new file mode 100644 index 00000000..3af79fa5 --- /dev/null +++ b/routers/v2/clan/utils.py @@ -0,0 +1,149 @@ +import statistics +from collections import defaultdict, Counter + + +def filter_leave_join(events: list, min_duration_seconds: int) -> list: + """ + Remove leave-join pairs for the same player when the rejoin is within a short time window, + regardless of the order of the events. + """ + from collections import defaultdict + + by_tag = defaultdict(list) + for e in events: + by_tag[e["tag"]].append(e) + + filtered = [] + + for tag, evts in by_tag.items(): + evts.sort(key=lambda e: e["time"]) + skip_next = set() + i = 0 + while i < len(evts): + curr = evts[i] + if curr["type"] == "leave" and i + 1 < len(evts): + next_evt = evts[i + 1] + if next_evt["type"] == "join": + delta = (next_evt["time"] - curr["time"]).total_seconds() + if delta < min_duration_seconds: + skip_next.update([i, i + 1]) + i += 2 + continue + i += 1 + + for j, evt in enumerate(evts): + if j not in skip_next: + filtered.append(evt) + + return sorted(filtered, key=lambda x: x["time"], reverse=True) # facultatif : pour garder ordre inverse + +def filter_join_leave(events: list, min_duration_seconds: int) -> list: + """ + Remove join-leave pairs for the same player when the leave happens soon after the join. + """ + from collections import defaultdict + + by_tag = defaultdict(list) + for e in events: + by_tag[e["tag"]].append(e) + + filtered = [] + + for tag, evts in by_tag.items(): + evts.sort(key=lambda e: e["time"]) + skip = set() + i = 0 + while i < len(evts) - 1: + e1 = evts[i] + e2 = evts[i + 1] + if e1["type"] == "join" and e2["type"] == "leave": + delta = (e2["time"] - e1["time"]).total_seconds() + if delta < min_duration_seconds: + skip.update([i, i + 1]) + i += 2 + continue + i += 1 + for j, evt in enumerate(evts): + if j not in skip: + filtered.append(evt) + + return sorted(filtered, key=lambda x: x["time"], reverse=True) + +def extract_join_leave_pairs(events: list, max_duration_seconds: int, direction: str = "join_leave") -> list: + """ + Return only join-leave (or leave-join) pairs where both actions happened within a short time window. + direction: "join_leave" or "leave_join" + """ + by_tag = defaultdict(list) + for e in events: + by_tag[e["tag"]].append(e) + + pairs = [] + + for tag, evts in by_tag.items(): + evts.sort(key=lambda e: e["time"]) + i = 0 + while i < len(evts) - 1: + e1 = evts[i] + e2 = evts[i + 1] + if ( + direction == "join_leave" and e1["type"] == "join" and e2["type"] == "leave" + or direction == "leave_join" and e1["type"] == "leave" and e2["type"] == "join" + ): + delta = (e2["time"] - e1["time"]).total_seconds() + if delta < max_duration_seconds: + pairs.extend([e1, e2]) + i += 2 + continue + i += 1 + + return sorted(pairs, key=lambda x: x["time"], reverse=True) + +def generate_stats(events): + join_events = [e for e in events if e["type"] == "join"] + leave_events = [e for e in events if e["type"] == "leave"] + + tags = [e["tag"] for e in events] + names = [e["name"] for e in events] + players_by_tag = Counter(tags) + + active_players = set() + seen = set() + for e in sorted(events, key=lambda x: x["time"]): + if e["type"] == "join": + active_players.add(e["tag"]) + elif e["type"] == "leave": + active_players.discard(e["tag"]) + seen.add(e["tag"]) + + time_deltas = [] + tag_events = defaultdict(list) + for e in events: + tag_events[e["tag"]].append(e) + + for tag, evs in tag_events.items(): + evs_sorted = sorted(evs, key=lambda x: x["time"]) + for i in range(len(evs_sorted) - 1): + if evs_sorted[i]["type"] == "join" and evs_sorted[i+1]["type"] == "leave": + delta = (evs_sorted[i+1]["time"] - evs_sorted[i]["time"]).total_seconds() + time_deltas.append(delta) + + hours = [e["time"].hour for e in events] + most_common_hour = Counter(hours).most_common(1)[0][0] if hours else None + + top_users = Counter(tags).most_common(3) + top_users_named = [{"tag": t, "count": c, "name": next(e['name'] for e in events if e["tag"] == t)} for t, c in top_users] + + return { + "total_events": len(events), + "total_joins": len(join_events), + "total_leaves": len(leave_events), + "unique_players": len(set(tags)), + "moving_players": len(active_players), + "rejoined_players": sum(1 for v in players_by_tag.values() if v > 1), + "first_event": min(e["time"] for e in events).isoformat() if events else None, + "last_event": max(e["time"] for e in events).isoformat() if events else None, + "most_moving_hour": most_common_hour, + "avg_time_between_join_leave": round(statistics.mean(time_deltas), 2) if time_deltas else None, + "most_moving_players": top_users_named + } From 12a4a5726b522a07acb70fb8f52d741ab0075ca8 Mon Sep 17 00:00:00 2001 From: Destinea Date: Sun, 13 Apr 2025 09:44:57 +0200 Subject: [PATCH 099/174] feat: Updated requirements.txt --- requirements.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index ebfde655..09c33ef4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -30,4 +30,5 @@ starlette==0.37.2 ujson==5.9.0 uvloop==0.19.0 uvicorn==0.30.1 -numpy==1.26.4 \ No newline at end of file +numpy==1.26.4 +openpyxl==3.1.3 \ No newline at end of file From 8b685c2a6638a9d0056e13a2eaf621a65d4efffd Mon Sep 17 00:00:00 2001 From: Destinea Date: Sun, 13 Apr 2025 11:35:43 +0200 Subject: [PATCH 100/174] feat: Added current_season filter --- routers/v2/clan/endpoints.py | 13 +++++++++++-- routers/v2/clan/models.py | 2 ++ routers/v2/player/models.py | 2 +- routers/v2/player/utils.py | 1 + 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/routers/v2/clan/endpoints.py b/routers/v2/clan/endpoints.py index 34b7ca2c..cf0d2f78 100644 --- a/routers/v2/clan/endpoints.py +++ b/routers/v2/clan/endpoints.py @@ -187,7 +187,12 @@ async def clan_join_leave( clan_tag = fix_tag(clan_tag) if filters.season: - season_start, season_end = season_start_end(filters.season, gold_pass_season=True) + season_start, season_end = season_start_end(filters.season) + filters.timestamp_start = int(season_start.timestamp()) + filters.time_stamp_end = int(season_end.timestamp()) + + if filters.current_season: + season_start, season_end = season_start_end(pend.now(tz=pend.UTC).format("YYYY-MM")) filters.timestamp_start = int(season_start.timestamp()) filters.time_stamp_end = int(season_end.timestamp()) @@ -209,7 +214,7 @@ async def clan_join_leave( base_query["$and"].append({"name": {"$regex": filters.name_contains, "$options": "i"}}) cursor = mongo.clan_join_leave.find(base_query, {"_id": 0}).sort("time", -1) - if not filters.season: + if not filters.season and not filters.current_season: cursor = cursor.limit(filters.limit) result = await cursor.to_list(length=None) @@ -222,6 +227,8 @@ async def clan_join_leave( result = extract_join_leave_pairs(result, filters.filter_time, direction=filters.only_type) return { + "timestamp_start": filters.timestamp_start, + "timestamp_end": filters.time_stamp_end, "stats": generate_stats(result), "join_leave_list": result } @@ -243,6 +250,8 @@ async def process_join_leave(clan_tag: str): response = await clan_join_leave(clan_tag=clan_tag, request=request, filters=filters) return { "clan_tag": clan_tag, + "timestamp_start": response["timestamp_start"], + "timestamp_end": response["timestamp_end"], "stats": response["stats"], "join_leave_list": response["join_leave_list"] } diff --git a/routers/v2/clan/models.py b/routers/v2/clan/models.py index 0c36bafb..5289526b 100644 --- a/routers/v2/clan/models.py +++ b/routers/v2/clan/models.py @@ -11,6 +11,7 @@ def __init__( season: Optional[str] = Query( None, regex=r"^\d{4}-\d{2}$", description="Season format YYYY-MM" ), + current_season: Optional[bool] = Query(False), limit: int = Query(50), filter_leave_join_enabled: bool = Query(False), filter_join_leave_enabled: bool = Query(False), @@ -26,6 +27,7 @@ def __init__( self.timestamp_start = timestamp_start self.time_stamp_end = time_stamp_end self.season = season + self.current_season = current_season self.limit = limit self.filter_leave_join_enabled = filter_leave_join_enabled self.filter_join_leave_enabled = filter_join_leave_enabled diff --git a/routers/v2/player/models.py b/routers/v2/player/models.py index c325a665..54dc5279 100644 --- a/routers/v2/player/models.py +++ b/routers/v2/player/models.py @@ -4,7 +4,7 @@ class PlayerTagsRequest(BaseModel): player_tags: List[str] - clan_tags: Optional[Dict[str, str]] = None # {"player_tag": "clan_tag"} + clan_tags: Optional[Dict[str, str]] = None class PlayerWarhitsFilter(BaseModel): player_tags: List[str] diff --git a/routers/v2/player/utils.py b/routers/v2/player/utils.py index 0cf089b4..544c1a24 100644 --- a/routers/v2/player/utils.py +++ b/routers/v2/player/utils.py @@ -321,6 +321,7 @@ async def fetch_player_api_data(session, tag: str): async def fetch_raid_data(session, tag: str, player_clan_tag: str): raid_data = {} + print(f"Fetching raid data for {tag} from {player_clan_tag}") if player_clan_tag: url = f"https://proxy.clashk.ing/v1/clans/{player_clan_tag.replace('#', '%23')}/capitalraidseasons?limit=1" async with session.get(url) as response: From e37607b42481f011c95b7f0de845a38ade3f8b37 Mon Sep 17 00:00:00 2001 From: Destinea Date: Sun, 13 Apr 2025 11:57:08 +0200 Subject: [PATCH 101/174] fix: Added players stats in join/leave --- routers/v2/clan/utils.py | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/routers/v2/clan/utils.py b/routers/v2/clan/utils.py index 3af79fa5..e0f53db6 100644 --- a/routers/v2/clan/utils.py +++ b/routers/v2/clan/utils.py @@ -104,28 +104,28 @@ def generate_stats(events): leave_events = [e for e in events if e["type"] == "leave"] tags = [e["tag"] for e in events] - names = [e["name"] for e in events] players_by_tag = Counter(tags) active_players = set() - seen = set() + seen_players = set() + tag_events = defaultdict(list) + + for e in events: + tag_events[e["tag"]].append(e) + for e in sorted(events, key=lambda x: x["time"]): if e["type"] == "join": active_players.add(e["tag"]) elif e["type"] == "leave": active_players.discard(e["tag"]) - seen.add(e["tag"]) + seen_players.add(e["tag"]) time_deltas = [] - tag_events = defaultdict(list) - for e in events: - tag_events[e["tag"]].append(e) - for tag, evs in tag_events.items(): evs_sorted = sorted(evs, key=lambda x: x["time"]) for i in range(len(evs_sorted) - 1): - if evs_sorted[i]["type"] == "join" and evs_sorted[i+1]["type"] == "leave": - delta = (evs_sorted[i+1]["time"] - evs_sorted[i]["time"]).total_seconds() + if evs_sorted[i]["type"] == "join" and evs_sorted[i + 1]["type"] == "leave": + delta = (evs_sorted[i + 1]["time"] - evs_sorted[i]["time"]).total_seconds() time_deltas.append(delta) hours = [e["time"].hour for e in events] @@ -134,16 +134,30 @@ def generate_stats(events): top_users = Counter(tags).most_common(3) top_users_named = [{"tag": t, "count": c, "name": next(e['name'] for e in events if e["tag"] == t)} for t, c in top_users] + still_in_clan = set() + for tag, evs in tag_events.items(): + evs_sorted = sorted(evs, key=lambda x: x["time"]) + if evs_sorted[-1]["type"] == "join": + still_in_clan.add(tag) + + left_and_never_came_back = set() + for tag, evs in tag_events.items(): + evs_sorted = sorted(evs, key=lambda x: x["time"]) + if evs_sorted[-1]["type"] == "leave": + left_and_never_came_back.add(tag) + return { "total_events": len(events), "total_joins": len(join_events), "total_leaves": len(leave_events), - "unique_players": len(set(tags)), + "unique_players": len(seen_players), "moving_players": len(active_players), "rejoined_players": sum(1 for v in players_by_tag.values() if v > 1), "first_event": min(e["time"] for e in events).isoformat() if events else None, "last_event": max(e["time"] for e in events).isoformat() if events else None, "most_moving_hour": most_common_hour, "avg_time_between_join_leave": round(statistics.mean(time_deltas), 2) if time_deltas else None, - "most_moving_players": top_users_named + "players_still_in_clan": len(still_in_clan), + "players_left_forever": len(left_and_never_came_back), + "most_moving_players": top_users_named, } From 23cf1e97bfdad8d8b96a78d6165b2a5bbd2a3989 Mon Sep 17 00:00:00 2001 From: Destinea Date: Mon, 14 Apr 2025 17:58:29 +0200 Subject: [PATCH 102/174] feat: Added maintenance info on /players --- routers/v2/player/endpoints.py | 7 +++++-- routers/v2/player/utils.py | 4 ++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/routers/v2/player/endpoints.py b/routers/v2/player/endpoints.py index 33b08b7c..827d7386 100644 --- a/routers/v2/player/endpoints.py +++ b/routers/v2/player/endpoints.py @@ -106,14 +106,17 @@ async def get_players_stats(body: PlayerTagsRequest, request: Request): result = [] for tag, data in zip(player_tags, api_results): + if isinstance(data, HTTPException): + if data.status_code == 503 or data.status_code == 500: + raise data + else: + continue if data: result.append({ "tag": tag, **data }) - return {"items": result} - @router.post("/players/extended", name="Get full stats for a list of players") async def get_players_stats(body: PlayerTagsRequest, request: Request): diff --git a/routers/v2/player/utils.py b/routers/v2/player/utils.py index 544c1a24..8157f787 100644 --- a/routers/v2/player/utils.py +++ b/routers/v2/player/utils.py @@ -316,6 +316,10 @@ async def fetch_player_api_data(session, tag: str): async with session.get(url) as response: if response.status == 200: return await response.json() + elif response.status == 503: + raise HTTPException(status_code=503, detail="Clash of Clans API is currently in maintenance. Please try again later.") + elif response.status == 500: + raise HTTPException(status_code=500, detail="Clash of Clans API is currently down. Please try again later.") return None From 381a40938f3235e6995e31f5fa4f9e78f8da9018 Mon Sep 17 00:00:00 2001 From: Destinea Date: Mon, 14 Apr 2025 18:18:04 +0200 Subject: [PATCH 103/174] fix: Return results --- routers/v2/player/endpoints.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/routers/v2/player/endpoints.py b/routers/v2/player/endpoints.py index 827d7386..6e727ec2 100644 --- a/routers/v2/player/endpoints.py +++ b/routers/v2/player/endpoints.py @@ -103,6 +103,7 @@ async def get_players_stats(body: PlayerTagsRequest, request: Request): async with aiohttp.ClientSession() as session: fetch_tasks = [fetch_player_api_data(session, tag) for tag in player_tags] api_results = await asyncio.gather(*fetch_tasks) + print("API results:", api_results) result = [] for tag, data in zip(player_tags, api_results): @@ -112,11 +113,14 @@ async def get_players_stats(body: PlayerTagsRequest, request: Request): else: continue if data: + print("Data:", data) result.append({ "tag": tag, **data }) + return {"items": result} + @router.post("/players/extended", name="Get full stats for a list of players") async def get_players_stats(body: PlayerTagsRequest, request: Request): From 38abe00036e5a19510e6cbc95abf63950904a4ad Mon Sep 17 00:00:00 2001 From: Destinea Date: Sat, 19 Apr 2025 19:55:12 +0200 Subject: [PATCH 104/174] feat: Load player war data if player isn't in their war clan --- routers/v2/player/utils.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/routers/v2/player/utils.py b/routers/v2/player/utils.py index 8157f787..c1e47588 100644 --- a/routers/v2/player/utils.py +++ b/routers/v2/player/utils.py @@ -6,6 +6,7 @@ import pendulum from routers.v2.player.models import PlayerWarhitsFilter +from routers.v2.war.utils import fetch_current_war_info_bypass from utils.database import MongoClient as mongo from utils.time import is_raids @@ -325,7 +326,6 @@ async def fetch_player_api_data(session, tag: str): async def fetch_raid_data(session, tag: str, player_clan_tag: str): raid_data = {} - print(f"Fetching raid data for {tag} from {player_clan_tag}") if player_clan_tag: url = f"https://proxy.clashk.ing/v1/clans/{player_clan_tag.replace('#', '%23')}/capitalraidseasons?limit=1" async with session.get(url) as response: @@ -344,8 +344,12 @@ async def fetch_raid_data(session, tag: str, player_clan_tag: str): async def fetch_full_player_data(session, tag: str, mongo_data: dict, clan_tag: Optional[str]): + war_data = {} raid_data = await fetch_raid_data(session, tag, clan_tag) if is_raids() else {} - war_data = await mongo.war_timers.find_one({"_id": tag}, {"_id": 0}) or {} + war_timer = await mongo.war_timers.find_one({"_id": tag}, {"_id": 0}) or {} + if clan_tag not in war_timer.get("clans", []): + war_clan_tag = war_timer.get("clans", [])[0] if war_timer.get("clans") else None + war_data = await fetch_current_war_info_bypass(war_clan_tag, session) return tag, raid_data, war_data, mongo_data From 7d8c1045046f93f6d946f92b8895127f12aa31dc Mon Sep 17 00:00:00 2001 From: Destinea Date: Sun, 11 May 2025 13:44:21 +0200 Subject: [PATCH 105/174] chore: Move war stats endpoint --- routers/v2/clan/endpoints.py | 44 ++++++- routers/v2/clan/models.py | 4 + routers/v2/clan/utils.py | 132 +++++++++++++++++++++ routers/v2/player/endpoints.py | 206 +-------------------------------- routers/v2/player/models.py | 16 --- routers/v2/player/utils.py | 114 +----------------- routers/v2/raid/endpoints.py | 15 +++ routers/v2/war/endpoints.py | 204 +++++++++++++++++++++++++++++++- routers/v2/war/models.py | 37 ++++++ routers/v2/war/utils.py | 114 ++++++++++++++++++ 10 files changed, 545 insertions(+), 341 deletions(-) create mode 100644 routers/v2/raid/endpoints.py diff --git a/routers/v2/clan/endpoints.py b/routers/v2/clan/endpoints.py index cf0d2f78..3a4a1228 100644 --- a/routers/v2/clan/endpoints.py +++ b/routers/v2/clan/endpoints.py @@ -1,15 +1,13 @@ import asyncio -from typing import Optional, List import aiohttp import pendulum as pend from collections import defaultdict from fastapi import HTTPException, Depends -from fastapi import APIRouter, Query, Request -from h11 import Response - -from routers.v2.clan.models import ClanTagsRequest, JoinLeaveQueryParams -from routers.v2.clan.utils import filter_leave_join, extract_join_leave_pairs, filter_join_leave, generate_stats +from fastapi import APIRouter, Request +from routers.v2.clan.models import ClanTagsRequest, JoinLeaveQueryParams, RaidsRequest +from routers.v2.clan.utils import filter_leave_join, extract_join_leave_pairs, filter_join_leave, generate_stats, \ + generate_raids_clan_stats, predict_rewards from utils.utils import fix_tag, remove_id_fields from utils.time import gen_season_date, gen_raid_date, season_start_end from utils.database import MongoClient as mongo @@ -261,3 +259,37 @@ async def process_join_leave(clan_tag: str): except Exception as e: raise HTTPException(status_code=500, detail=f"Error fetching bulk data: {str(e)}") + +@router.post("/clans/capital-raids", name="Get capital raids history & stats for a list of clans") +async def get_clans_capital_raids(request: Request, body: RaidsRequest): + """Retrieve Clash of Clans account details for a list of clans.""" + + if not body.clan_tags: + raise HTTPException(status_code=400, detail="clan_tags cannot be empty") + + if not body.limit: + body.limit = 1 + + clan_tags = [fix_tag(tag) for tag in body.clan_tags] + + async def fetch_clan_data(session, tag): + url = f"https://proxy.clashk.ing/v1/clans/{tag.replace('#', '%23')}/capitalraidseasons?limit={body.limit}" + async with session.get(url) as response: + if response.status == 200: + return await response.json() + return None + + async with aiohttp.ClientSession() as session: + api_responses = await asyncio.gather(*(fetch_clan_data(session, tag) for tag in clan_tags)) + + result = [] + for clan_data in api_responses: + if clan_data: + history = clan_data.get("items", []) + predict_rewards(history) + result.append({ + "stats": generate_raids_clan_stats(history), + "history": remove_id_fields(history) + }) + + return {"items": result} \ No newline at end of file diff --git a/routers/v2/clan/models.py b/routers/v2/clan/models.py index 5289526b..6e072f41 100644 --- a/routers/v2/clan/models.py +++ b/routers/v2/clan/models.py @@ -41,3 +41,7 @@ def __init__( class ClanTagsRequest(BaseModel): clan_tags: List[str] + +class RaidsRequest(BaseModel): + clan_tags: List[str] + limit : int = 100 \ No newline at end of file diff --git a/routers/v2/clan/utils.py b/routers/v2/clan/utils.py index e0f53db6..1915509f 100644 --- a/routers/v2/clan/utils.py +++ b/routers/v2/clan/utils.py @@ -1,5 +1,6 @@ import statistics from collections import defaultdict, Counter +import math def filter_leave_join(events: list, min_duration_seconds: int) -> list: @@ -161,3 +162,134 @@ def generate_stats(events): "players_left_forever": len(left_and_never_came_back), "most_moving_players": top_users_named, } + +def generate_raids_clan_stats(history: list): + total_loot = 0 + total_attacks = 0 + total_raids = 0 + number_weeks = 0 + total_districts_destroyed = 0 + best_raid = None + worst_raid = None + total_offensive_rewards = 0 + total_defensive_rewards = 0 + + for raid in history: + total_loot += raid.get("capitalTotalLoot", 0) + total_attacks += raid.get("totalAttacks", 0) + number_weeks += 1 + total_raids += raid.get("raidsCompleted", 0) + total_districts_destroyed += raid.get("enemyDistrictsDestroyed", 0) + total_offensive_rewards = 6 * raid.get("offensiveReward", 0) + total_defensive_rewards = raid.get("defensiveReward", 0) + total_rewards = total_defensive_rewards + total_offensive_rewards + + if best_raid is None or total_rewards > best_raid.get("totalRewards", 0): + best_raid = raid + best_raid["totalRewards"] = total_rewards + if raid.get("state") == "ended" and (worst_raid is None or total_rewards < worst_raid.get("totalRewards", 0)): + worst_raid = raid + worst_raid["totalRewards"] = total_rewards + + if number_weeks > 1 : + number_weeks -= 1 + + avg_loot_per_attack = total_loot / total_attacks if total_attacks else 0 + avg_loot_per_week = total_loot / number_weeks if number_weeks else 0 + avg_attacks_per_week = total_attacks / number_weeks if number_weeks else 0 + avg_attacks_per_raid = total_attacks / total_raids if total_raids else 0 + avg_offensive_rewards = total_offensive_rewards / number_weeks if number_weeks else 0 + avg_defensive_rewards = total_defensive_rewards / number_weeks if number_weeks else 0 + + + return { + "totalLoot": total_loot, + "totalAttacks": total_attacks, + "numberOfWeeks": number_weeks, + "totalRaids": total_raids, + "totalDistrictsDestroyed": total_districts_destroyed, + "totalOffensiveRewards": total_offensive_rewards, + "totalDefensiveRewards": total_defensive_rewards, + "avgLootPerAttack": round(avg_loot_per_attack, 2), + "avgLootPerWeek": round(avg_loot_per_week, 2), + "avgAttacksPerWeek": round(avg_attacks_per_week, 2), + "avgAttacksPerRaid": round(avg_attacks_per_raid, 2), + "avgAttacksPerDistrict": round(total_attacks / total_districts_destroyed, 2) if total_districts_destroyed else 0, + "avgOffensiveRewards": round(avg_offensive_rewards, 2), + "avgDefensiveRewards": round(avg_defensive_rewards, 2), + "bestRaid": { + "startTime": best_raid.get("startTime"), + "capitalTotalLoot": best_raid.get("capitalTotalLoot"), + "totalRewards": best_raid.get("totalRewards"), + "raidsCompleted": best_raid.get("raidsCompleted"), + "totalAttacks": best_raid.get("totalAttacks"), + "enemyDistrictsDestroyed": best_raid.get("enemyDistrictsDestroyed"), + "avgAttacksPerRaid": round(best_raid.get("totalAttacks", 0) / best_raid.get("raidsCompleted", 1), 2), + "avgAttacksPerDistrict": round(best_raid.get("totalAttacks", 0) / best_raid.get("enemyDistrictsDestroyed", 1), 2), + } if best_raid else None, + "worstRaid": { + "startTime": worst_raid.get("startTime"), + "capitalTotalLoot": worst_raid.get("capitalTotalLoot"), + "totalRewards": worst_raid.get("totalRewards"), + "raidsCompleted": worst_raid.get("raidsCompleted"), + "totalAttacks": worst_raid.get("totalAttacks"), + "enemyDistrictsDestroyed": worst_raid.get("enemyDistrictsDestroyed"), + "avgAttacksPerRaid": round(worst_raid.get("totalAttacks", 0) / worst_raid.get("raidsCompleted", 1), 2), + "avgAttacksPerDistrict": round(worst_raid.get("totalAttacks", 0) / worst_raid.get("enemyDistrictsDestroyed", 1), 2), + } if worst_raid else None, + } + + +def predict_rewards(history: list): + """ + Predicts offensive and defensive rewards for each raid season in the history. + Modifies the history in place. + """ + + for raid_season in history: + capital_loot = raid_season.get('capitalTotalLoot', 0) + total_attacks = raid_season.get('totalAttacks', 0) + + if not capital_loot or not total_attacks: + continue + + # Calculate average loot per attack + avg_loot_per_attack = capital_loot / total_attacks + + # Calculate avg defense loot if available (fallback to avg_loot if not) + avg_def_loot = raid_season.get('defensiveReward', 0) + def_attacks = raid_season.get('defenseLog', []) + if def_attacks: + total_def_loot = sum( + sum(district.get('totalLooted', 0) for district in attack.get('districts', [])) + for attack in def_attacks + ) + total_def_attacks = sum( + sum(district.get('attackCount', 0) for district in attack.get('districts', [])) + for attack in def_attacks + ) + if total_def_attacks > 0: + avg_def_loot = total_def_loot / total_def_attacks + else: + avg_def_loot = avg_loot_per_attack # Fallback + else: + avg_def_loot = avg_loot_per_attack # Fallback + + # Predict performance + upper_bound = 5 * math.sqrt(capital_loot + 100000) - 500 + loot_difference = avg_def_loot - avg_loot_per_attack + deduction_center = loot_difference + 700 + deduction_bottom = (loot_difference + 2000) / 20 + deduction_top = loot_difference / 20 + 1400 + deduction = max(min(max(deduction_center, deduction_bottom), deduction_top), 0) + predicted_performance = max(upper_bound - deduction, 0) + + # Estimate offensiveReward and defensiveReward based on predicted performance + predicted_offensive_reward = predicted_performance * 0.8 # Roughly 80% comes from offense + predicted_defensive_reward = predicted_performance * 0.2 # Roughly 20% comes from defense + + # Fill missing rewards if needed + if raid_season.get('offensiveReward', 0) == 0: + raid_season['offensiveReward'] = int(predicted_offensive_reward) + if raid_season.get('defensiveReward', 0) == 0: + raid_season['defensiveReward'] = int(predicted_defensive_reward) \ No newline at end of file diff --git a/routers/v2/player/endpoints.py b/routers/v2/player/endpoints.py index 6e727ec2..f20f3abf 100644 --- a/routers/v2/player/endpoints.py +++ b/routers/v2/player/endpoints.py @@ -7,12 +7,11 @@ from fastapi import APIRouter, Request, Response import pendulum as pend from routers.v2.player.utils import get_legend_rankings_for_tag, get_legend_stats_common, get_current_rankings, \ - assemble_full_player_data, fetch_full_player_data, compute_warhit_stats, fetch_player_api_data, \ - group_attacks_by_type + assemble_full_player_data, fetch_full_player_data, fetch_player_api_data from utils.time import get_season_raid_weeks, season_start_end, CLASH_ISO_FORMAT, is_raids from utils.utils import fix_tag, remove_id_fields, bulk_requests from utils.database import MongoClient as mongo -from routers.v2.player.models import PlayerTagsRequest, PlayerWarhitsFilter +from routers.v2.player.models import PlayerTagsRequest router = APIRouter(prefix="/v2", tags=["Player"], include_in_schema=True) @@ -385,204 +384,3 @@ def capital_gold_raided(elem): for count, result in enumerate(war_star_results, 1)] return {"items": [{key: value} for key, value in new_data.items()]} - - -@router.post("/players/warhits", name="Bulk war hits overview and detailed stats") -async def players_warhits_stats(filter: PlayerWarhitsFilter, request: Request): - client = coc.Client(raw_attribute=True) - - START = pend.from_timestamp(filter.timestamp_start, tz=pend.UTC).strftime('%Y%m%dT%H%M%S.000Z') - END = pend.from_timestamp(filter.timestamp_end, tz=pend.UTC).strftime('%Y%m%dT%H%M%S.000Z') - - player_tags = [fix_tag(tag) for tag in filter.player_tags] - - async def fetch_player_wars(tag: str): - pipeline = [ - {"$match": { - "$and": [ - {"$or": [ - {"data.clan.members.tag": tag}, - {"data.opponent.members.tag": tag} - ]}, - {"data.preparationStartTime": {"$gte": START}}, - {"data.preparationStartTime": {"$lte": END}} - ] - }}, - {"$unset": ["_id"]}, - {"$project": {"data": "$data"}}, - {"$sort": {"data.preparationStartTime": -1}}, - {"$limit": filter.limit}, - ] - - wars_docs = await mongo.clan_wars.aggregate(pipeline, allowDiskUse=True).to_list(length=None) - - player_data = { - "attacks": [], - "defenses": [], - "townhall": None, - "missedAttacks": 0, - "missedDefenses": 0, - "warsCount": 0, - "wars": [] - } - found_wars = set() - - for war_doc in wars_docs: - war_raw = war_doc["data"] - war = coc.ClanWar(data=war_raw, client=client) - war_id = "-".join( - sorted([war.clan_tag, war.opponent.tag])) + f"-{int(war.preparation_start_time.time.timestamp())}" - if war_id in found_wars: - continue - found_wars.add(war_id) - - if filter.type != "all" and war.type.lower() != filter.type.lower(): - continue - - war_member = war.get_member(tag) - if not war_member: - continue - - player_data["townhall"] = war_member.town_hall - player_data["missedAttacks"] += war.attacks_per_member - len(war_member.attacks) - player_data["missedDefenses"] += 1 if not war_member.best_opponent_attack else 0 - player_data["warsCount"] += 1 - - # Base war and member data - war_data = war._raw_data.copy() - for field in ["status_code", "_response_retry", "timestamp"]: - war_data.pop(field, None) - war_data["type"] = war.type - war_data["clan"].pop("members", None) - war_data["opponent"].pop("members", None) - - member_raw_data = war_member._raw_data.copy() - member_raw_data.pop("attacks", None) - member_raw_data.pop("bestOpponentAttack", None) - - war_info = { - "war_data": war_data, - "member_data": member_raw_data, - "attacks": [], - "defenses": [] - } - - for atk in war_member.attacks: - atk_data = atk._raw_data - defender_data = atk.defender._raw_data.copy() - defender_data.pop("attacks", None) - defender_data.pop("bestOpponentAttack", None) - atk_data["defender"] = defender_data - atk_data["attacker"] = { - "tag": war_member.tag, - "townhallLevel": war_member.town_hall, - "name": war_member.name, - "mapPosition": war_member.map_position - } - - atk_data["attack_order"] = atk.order - atk_data["fresh"] = atk.is_fresh_attack - - if filter.enemy_th and atk.defender.town_hall != filter.enemy_th: - continue - if filter.same_th and atk.defender.town_hall != war_member.town_hall: - continue - if filter.fresh_only and not atk.is_fresh_attack: - continue - if filter.min_stars and atk.stars < filter.min_stars: - continue - if filter.max_stars and atk.stars > filter.max_stars: - continue - if filter.min_destruction and atk.destruction < filter.min_destruction: - continue - if filter.max_destruction and atk.destruction > filter.max_destruction: - continue - if filter.map_position_min and atk.defender.map_position < filter.map_position_min: - continue - if filter.map_position_max and atk.defender.map_position > filter.map_position_max: - continue - - player_data["attacks"].append(atk_data) - war_info["attacks"].append(atk_data) - - for defn in war_member.defenses: - def_data = defn._raw_data - def_data["attack_order"] = defn.order - def_data["fresh"] = defn.is_fresh_attack - - if defn.attacker: - attacker_data = defn.attacker._raw_data.copy() - attacker_data.pop("attacks", None) - attacker_data.pop("bestOpponentAttack", None) - def_data["attacker"] = attacker_data - - def_data["defender"] = { - "tag": war_member.tag, - "townhallLevel": war_member.town_hall, - "name": war_member.name, - "mapPosition": war_member.map_position, - } - def_data["attack_order"] = defn.order - def_data["fresh"] = defn.is_fresh_attack - - if filter.enemy_th and defn.attacker.town_hall != filter.enemy_th: - continue - if filter.same_th and defn.defender.town_hall != war_member.town_hall: - continue - if filter.fresh_only and not defn.is_fresh_attack: - continue - if filter.min_stars and defn.stars < filter.min_stars: - continue - if filter.max_stars and defn.stars > filter.max_stars: - continue - if filter.min_destruction and defn.destruction < filter.min_destruction: - continue - if filter.max_destruction and defn.destruction > filter.max_destruction: - continue - if filter.map_position_min and defn.attacker.map_position < filter.map_position_min: - continue - if filter.map_position_max and defn.attacker.map_position > filter.map_position_max: - continue - - player_data["defenses"].append(def_data) - war_info["defenses"].append(def_data) - - war_info["missedAttacks"] = war.attacks_per_member - len(war_member.attacks) - war_info["missedDefenses"] = 1 if not war_member.best_opponent_attack else 0 - player_data["wars"].append(war_info) - - # Inject war_type dans chaque attaque et défense - for war_info in player_data["wars"]: - war_type = war_info["war_data"].get("type", "all").lower() - for atk in war_info["attacks"]: - atk["war_type"] = war_type - for dfn in war_info["defenses"]: - dfn["war_type"] = war_type - - grouped = group_attacks_by_type(player_data["attacks"], player_data["defenses"], player_data["wars"]) - - computed_stats = {} - for war_type, data in grouped.items(): - computed_stats[war_type] = compute_warhit_stats( - attacks=data["attacks"], - defenses=data["defenses"], - filter=filter, - missed_attacks=data["missedAttacks"], - missed_defenses=data["missedDefenses"], - num_wars=data["warsCounts"], - ) - - return { - "tag": tag, - "townhallLevel": player_data["townhall"], - "stats": computed_stats, - "wars": player_data["wars"], - "timeRange": { - "start": filter.timestamp_start, - "end": filter.timestamp_end, - }, - "warType": filter.type, - } - - results = await asyncio.gather(*[fetch_player_wars(tag) for tag in player_tags]) - return {"items": results} diff --git a/routers/v2/player/models.py b/routers/v2/player/models.py index 54dc5279..69a8c371 100644 --- a/routers/v2/player/models.py +++ b/routers/v2/player/models.py @@ -6,19 +6,3 @@ class PlayerTagsRequest(BaseModel): player_tags: List[str] clan_tags: Optional[Dict[str, str]] = None -class PlayerWarhitsFilter(BaseModel): - player_tags: List[str] - timestamp_start: int = 0 - timestamp_end: int = 2527625513 - limit: int = None - own_th: Optional[int] = None - enemy_th: Optional[int] = None - same_th: bool = False - type: str = "all" - fresh_only: Optional[bool] = None - min_stars: Optional[int] = None - max_stars: Optional[int] = None - min_destruction: Optional[float] = None - max_destruction: Optional[float] = None - map_position_min: Optional[int] = None - map_position_max: Optional[int] = None \ No newline at end of file diff --git a/routers/v2/player/utils.py b/routers/v2/player/utils.py index c1e47588..2316c379 100644 --- a/routers/v2/player/utils.py +++ b/routers/v2/player/utils.py @@ -5,7 +5,6 @@ import pendulum -from routers.v2.player.models import PlayerWarhitsFilter from routers.v2.war.utils import fetch_current_war_info_bypass from utils.database import MongoClient as mongo from utils.time import is_raids @@ -366,115 +365,4 @@ async def assemble_full_player_data(tag, raid_data, war_data, mongo_data, legend player_data["raid_data"] = raid_data player_data["war_data"] = war_data - return player_data - - -def compute_warhit_stats( - attacks: List[dict], - defenses: List[dict], - filter: PlayerWarhitsFilter, - missed_attacks: int = 0, - missed_defenses: int = 0, - num_wars: int = 0, -): - from collections import defaultdict - - - def filter_hit(hit, is_attack=True): - th_key = "defender" if is_attack else "attacker" - - if filter.min_stars is not None and hit["stars"] < filter.min_stars: - return False - if filter.max_stars is not None and hit["stars"] > filter.max_stars: - return False - if filter.min_destruction is not None and hit["destructionPercentage"] < filter.min_destruction: - return False - if filter.max_destruction is not None and hit["destructionPercentage"] > filter.max_destruction: - return False - if filter.enemy_th is not None and hit[th_key].get("townhallLevel") != filter.enemy_th: - return False - if filter.map_position_min is not None and hit[th_key].get("mapPosition") < filter.map_position_min: - return False - if filter.map_position_max is not None and hit[th_key].get("mapPosition") > filter.map_position_max: - return False - if filter.own_th is not None and hit["attacker"].get("townhallLevel") != filter.own_th: - return False - return True - - filtered_attacks = [a for a in attacks if filter_hit(a, is_attack=True)] - filtered_defenses = [d for d in defenses if filter_hit(d, is_attack=False)] - - def average(key, lst): - return round(sum(hit[key] for hit in lst) / len(lst), 2) if lst else 0.0 - - def count_stars(lst): - star_count = defaultdict(int) - for hit in lst: - star_count[hit["stars"]] += 1 - return {str(k): star_count[k] for k in range(4)} - - def group_by_enemy_th(lst, is_attack=True): - th_key = "defender" if is_attack else "attacker" - grouped = defaultdict(list) - for hit in lst: - enemy_th_level = hit[th_key]["townhallLevel"] - grouped[enemy_th_level].append(hit) - - result = {} - for th, hits in grouped.items(): - result[str(th)] = { - "averageStars": average("stars", hits), - "averageDestruction": average("destructionPercentage", hits), - "count": len(hits), - "starsCount": count_stars(hits), - } - return result - - return { - "warsCounts": num_wars, - "totalAttacks": len(filtered_attacks), - "totalDefenses": len(filtered_defenses), - "missedAttacks": missed_attacks, - "missedDefenses": missed_defenses, - "starsCount": count_stars(filtered_attacks), - "starsCountDef": count_stars(filtered_defenses), - "byEnemyTownhall": group_by_enemy_th(filtered_attacks, is_attack=True), - "byEnemyTownhallDef": group_by_enemy_th(filtered_defenses, is_attack=False), - } - - -def group_attacks_by_type(attacks, defenses, wars): - grouped = { - "all": {"attacks": [], "defenses": [], "missedAttacks": 0, "missedDefenses": 0, "warsCounts": 0}, - "random": {"attacks": [], "defenses": [], "missedAttacks": 0, "missedDefenses": 0, "warsCounts": 0}, - "cwl": {"attacks": [], "defenses": [], "missedAttacks": 0, "missedDefenses": 0, "warsCounts": 0}, - "friendly": {"attacks": [], "defenses": [], "missedAttacks": 0, "missedDefenses": 0, "warsCounts": 0}, - } - - for war in wars: - war_type = war.get("war_data", {}).get("type", "all").lower() - missed_attacks = war.get("missedAttacks", 0) - missed_defenses = war.get("missedDefenses", 0) - - grouped["all"]["missedAttacks"] += missed_attacks - grouped["all"]["missedDefenses"] += missed_defenses - grouped["all"]["warsCounts"] += 1 - - if war_type in grouped: - grouped[war_type]["missedAttacks"] += missed_attacks - grouped[war_type]["missedDefenses"] += missed_defenses - grouped[war_type]["warsCounts"] += 1 - - for atk in attacks: - war_type = atk.get("war_type", "all").lower() - grouped["all"]["attacks"].append(atk) - if war_type in grouped: - grouped[war_type]["attacks"].append(atk) - - for dfn in defenses: - war_type = dfn.get("war_type", "all").lower() - grouped["all"]["defenses"].append(dfn) - if war_type in grouped: - grouped[war_type]["defenses"].append(dfn) - - return grouped \ No newline at end of file + return player_data \ No newline at end of file diff --git a/routers/v2/raid/endpoints.py b/routers/v2/raid/endpoints.py new file mode 100644 index 00000000..ed13ac9a --- /dev/null +++ b/routers/v2/raid/endpoints.py @@ -0,0 +1,15 @@ +import asyncio + +import aiohttp +import pendulum as pend +from collections import defaultdict +from fastapi import HTTPException, Depends +from fastapi import APIRouter, Request +from routers.v2.clan.models import ClanTagsRequest, JoinLeaveQueryParams +from routers.v2.clan.utils import filter_leave_join, extract_join_leave_pairs, filter_join_leave, generate_stats +from utils.utils import fix_tag, remove_id_fields +from utils.time import gen_season_date, gen_raid_date, season_start_end +from utils.database import MongoClient as mongo +from routers.v2.player.models import PlayerTagsRequest + +router = APIRouter(prefix="/v2", tags=["Raid"], include_in_schema=True) diff --git a/routers/v2/war/endpoints.py b/routers/v2/war/endpoints.py index 99abff26..8d671224 100644 --- a/routers/v2/war/endpoints.py +++ b/routers/v2/war/endpoints.py @@ -1,7 +1,7 @@ import asyncio -import os import tempfile import uuid +import coc import aiohttp from fastapi.responses import JSONResponse @@ -11,8 +11,9 @@ from openpyxl.cell import Cell from routers.v2.clan.models import ClanTagsRequest +from routers.v2.war.models import PlayerWarhitsFilter from routers.v2.war.utils import fetch_current_war_info_bypass, fetch_league_info, ranking_create, \ - fetch_war_league_infos, enrich_league_info + fetch_war_league_infos, enrich_league_info, group_attacks_by_type, compute_warhit_stats from utils.time import is_cwl from utils.utils import fix_tag, remove_id_fields from utils.database import MongoClient as mongo @@ -608,3 +609,202 @@ async def insert_logo_from_cdn(sheet, image_url: str, anchor_cell="A1", height=8 media_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' ) +@router.post("/war/players/warhits", name="Bulk war hits overview and detailed stats") +async def players_warhits_stats(filter: PlayerWarhitsFilter, request: Request): + client = coc.Client(raw_attribute=True) + + START = pend.from_timestamp(filter.timestamp_start, tz=pend.UTC).strftime('%Y%m%dT%H%M%S.000Z') + END = pend.from_timestamp(filter.timestamp_end, tz=pend.UTC).strftime('%Y%m%dT%H%M%S.000Z') + + player_tags = [fix_tag(tag) for tag in filter.player_tags] + + async def fetch_player_wars(tag: str): + pipeline = [ + {"$match": { + "$and": [ + {"$or": [ + {"data.clan.members.tag": tag}, + {"data.opponent.members.tag": tag} + ]}, + {"data.preparationStartTime": {"$gte": START}}, + {"data.preparationStartTime": {"$lte": END}} + ] + }}, + {"$unset": ["_id"]}, + {"$project": {"data": "$data"}}, + {"$sort": {"data.preparationStartTime": -1}}, + {"$limit": filter.limit}, + ] + + wars_docs = await mongo.clan_wars.aggregate(pipeline, allowDiskUse=True).to_list(length=None) + + player_data = { + "attacks": [], + "defenses": [], + "townhall": None, + "missedAttacks": 0, + "missedDefenses": 0, + "warsCount": 0, + "wars": [] + } + found_wars = set() + + for war_doc in wars_docs: + war_raw = war_doc["data"] + war = coc.ClanWar(data=war_raw, client=client) + war_id = "-".join( + sorted([war.clan_tag, war.opponent.tag])) + f"-{int(war.preparation_start_time.time.timestamp())}" + if war_id in found_wars: + continue + found_wars.add(war_id) + + if filter.type != "all" and war.type.lower() != filter.type.lower(): + continue + + war_member = war.get_member(tag) + if not war_member: + continue + + player_data["townhall"] = war_member.town_hall + player_data["missedAttacks"] += war.attacks_per_member - len(war_member.attacks) + player_data["missedDefenses"] += 1 if not war_member.best_opponent_attack else 0 + player_data["warsCount"] += 1 + + # Base war and member data + war_data = war._raw_data.copy() + for field in ["status_code", "_response_retry", "timestamp"]: + war_data.pop(field, None) + war_data["type"] = war.type + war_data["clan"].pop("members", None) + war_data["opponent"].pop("members", None) + + member_raw_data = war_member._raw_data.copy() + member_raw_data.pop("attacks", None) + member_raw_data.pop("bestOpponentAttack", None) + + war_info = { + "war_data": war_data, + "member_data": member_raw_data, + "attacks": [], + "defenses": [] + } + + for atk in war_member.attacks: + atk_data = atk._raw_data + defender_data = atk.defender._raw_data.copy() + defender_data.pop("attacks", None) + defender_data.pop("bestOpponentAttack", None) + atk_data["defender"] = defender_data + atk_data["attacker"] = { + "tag": war_member.tag, + "townhallLevel": war_member.town_hall, + "name": war_member.name, + "mapPosition": war_member.map_position + } + + atk_data["attack_order"] = atk.order + atk_data["fresh"] = atk.is_fresh_attack + + if filter.enemy_th and atk.defender.town_hall != filter.enemy_th: + continue + if filter.same_th and atk.defender.town_hall != war_member.town_hall: + continue + if filter.fresh_only and not atk.is_fresh_attack: + continue + if filter.min_stars and atk.stars < filter.min_stars: + continue + if filter.max_stars and atk.stars > filter.max_stars: + continue + if filter.min_destruction and atk.destruction < filter.min_destruction: + continue + if filter.max_destruction and atk.destruction > filter.max_destruction: + continue + if filter.map_position_min and atk.defender.map_position < filter.map_position_min: + continue + if filter.map_position_max and atk.defender.map_position > filter.map_position_max: + continue + + player_data["attacks"].append(atk_data) + war_info["attacks"].append(atk_data) + + for defn in war_member.defenses: + def_data = defn._raw_data + def_data["attack_order"] = defn.order + def_data["fresh"] = defn.is_fresh_attack + + if defn.attacker: + attacker_data = defn.attacker._raw_data.copy() + attacker_data.pop("attacks", None) + attacker_data.pop("bestOpponentAttack", None) + def_data["attacker"] = attacker_data + + def_data["defender"] = { + "tag": war_member.tag, + "townhallLevel": war_member.town_hall, + "name": war_member.name, + "mapPosition": war_member.map_position, + } + def_data["attack_order"] = defn.order + def_data["fresh"] = defn.is_fresh_attack + + if filter.enemy_th and defn.attacker.town_hall != filter.enemy_th: + continue + if filter.same_th and defn.defender.town_hall != war_member.town_hall: + continue + if filter.fresh_only and not defn.is_fresh_attack: + continue + if filter.min_stars and defn.stars < filter.min_stars: + continue + if filter.max_stars and defn.stars > filter.max_stars: + continue + if filter.min_destruction and defn.destruction < filter.min_destruction: + continue + if filter.max_destruction and defn.destruction > filter.max_destruction: + continue + if filter.map_position_min and defn.attacker.map_position < filter.map_position_min: + continue + if filter.map_position_max and defn.attacker.map_position > filter.map_position_max: + continue + + player_data["defenses"].append(def_data) + war_info["defenses"].append(def_data) + + war_info["missedAttacks"] = war.attacks_per_member - len(war_member.attacks) + war_info["missedDefenses"] = 1 if not war_member.best_opponent_attack else 0 + player_data["wars"].append(war_info) + + # Inject war_type dans chaque attaque et défense + for war_info in player_data["wars"]: + war_type = war_info["war_data"].get("type", "all").lower() + for atk in war_info["attacks"]: + atk["war_type"] = war_type + for dfn in war_info["defenses"]: + dfn["war_type"] = war_type + + grouped = group_attacks_by_type(player_data["attacks"], player_data["defenses"], player_data["wars"]) + + computed_stats = {} + for war_type, data in grouped.items(): + computed_stats[war_type] = compute_warhit_stats( + attacks=data["attacks"], + defenses=data["defenses"], + filter=filter, + missed_attacks=data["missedAttacks"], + missed_defenses=data["missedDefenses"], + num_wars=data["warsCounts"], + ) + + return { + "tag": tag, + "townhallLevel": player_data["townhall"], + "stats": computed_stats, + "wars": player_data["wars"], + "timeRange": { + "start": filter.timestamp_start, + "end": filter.timestamp_end, + }, + "warType": filter.type, + } + + results = await asyncio.gather(*[fetch_player_wars(tag) for tag in player_tags]) + return {"items": results} diff --git a/routers/v2/war/models.py b/routers/v2/war/models.py index e69de29b..55697eab 100644 --- a/routers/v2/war/models.py +++ b/routers/v2/war/models.py @@ -0,0 +1,37 @@ +from typing import Optional, List + +from pydantic import BaseModel + + +class Clanwarhitsfilter(BaseModel): + timestamp_start: int = 0 + timestamp_end: int = 2527625513 + limit: int = None + own_th: Optional[int] = None + enemy_th: Optional[int] = None + same_th: bool = False + type: str = "all" + fresh_only: Optional[bool] = None + min_stars: Optional[int] = None + max_stars: Optional[int] = None + min_destruction: Optional[float] = None + max_destruction: Optional[float] = None + map_position_min: Optional[int] = None + map_position_max: Optional[int] = None + +class PlayerWarhitsFilter(BaseModel): + player_tags: List[str] + timestamp_start: int = 0 + timestamp_end: int = 2527625513 + limit: int = None + own_th: Optional[int] = None + enemy_th: Optional[int] = None + same_th: bool = False + type: str = "all" + fresh_only: Optional[bool] = None + min_stars: Optional[int] = None + max_stars: Optional[int] = None + min_destruction: Optional[float] = None + max_destruction: Optional[float] = None + map_position_min: Optional[int] = None + map_position_max: Optional[int] = None \ No newline at end of file diff --git a/routers/v2/war/utils.py b/routers/v2/war/utils.py index f59d5cd1..9d1eaf69 100644 --- a/routers/v2/war/utils.py +++ b/routers/v2/war/utils.py @@ -1,9 +1,12 @@ import asyncio from collections import defaultdict +from typing import List + import coc import requests import aiohttp +from routers.v2.war.models import PlayerWarhitsFilter from utils.utils import fix_tag semaphore = asyncio.Semaphore(10) @@ -540,3 +543,114 @@ async def enrich_league_info(league_info, war_league_infos, session): pass return league_info + + +def compute_warhit_stats( + attacks: List[dict], + defenses: List[dict], + filter: PlayerWarhitsFilter, + missed_attacks: int = 0, + missed_defenses: int = 0, + num_wars: int = 0, +): + from collections import defaultdict + + + def filter_hit(hit, is_attack=True): + th_key = "defender" if is_attack else "attacker" + + if filter.min_stars is not None and hit["stars"] < filter.min_stars: + return False + if filter.max_stars is not None and hit["stars"] > filter.max_stars: + return False + if filter.min_destruction is not None and hit["destructionPercentage"] < filter.min_destruction: + return False + if filter.max_destruction is not None and hit["destructionPercentage"] > filter.max_destruction: + return False + if filter.enemy_th is not None and hit[th_key].get("townhallLevel") != filter.enemy_th: + return False + if filter.map_position_min is not None and hit[th_key].get("mapPosition") < filter.map_position_min: + return False + if filter.map_position_max is not None and hit[th_key].get("mapPosition") > filter.map_position_max: + return False + if filter.own_th is not None and hit["attacker"].get("townhallLevel") != filter.own_th: + return False + return True + + filtered_attacks = [a for a in attacks if filter_hit(a, is_attack=True)] + filtered_defenses = [d for d in defenses if filter_hit(d, is_attack=False)] + + def average(key, lst): + return round(sum(hit[key] for hit in lst) / len(lst), 2) if lst else 0.0 + + def count_stars(lst): + star_count = defaultdict(int) + for hit in lst: + star_count[hit["stars"]] += 1 + return {str(k): star_count[k] for k in range(4)} + + def group_by_enemy_th(lst, is_attack=True): + th_key = "defender" if is_attack else "attacker" + grouped = defaultdict(list) + for hit in lst: + enemy_th_level = hit[th_key]["townhallLevel"] + grouped[enemy_th_level].append(hit) + + result = {} + for th, hits in grouped.items(): + result[str(th)] = { + "averageStars": average("stars", hits), + "averageDestruction": average("destructionPercentage", hits), + "count": len(hits), + "starsCount": count_stars(hits), + } + return result + + return { + "warsCounts": num_wars, + "totalAttacks": len(filtered_attacks), + "totalDefenses": len(filtered_defenses), + "missedAttacks": missed_attacks, + "missedDefenses": missed_defenses, + "starsCount": count_stars(filtered_attacks), + "starsCountDef": count_stars(filtered_defenses), + "byEnemyTownhall": group_by_enemy_th(filtered_attacks, is_attack=True), + "byEnemyTownhallDef": group_by_enemy_th(filtered_defenses, is_attack=False), + } + + +def group_attacks_by_type(attacks, defenses, wars): + grouped = { + "all": {"attacks": [], "defenses": [], "missedAttacks": 0, "missedDefenses": 0, "warsCounts": 0}, + "random": {"attacks": [], "defenses": [], "missedAttacks": 0, "missedDefenses": 0, "warsCounts": 0}, + "cwl": {"attacks": [], "defenses": [], "missedAttacks": 0, "missedDefenses": 0, "warsCounts": 0}, + "friendly": {"attacks": [], "defenses": [], "missedAttacks": 0, "missedDefenses": 0, "warsCounts": 0}, + } + + for war in wars: + war_type = war.get("war_data", {}).get("type", "all").lower() + missed_attacks = war.get("missedAttacks", 0) + missed_defenses = war.get("missedDefenses", 0) + + grouped["all"]["missedAttacks"] += missed_attacks + grouped["all"]["missedDefenses"] += missed_defenses + grouped["all"]["warsCounts"] += 1 + + if war_type in grouped: + grouped[war_type]["missedAttacks"] += missed_attacks + grouped[war_type]["missedDefenses"] += missed_defenses + grouped[war_type]["warsCounts"] += 1 + + for atk in attacks: + war_type = atk.get("war_type", "all").lower() + grouped["all"]["attacks"].append(atk) + if war_type in grouped: + grouped[war_type]["attacks"].append(atk) + + for dfn in defenses: + war_type = dfn.get("war_type", "all").lower() + grouped["all"]["defenses"].append(dfn) + if war_type in grouped: + grouped[war_type]["defenses"].append(dfn) + + return grouped \ No newline at end of file From 46d50319af86b08382add7c5f66846bc3d73fd40 Mon Sep 17 00:00:00 2001 From: Destinea Date: Sun, 11 May 2025 14:29:45 +0200 Subject: [PATCH 106/174] feat: Players war stats for a clan --- routers/v2/war/endpoints.py | 246 +++++++----------------------------- routers/v2/war/utils.py | 206 +++++++++++++++++++++++++++++- 2 files changed, 251 insertions(+), 201 deletions(-) diff --git a/routers/v2/war/endpoints.py b/routers/v2/war/endpoints.py index 8d671224..59cd3f66 100644 --- a/routers/v2/war/endpoints.py +++ b/routers/v2/war/endpoints.py @@ -11,9 +11,9 @@ from openpyxl.cell import Cell from routers.v2.clan.models import ClanTagsRequest -from routers.v2.war.models import PlayerWarhitsFilter +from routers.v2.war.models import PlayerWarhitsFilter, Clanwarhitsfilter from routers.v2.war.utils import fetch_current_war_info_bypass, fetch_league_info, ranking_create, \ - fetch_war_league_infos, enrich_league_info, group_attacks_by_type, compute_warhit_stats + fetch_war_league_infos, enrich_league_info, collect_player_hits_from_wars from utils.time import is_cwl from utils.utils import fix_tag, remove_id_fields from utils.database import MongoClient as mongo @@ -324,10 +324,8 @@ async def process_clan(clan_tag: str): return JSONResponse(content={"items": results}) - @router.get("/war/cwl-summary/export", name="Export CWL summary and members stats to Excel") async def export_cwl_summary_to_excel(tag: str): - def format_table(sheet, start_row, end_row, table_name_hint): table_name = f"{table_name_hint}_{uuid.uuid4().hex[:8]}"[:31] @@ -350,7 +348,6 @@ def format_table(sheet, start_row, end_row, table_name_hint): cell.fill = clashking_theme["data_fill_white"] cell.border = thin_border - for column_cells in sheet.columns: first_real_cell = next((cell for cell in column_cells if isinstance(cell, Cell)), None) if not first_real_cell: @@ -418,7 +415,6 @@ async def insert_logo_from_cdn(sheet, image_url: str, anchor_cell="A1", height=8 clans = sorted(league_info.get("clans", []), key=lambda c: c.get("rank", 0)) - await insert_logo_from_cdn( ws_clan, image_url="https://assets.clashk.ing/logos/crown-text-white-bg/BqlEp974170917vB1qK0zunfANJCGi0W031dTksEq7KQ9LoXWMFk0u77unHJa.png", @@ -514,7 +510,8 @@ async def insert_logo_from_cdn(sheet, image_url: str, anchor_cell="A1", height=8 sum((a.get("1_star") or {}).values()), sum((a.get("0_star") or {}).values()), round((sum((a.get("3_stars") or {}).values()) / w) * 100 if w > 0 else 0, 2), - round(((sum((a.get("0_star") or {}).values()) + sum((a.get("1_star") or {}).values())) * 100 / w) if w > 0 else 0, 2), + round(((sum((a.get("0_star") or {}).values()) + sum( + (a.get("1_star") or {}).values())) * 100 / w) if w > 0 else 0, 2), d, round(d / w if w > 0 else 0, 2), member.get("avgMapPosition"), @@ -528,11 +525,9 @@ async def insert_logo_from_cdn(sheet, image_url: str, anchor_cell="A1", height=8 attack_end_row = sheet.max_row format_table(sheet, attack_start_row, attack_end_row, "AttacksTable") - sheet.append([]) # Empty row sheet.append([]) # Empty row - row = sheet.max_row + 2 sheet.merge_cells(f"A{row}:V{row}") cell = sheet.cell(row=row, column=1) @@ -595,7 +590,6 @@ async def insert_logo_from_cdn(sheet, image_url: str, anchor_cell="A1", height=8 defense_end_row = sheet.max_row format_table(sheet, defense_start_row, defense_end_row, "DefensesTable") - tmp = NamedTemporaryFile(delete=False, suffix=".xlsx") wb.save(tmp.name) tmp.seek(0) @@ -609,202 +603,56 @@ async def insert_logo_from_cdn(sheet, image_url: str, anchor_cell="A1", height=8 media_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' ) + @router.post("/war/players/warhits", name="Bulk war hits overview and detailed stats") async def players_warhits_stats(filter: PlayerWarhitsFilter, request: Request): client = coc.Client(raw_attribute=True) - START = pend.from_timestamp(filter.timestamp_start, tz=pend.UTC).strftime('%Y%m%dT%H%M%S.000Z') END = pend.from_timestamp(filter.timestamp_end, tz=pend.UTC).strftime('%Y%m%dT%H%M%S.000Z') - player_tags = [fix_tag(tag) for tag in filter.player_tags] - async def fetch_player_wars(tag: str): - pipeline = [ - {"$match": { - "$and": [ - {"$or": [ - {"data.clan.members.tag": tag}, - {"data.opponent.members.tag": tag} - ]}, - {"data.preparationStartTime": {"$gte": START}}, - {"data.preparationStartTime": {"$lte": END}} - ] - }}, - {"$unset": ["_id"]}, - {"$project": {"data": "$data"}}, - {"$sort": {"data.preparationStartTime": -1}}, - {"$limit": filter.limit}, - ] - - wars_docs = await mongo.clan_wars.aggregate(pipeline, allowDiskUse=True).to_list(length=None) - - player_data = { - "attacks": [], - "defenses": [], - "townhall": None, - "missedAttacks": 0, - "missedDefenses": 0, - "warsCount": 0, - "wars": [] - } - found_wars = set() - - for war_doc in wars_docs: - war_raw = war_doc["data"] - war = coc.ClanWar(data=war_raw, client=client) - war_id = "-".join( - sorted([war.clan_tag, war.opponent.tag])) + f"-{int(war.preparation_start_time.time.timestamp())}" - if war_id in found_wars: - continue - found_wars.add(war_id) - - if filter.type != "all" and war.type.lower() != filter.type.lower(): - continue - - war_member = war.get_member(tag) - if not war_member: - continue - - player_data["townhall"] = war_member.town_hall - player_data["missedAttacks"] += war.attacks_per_member - len(war_member.attacks) - player_data["missedDefenses"] += 1 if not war_member.best_opponent_attack else 0 - player_data["warsCount"] += 1 - - # Base war and member data - war_data = war._raw_data.copy() - for field in ["status_code", "_response_retry", "timestamp"]: - war_data.pop(field, None) - war_data["type"] = war.type - war_data["clan"].pop("members", None) - war_data["opponent"].pop("members", None) - - member_raw_data = war_member._raw_data.copy() - member_raw_data.pop("attacks", None) - member_raw_data.pop("bestOpponentAttack", None) - - war_info = { - "war_data": war_data, - "member_data": member_raw_data, - "attacks": [], - "defenses": [] - } + pipeline = [ + {"$match": { + "$and": [ + {"$or": [ + {"data.clan.members.tag": {"$in": player_tags}}, + {"data.opponent.members.tag": {"$in": player_tags}} + ]}, + {"data.preparationStartTime": {"$gte": START}}, + {"data.preparationStartTime": {"$lte": END}} + ] + }}, + {"$unset": ["_id"]}, + {"$project": {"data": "$data"}}, + {"$sort": {"data.preparationStartTime": -1}}, + {"$limit": filter.limit or 50}, + ] + + wars_docs = await mongo.clan_wars.aggregate(pipeline, allowDiskUse=True).to_list(length=None) + results = await collect_player_hits_from_wars(wars_docs, tags_to_include=player_tags, clan_tag=None, filter=filter, client=client) + return {"items": results} - for atk in war_member.attacks: - atk_data = atk._raw_data - defender_data = atk.defender._raw_data.copy() - defender_data.pop("attacks", None) - defender_data.pop("bestOpponentAttack", None) - atk_data["defender"] = defender_data - atk_data["attacker"] = { - "tag": war_member.tag, - "townhallLevel": war_member.town_hall, - "name": war_member.name, - "mapPosition": war_member.map_position - } - - atk_data["attack_order"] = atk.order - atk_data["fresh"] = atk.is_fresh_attack - - if filter.enemy_th and atk.defender.town_hall != filter.enemy_th: - continue - if filter.same_th and atk.defender.town_hall != war_member.town_hall: - continue - if filter.fresh_only and not atk.is_fresh_attack: - continue - if filter.min_stars and atk.stars < filter.min_stars: - continue - if filter.max_stars and atk.stars > filter.max_stars: - continue - if filter.min_destruction and atk.destruction < filter.min_destruction: - continue - if filter.max_destruction and atk.destruction > filter.max_destruction: - continue - if filter.map_position_min and atk.defender.map_position < filter.map_position_min: - continue - if filter.map_position_max and atk.defender.map_position > filter.map_position_max: - continue - - player_data["attacks"].append(atk_data) - war_info["attacks"].append(atk_data) - - for defn in war_member.defenses: - def_data = defn._raw_data - def_data["attack_order"] = defn.order - def_data["fresh"] = defn.is_fresh_attack - - if defn.attacker: - attacker_data = defn.attacker._raw_data.copy() - attacker_data.pop("attacks", None) - attacker_data.pop("bestOpponentAttack", None) - def_data["attacker"] = attacker_data - - def_data["defender"] = { - "tag": war_member.tag, - "townhallLevel": war_member.town_hall, - "name": war_member.name, - "mapPosition": war_member.map_position, - } - def_data["attack_order"] = defn.order - def_data["fresh"] = defn.is_fresh_attack - - if filter.enemy_th and defn.attacker.town_hall != filter.enemy_th: - continue - if filter.same_th and defn.defender.town_hall != war_member.town_hall: - continue - if filter.fresh_only and not defn.is_fresh_attack: - continue - if filter.min_stars and defn.stars < filter.min_stars: - continue - if filter.max_stars and defn.stars > filter.max_stars: - continue - if filter.min_destruction and defn.destruction < filter.min_destruction: - continue - if filter.max_destruction and defn.destruction > filter.max_destruction: - continue - if filter.map_position_min and defn.attacker.map_position < filter.map_position_min: - continue - if filter.map_position_max and defn.attacker.map_position > filter.map_position_max: - continue - - player_data["defenses"].append(def_data) - war_info["defenses"].append(def_data) - - war_info["missedAttacks"] = war.attacks_per_member - len(war_member.attacks) - war_info["missedDefenses"] = 1 if not war_member.best_opponent_attack else 0 - player_data["wars"].append(war_info) - - # Inject war_type dans chaque attaque et défense - for war_info in player_data["wars"]: - war_type = war_info["war_data"].get("type", "all").lower() - for atk in war_info["attacks"]: - atk["war_type"] = war_type - for dfn in war_info["defenses"]: - dfn["war_type"] = war_type - - grouped = group_attacks_by_type(player_data["attacks"], player_data["defenses"], player_data["wars"]) - - computed_stats = {} - for war_type, data in grouped.items(): - computed_stats[war_type] = compute_warhit_stats( - attacks=data["attacks"], - defenses=data["defenses"], - filter=filter, - missed_attacks=data["missedAttacks"], - missed_defenses=data["missedDefenses"], - num_wars=data["warsCounts"], - ) - - return { - "tag": tag, - "townhallLevel": player_data["townhall"], - "stats": computed_stats, - "wars": player_data["wars"], - "timeRange": { - "start": filter.timestamp_start, - "end": filter.timestamp_end, - }, - "warType": filter.type, - } - results = await asyncio.gather(*[fetch_player_wars(tag) for tag in player_tags]) +@router.post("/war/clan/{clan_tag}/warhits", name="Get war hit stats for all players in a clan") +async def clan_warhits_stats(clan_tag: str, filter: Clanwarhitsfilter): + client = coc.Client(raw_attribute=True) + START = pend.from_timestamp(filter.timestamp_start, tz=pend.UTC).strftime('%Y%m%dT%H%M%S.000Z') + END = pend.from_timestamp(filter.timestamp_end, tz=pend.UTC).strftime('%Y%m%dT%H%M%S.000Z') + tag = fix_tag(clan_tag) + + pipeline = [ + {"$match": { + "data.clan.tag": tag, + "data.preparationStartTime": {"$gte": START, "$lte": END} + }}, + {"$unset": ["_id"]}, + {"$project": {"data": "$data"}}, + {"$sort": {"data.preparationStartTime": -1}}, + {"$limit": filter.limit or 100}, + ] + + clan_tag = clan_tag.replace("!", "#") + + wars_docs = await mongo.clan_wars.aggregate(pipeline, allowDiskUse=True).to_list(length=None) + results = await collect_player_hits_from_wars(wars_docs, tags_to_include=None, clan_tag=clan_tag, filter=filter, client=client) return {"items": results} diff --git a/routers/v2/war/utils.py b/routers/v2/war/utils.py index 9d1eaf69..659b486b 100644 --- a/routers/v2/war/utils.py +++ b/routers/v2/war/utils.py @@ -555,7 +555,6 @@ def compute_warhit_stats( ): from collections import defaultdict - def filter_hit(hit, is_attack=True): th_key = "defender" if is_attack else "attacker" @@ -653,4 +652,207 @@ def group_attacks_by_type(attacks, defenses, wars): if war_type in grouped: grouped[war_type]["defenses"].append(dfn) - return grouped \ No newline at end of file + return grouped + + +def attack_passes_filters(atk, member, filter): + if not filter: + return True + if filter.enemy_th and atk.defender.town_hall != filter.enemy_th: + return False + if filter.same_th and atk.defender.town_hall != member.town_hall: + return False + if filter.fresh_only and not atk.is_fresh_attack: + return False + if filter.min_stars and atk.stars < filter.min_stars: + return False + if filter.max_stars and atk.stars > filter.max_stars: + return False + if filter.min_destruction and atk.destruction < filter.min_destruction: + return False + if filter.max_destruction and atk.destruction > filter.max_destruction: + return False + if filter.map_position_min and atk.defender.map_position < filter.map_position_min: + return False + if filter.map_position_max and atk.defender.map_position > filter.map_position_max: + return False + return True + + +def defense_passes_filters(dfn, member, filter): + if not filter: + return True + if not dfn.attacker: + return False + if filter.enemy_th and dfn.attacker.town_hall != filter.enemy_th: + return False + if filter.same_th and dfn.defender.town_hall != member.town_hall: + return False + if filter.fresh_only and not dfn.is_fresh_attack: + return False + if filter.min_stars and dfn.stars < filter.min_stars: + return False + if filter.max_stars and dfn.stars > filter.max_stars: + return False + if filter.min_destruction and dfn.destruction < filter.min_destruction: + return False + if filter.max_destruction and dfn.destruction > filter.max_destruction: + return False + if filter.map_position_min and dfn.attacker.map_position < filter.map_position_min: + return False + if filter.map_position_max and dfn.attacker.map_position > filter.map_position_max: + return False + return True + + +async def collect_player_hits_from_wars(wars_docs, tags_to_include=None, clan_tag=None, filter=None, client=None): + from collections import defaultdict + + players_data = defaultdict(lambda: { + "attacks": [], + "defenses": [], + "townhall": None, + "missedAttacks": 0, + "missedDefenses": 0, + "warsCount": 0, + "wars": [] + }) + + seen_wars = set() + all_wars = [] + added_war_ids = set() + + for war_doc in wars_docs: + war_raw = war_doc["data"] + war = coc.ClanWar(data=war_raw, client=client) + war_id = "-".join(sorted([war.clan_tag, war.opponent.tag])) + f"-{int(war.preparation_start_time.time.timestamp())}" + if war_id in seen_wars: + continue + seen_wars.add(war_id) + + if filter and filter.type != "all" and war.type.lower() != filter.type.lower(): + continue + + for side in [war.clan, war.opponent]: + if clan_tag and side.tag != clan_tag: + continue + + for member in side.members: + tag = member.tag + if tags_to_include and tag not in tags_to_include: + continue + + player_data = players_data[tag] + player_data["townhall"] = member.town_hall + player_data["missedAttacks"] += war.attacks_per_member - len(member.attacks) + player_data["missedDefenses"] += 1 if not member.best_opponent_attack else 0 + player_data["warsCount"] += 1 + + # Base war and member data + war_data = war._raw_data.copy() + for field in ["status_code", "_response_retry", "timestamp"]: + war_data.pop(field, None) + war_data["type"] = war.type + war_data["clan"].pop("members", None) + war_data["opponent"].pop("members", None) + + member_raw_data = member._raw_data.copy() + member_raw_data.pop("attacks", None) + member_raw_data.pop("bestOpponentAttack", None) + + war_info = { + "war_data": war_data, + "member_data": member_raw_data, + "attacks": [], + "defenses": [] + } + + for atk in member.attacks: + if not attack_passes_filters(atk, member, filter): + continue + + atk_data = atk._raw_data.copy() + defender_data = atk.defender._raw_data.copy() + defender_data.pop("attacks", None) + defender_data.pop("bestOpponentAttack", None) + atk_data["defender"] = defender_data + atk_data["attacker"] = { + "tag": member.tag, + "townhallLevel": member.town_hall, + "name": member.name, + "mapPosition": member.map_position + } + atk_data["attack_order"] = atk.order + atk_data["fresh"] = atk.is_fresh_attack + atk_data["war_type"] = war.type.lower() + + player_data["attacks"].append(atk_data) + war_info["attacks"].append(atk_data) + + for dfn in member.defenses: + if not defense_passes_filters(dfn, member, filter): + continue + + def_data = dfn._raw_data.copy() + def_data["attack_order"] = dfn.order + def_data["fresh"] = dfn.is_fresh_attack + + if dfn.attacker: + attacker_data = dfn.attacker._raw_data.copy() + attacker_data.pop("attacks", None) + attacker_data.pop("bestOpponentAttack", None) + def_data["attacker"] = attacker_data + + def_data["defender"] = { + "tag": member.tag, + "townhallLevel": member.town_hall, + "name": member.name, + "mapPosition": member.map_position, + } + def_data["war_type"] = war.type.lower() + + player_data["defenses"].append(def_data) + war_info["defenses"].append(def_data) + + war_info["missedAttacks"] = war.attacks_per_member - len(member.attacks) + war_info["missedDefenses"] = 1 if not member.best_opponent_attack else 0 + if war_id not in added_war_ids: + all_wars.append(war_info["war_data"]) + added_war_ids.add(war_id) + player_data["wars"].append(war_info) + + results = [] + for tag, data in players_data.items(): + for war_info in data["wars"]: + war_type = war_info["war_data"].get("type", "all").lower() + for atk in war_info["attacks"]: + atk["war_type"] = war_type + for dfn in war_info["defenses"]: + dfn["war_type"] = war_type + + grouped = group_attacks_by_type(data["attacks"], data["defenses"], data["wars"]) + stats = {} + for war_type, d in grouped.items(): + stats[war_type] = compute_warhit_stats( + attacks=d["attacks"], + defenses=d["defenses"], + filter=filter, + missed_attacks=d["missedAttacks"], + missed_defenses=d["missedDefenses"], + num_wars=d["warsCounts"], + ) + + results.append({ + "name": data["attacks"][0]["attacker"]["name"] if data["attacks"] else data["defenses"][0]["defender"]["name"], + "tag": tag, + "townhallLevel": data["townhall"], + "stats": stats, + "timeRange": { + "start": filter.timestamp_start, + "end": filter.timestamp_end, + }, + "warType": filter.type, + }) + + results.append({"wars": all_wars}) + return results From 749da65930df8a8331a378bedb318a9c2e5f1c5f Mon Sep 17 00:00:00 2001 From: Destinea Date: Sun, 11 May 2025 17:28:08 +0200 Subject: [PATCH 107/174] support: debug --- routers/v2/war/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routers/v2/war/utils.py b/routers/v2/war/utils.py index 659b486b..b8e6da14 100644 --- a/routers/v2/war/utils.py +++ b/routers/v2/war/utils.py @@ -855,4 +855,4 @@ async def collect_player_hits_from_wars(wars_docs, tags_to_include=None, clan_ta }) results.append({"wars": all_wars}) - return results + return results \ No newline at end of file From fda554f91022b48438d3f54e0918d95b588479ed Mon Sep 17 00:00:00 2001 From: Destinea Date: Sun, 11 May 2025 17:55:39 +0200 Subject: [PATCH 108/174] fix: war stats structure --- routers/v2/war/endpoints.py | 4 ++-- routers/v2/war/utils.py | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/routers/v2/war/endpoints.py b/routers/v2/war/endpoints.py index 59cd3f66..1b7101f1 100644 --- a/routers/v2/war/endpoints.py +++ b/routers/v2/war/endpoints.py @@ -630,7 +630,7 @@ async def players_warhits_stats(filter: PlayerWarhitsFilter, request: Request): wars_docs = await mongo.clan_wars.aggregate(pipeline, allowDiskUse=True).to_list(length=None) results = await collect_player_hits_from_wars(wars_docs, tags_to_include=player_tags, clan_tag=None, filter=filter, client=client) - return {"items": results} + return results @router.post("/war/clan/{clan_tag}/warhits", name="Get war hit stats for all players in a clan") @@ -655,4 +655,4 @@ async def clan_warhits_stats(clan_tag: str, filter: Clanwarhitsfilter): wars_docs = await mongo.clan_wars.aggregate(pipeline, allowDiskUse=True).to_list(length=None) results = await collect_player_hits_from_wars(wars_docs, tags_to_include=None, clan_tag=clan_tag, filter=filter, client=client) - return {"items": results} + return results diff --git a/routers/v2/war/utils.py b/routers/v2/war/utils.py index b8e6da14..b38cf8a4 100644 --- a/routers/v2/war/utils.py +++ b/routers/v2/war/utils.py @@ -725,7 +725,8 @@ async def collect_player_hits_from_wars(wars_docs, tags_to_include=None, clan_ta for war_doc in wars_docs: war_raw = war_doc["data"] war = coc.ClanWar(data=war_raw, client=client) - war_id = "-".join(sorted([war.clan_tag, war.opponent.tag])) + f"-{int(war.preparation_start_time.time.timestamp())}" + war_id = "-".join( + sorted([war.clan_tag, war.opponent.tag])) + f"-{int(war.preparation_start_time.time.timestamp())}" if war_id in seen_wars: continue seen_wars.add(war_id) @@ -843,7 +844,8 @@ async def collect_player_hits_from_wars(wars_docs, tags_to_include=None, clan_ta ) results.append({ - "name": data["attacks"][0]["attacker"]["name"] if data["attacks"] else data["defenses"][0]["defender"]["name"], + "name": data["attacks"][0]["attacker"]["name"] if data["attacks"] else data["defenses"][0]["defender"][ + "name"], "tag": tag, "townhallLevel": data["townhall"], "stats": stats, @@ -854,5 +856,4 @@ async def collect_player_hits_from_wars(wars_docs, tags_to_include=None, clan_ta "warType": filter.type, }) - results.append({"wars": all_wars}) - return results \ No newline at end of file + return {"items": results, "wars": all_wars} From 3f034329ecf5e02cd4811af38bfe1826ce92c134 Mon Sep 17 00:00:00 2001 From: Destinea Date: Sun, 11 May 2025 18:38:38 +0200 Subject: [PATCH 109/174] fix: Missing member attacks --- routers/v2/war/utils.py | 42 +++++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/routers/v2/war/utils.py b/routers/v2/war/utils.py index b38cf8a4..9e4100e8 100644 --- a/routers/v2/war/utils.py +++ b/routers/v2/war/utils.py @@ -719,14 +719,13 @@ async def collect_player_hits_from_wars(wars_docs, tags_to_include=None, clan_ta }) seen_wars = set() - all_wars = [] + all_wars_dict = {} added_war_ids = set() for war_doc in wars_docs: war_raw = war_doc["data"] war = coc.ClanWar(data=war_raw, client=client) - war_id = "-".join( - sorted([war.clan_tag, war.opponent.tag])) + f"-{int(war.preparation_start_time.time.timestamp())}" + war_id = "-".join(sorted([war.clan_tag, war.opponent.tag])) + f"-{int(war.preparation_start_time.time.timestamp())}" if war_id in seen_wars: continue seen_wars.add(war_id) @@ -761,11 +760,12 @@ async def collect_player_hits_from_wars(wars_docs, tags_to_include=None, clan_ta member_raw_data.pop("attacks", None) member_raw_data.pop("bestOpponentAttack", None) + member_raw_data["attacks"] = [] + member_raw_data["defenses"] = [] + war_info = { "war_data": war_data, - "member_data": member_raw_data, - "attacks": [], - "defenses": [] + "member_data": member_raw_data } for atk in member.attacks: @@ -788,7 +788,7 @@ async def collect_player_hits_from_wars(wars_docs, tags_to_include=None, clan_ta atk_data["war_type"] = war.type.lower() player_data["attacks"].append(atk_data) - war_info["attacks"].append(atk_data) + member_raw_data["attacks"].append(atk_data) for dfn in member.defenses: if not defense_passes_filters(dfn, member, filter): @@ -813,22 +813,26 @@ async def collect_player_hits_from_wars(wars_docs, tags_to_include=None, clan_ta def_data["war_type"] = war.type.lower() player_data["defenses"].append(def_data) - war_info["defenses"].append(def_data) + member_raw_data["defenses"].append(def_data) + + member_raw_data["missedAttacks"] = war.attacks_per_member - len(member.attacks) + member_raw_data["missedDefenses"] = 1 if not member.best_opponent_attack else 0 + if war_id not in all_wars_dict: + all_wars_dict[war_id] = { + "war_data": war_data, + "members": [] + } - war_info["missedAttacks"] = war.attacks_per_member - len(member.attacks) - war_info["missedDefenses"] = 1 if not member.best_opponent_attack else 0 - if war_id not in added_war_ids: - all_wars.append(war_info["war_data"]) - added_war_ids.add(war_id) + all_wars_dict[war_id]["members"].append(member_raw_data) player_data["wars"].append(war_info) results = [] for tag, data in players_data.items(): for war_info in data["wars"]: war_type = war_info["war_data"].get("type", "all").lower() - for atk in war_info["attacks"]: + for atk in war_info["member_data"].get("attacks", []): atk["war_type"] = war_type - for dfn in war_info["defenses"]: + for dfn in war_info["member_data"].get("defenses", []): dfn["war_type"] = war_type grouped = group_attacks_by_type(data["attacks"], data["defenses"], data["wars"]) @@ -844,8 +848,7 @@ async def collect_player_hits_from_wars(wars_docs, tags_to_include=None, clan_ta ) results.append({ - "name": data["attacks"][0]["attacker"]["name"] if data["attacks"] else data["defenses"][0]["defender"][ - "name"], + "name": data["attacks"][0]["attacker"]["name"] if data["attacks"] else data["defenses"][0]["defender"]["name"], "tag": tag, "townhallLevel": data["townhall"], "stats": stats, @@ -856,4 +859,7 @@ async def collect_player_hits_from_wars(wars_docs, tags_to_include=None, clan_ta "warType": filter.type, }) - return {"items": results, "wars": all_wars} + all_wars = list(all_wars_dict.values()) + + results.append({"wars": all_wars}) + return results \ No newline at end of file From c5a31818143d0131b32051f10d4c8cd7011eae5d Mon Sep 17 00:00:00 2001 From: Destinea Date: Sun, 11 May 2025 20:49:54 +0200 Subject: [PATCH 110/174] fix: cwl export function call --- routers/v2/war/endpoints.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/routers/v2/war/endpoints.py b/routers/v2/war/endpoints.py index 1b7101f1..965983ba 100644 --- a/routers/v2/war/endpoints.py +++ b/routers/v2/war/endpoints.py @@ -1,4 +1,5 @@ import asyncio +import json import tempfile import uuid import coc @@ -397,14 +398,11 @@ async def insert_logo_from_cdn(sheet, image_url: str, anchor_cell="A1", height=8 "data_fill_white": PatternFill(start_color="FFFFFF", end_color="FFFFFF", fill_type="solid"), } - async with aiohttp.ClientSession() as session: - try: - response = await session.get(f"http://localhost:8000/v2/war/{tag}/war-summary") - response.raise_for_status() - data = await response.json() - league_info = data.get("league_info") - except aiohttp.ClientError as e: - raise HTTPException(status_code=500, detail=f"Error fetching war summary: {str(e)}") + summary = await get_clan_war_summary(tag) + if isinstance(summary, JSONResponse): + summary = json.loads(summary.body) + + league_info = summary.get("league_info") if not league_info: raise HTTPException(status_code=404, detail="No league info available") From 387750893a4db1abe8dd5cce4e5c1610b83a9722 Mon Sep 17 00:00:00 2001 From: Destinea Date: Sun, 11 May 2025 21:24:20 +0200 Subject: [PATCH 111/174] fix: war stats structure --- routers/v2/war/utils.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/routers/v2/war/utils.py b/routers/v2/war/utils.py index 9e4100e8..aef56c7b 100644 --- a/routers/v2/war/utils.py +++ b/routers/v2/war/utils.py @@ -859,7 +859,7 @@ async def collect_player_hits_from_wars(wars_docs, tags_to_include=None, clan_ta "warType": filter.type, }) - all_wars = list(all_wars_dict.values()) - - results.append({"wars": all_wars}) - return results \ No newline at end of file + return { + "items": results, + "wars": list(all_wars_dict.values()) + } \ No newline at end of file From 09c3ab2d5d66cfa832af5fa455c3cc13cf9b7e1d Mon Sep 17 00:00:00 2001 From: Destinea Date: Sun, 11 May 2025 23:33:47 +0200 Subject: [PATCH 112/174] fix: war stats structure for multiple players and multiple clans --- routers/v2/war/endpoints.py | 112 ++++++++++++++++++++++-------------- routers/v2/war/models.py | 5 +- routers/v2/war/utils.py | 36 +++++++++--- 3 files changed, 99 insertions(+), 54 deletions(-) diff --git a/routers/v2/war/endpoints.py b/routers/v2/war/endpoints.py index 965983ba..1192abf6 100644 --- a/routers/v2/war/endpoints.py +++ b/routers/v2/war/endpoints.py @@ -12,7 +12,7 @@ from openpyxl.cell import Cell from routers.v2.clan.models import ClanTagsRequest -from routers.v2.war.models import PlayerWarhitsFilter, Clanwarhitsfilter +from routers.v2.war.models import PlayerWarhitsFilter, ClanWarHitsFilter from routers.v2.war.utils import fetch_current_war_info_bypass, fetch_league_info, ranking_create, \ fetch_war_league_infos, enrich_league_info, collect_player_hits_from_wars from utils.time import is_cwl @@ -607,50 +607,78 @@ async def players_warhits_stats(filter: PlayerWarhitsFilter, request: Request): client = coc.Client(raw_attribute=True) START = pend.from_timestamp(filter.timestamp_start, tz=pend.UTC).strftime('%Y%m%dT%H%M%S.000Z') END = pend.from_timestamp(filter.timestamp_end, tz=pend.UTC).strftime('%Y%m%dT%H%M%S.000Z') - player_tags = [fix_tag(tag) for tag in filter.player_tags] - - pipeline = [ - {"$match": { - "$and": [ - {"$or": [ - {"data.clan.members.tag": {"$in": player_tags}}, - {"data.opponent.members.tag": {"$in": player_tags}} - ]}, - {"data.preparationStartTime": {"$gte": START}}, - {"data.preparationStartTime": {"$lte": END}} - ] - }}, - {"$unset": ["_id"]}, - {"$project": {"data": "$data"}}, - {"$sort": {"data.preparationStartTime": -1}}, - {"$limit": filter.limit or 50}, - ] - wars_docs = await mongo.clan_wars.aggregate(pipeline, allowDiskUse=True).to_list(length=None) - results = await collect_player_hits_from_wars(wars_docs, tags_to_include=player_tags, clan_tag=None, filter=filter, client=client) - return results + results = [] + + for tag in filter.player_tags: + player_tag = fix_tag(tag) + + pipeline = [ + {"$match": { + "$and": [ + {"$or": [ + {"data.clan.members.tag": player_tag}, + {"data.opponent.members.tag": player_tag} + ]}, + {"data.preparationStartTime": {"$gte": START}}, + {"data.preparationStartTime": {"$lte": END}} + ] + }}, + {"$unset": ["_id"]}, + {"$project": {"data": "$data"}}, + {"$sort": {"data.preparationStartTime": -1}}, + {"$limit": filter.limit or 50}, + ] + + wars_docs = await mongo.clan_wars.aggregate(pipeline, allowDiskUse=True).to_list(length=None) + + result = await collect_player_hits_from_wars( + wars_docs, + tags_to_include=[player_tag], + clan_tags=None, + filter=filter, + client=client + ) + + results.extend(result["items"]) + + return { "items": results } -@router.post("/war/clan/{clan_tag}/warhits", name="Get war hit stats for all players in a clan") -async def clan_warhits_stats(clan_tag: str, filter: Clanwarhitsfilter): +@router.post("/war/clans/warhits", name="Get war hit stats for all players in a clan") +async def clan_warhits_stats(filter: ClanWarHitsFilter): client = coc.Client(raw_attribute=True) START = pend.from_timestamp(filter.timestamp_start, tz=pend.UTC).strftime('%Y%m%dT%H%M%S.000Z') END = pend.from_timestamp(filter.timestamp_end, tz=pend.UTC).strftime('%Y%m%dT%H%M%S.000Z') - tag = fix_tag(clan_tag) - - pipeline = [ - {"$match": { - "data.clan.tag": tag, - "data.preparationStartTime": {"$gte": START, "$lte": END} - }}, - {"$unset": ["_id"]}, - {"$project": {"data": "$data"}}, - {"$sort": {"data.preparationStartTime": -1}}, - {"$limit": filter.limit or 100}, - ] - - clan_tag = clan_tag.replace("!", "#") - - wars_docs = await mongo.clan_wars.aggregate(pipeline, allowDiskUse=True).to_list(length=None) - results = await collect_player_hits_from_wars(wars_docs, tags_to_include=None, clan_tag=clan_tag, filter=filter, client=client) - return results + clan_tags = [fix_tag(tag) for tag in filter.clan_tags] + + items = [] + for clan_tag in clan_tags: + pipeline = [ + {"$match": { + "data.clan.tag": clan_tag, + "data.preparationStartTime": {"$gte": START, "$lte": END} + }}, + {"$unset": ["_id"]}, + {"$project": {"data": "$data"}}, + {"$sort": {"data.preparationStartTime": -1}}, + {"$limit": filter.limit or 100}, + ] + + wars_docs = await mongo.clan_wars.aggregate(pipeline, allowDiskUse=True).to_list(length=None) + + results = await collect_player_hits_from_wars( + wars_docs, + tags_to_include=None, + clan_tags=[clan_tag], + filter=filter, + client=client, + ) + + items.append({ + "clan_tag": clan_tag, + "players": results["items"], + "wars": results["wars"] + }) + + return {"items": items} diff --git a/routers/v2/war/models.py b/routers/v2/war/models.py index 55697eab..207c1723 100644 --- a/routers/v2/war/models.py +++ b/routers/v2/war/models.py @@ -1,9 +1,8 @@ from typing import Optional, List - from pydantic import BaseModel - -class Clanwarhitsfilter(BaseModel): +class ClanWarHitsFilter(BaseModel): + clan_tags: List[str] timestamp_start: int = 0 timestamp_end: int = 2527625513 limit: int = None diff --git a/routers/v2/war/utils.py b/routers/v2/war/utils.py index aef56c7b..64230686 100644 --- a/routers/v2/war/utils.py +++ b/routers/v2/war/utils.py @@ -705,7 +705,7 @@ def defense_passes_filters(dfn, member, filter): return True -async def collect_player_hits_from_wars(wars_docs, tags_to_include=None, clan_tag=None, filter=None, client=None): +async def collect_player_hits_from_wars(wars_docs, tags_to_include=None, clan_tags=None, filter=None, client=None): from collections import defaultdict players_data = defaultdict(lambda: { @@ -720,12 +720,12 @@ async def collect_player_hits_from_wars(wars_docs, tags_to_include=None, clan_ta seen_wars = set() all_wars_dict = {} - added_war_ids = set() for war_doc in wars_docs: war_raw = war_doc["data"] war = coc.ClanWar(data=war_raw, client=client) - war_id = "-".join(sorted([war.clan_tag, war.opponent.tag])) + f"-{int(war.preparation_start_time.time.timestamp())}" + war_id = "-".join( + sorted([war.clan_tag, war.opponent.tag])) + f"-{int(war.preparation_start_time.time.timestamp())}" if war_id in seen_wars: continue seen_wars.add(war_id) @@ -734,7 +734,7 @@ async def collect_player_hits_from_wars(wars_docs, tags_to_include=None, clan_ta continue for side in [war.clan, war.opponent]: - if clan_tag and side.tag != clan_tag: + if clan_tags and side.tag not in clan_tags: continue for member in side.members: @@ -848,7 +848,8 @@ async def collect_player_hits_from_wars(wars_docs, tags_to_include=None, clan_ta ) results.append({ - "name": data["attacks"][0]["attacker"]["name"] if data["attacks"] else data["defenses"][0]["defender"]["name"], + "name": data["attacks"][0]["attacker"]["name"] if data["attacks"] else data["defenses"][0]["defender"][ + "name"], "tag": tag, "townhallLevel": data["townhall"], "stats": stats, @@ -859,7 +860,24 @@ async def collect_player_hits_from_wars(wars_docs, tags_to_include=None, clan_ta "warType": filter.type, }) - return { - "items": results, - "wars": list(all_wars_dict.values()) - } \ No newline at end of file + if clan_tags: + return { + "items": results, + "wars": list(all_wars_dict.values()) + } + else: + for tag in players_data: + player_data = players_data[tag] + wars_per_player = [] + for war_info in player_data["wars"]: + wars_per_player.append({ + "war_data": war_info["war_data"], + "members": [war_info["member_data"]] + }) + + for item in results: + if item["tag"] == tag: + item["wars"] = wars_per_player + return { + "items": results + } From 92eb90a68f2f3925eefe4b781f297ebd1536b630 Mon Sep 17 00:00:00 2001 From: Destinea Date: Mon, 12 May 2025 00:31:44 +0200 Subject: [PATCH 113/174] chore: parallelization --- routers/v2/player/endpoints.py | 2 -- routers/v2/war/endpoints.py | 26 ++++++++++++++------------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/routers/v2/player/endpoints.py b/routers/v2/player/endpoints.py index f20f3abf..60308dc7 100644 --- a/routers/v2/player/endpoints.py +++ b/routers/v2/player/endpoints.py @@ -102,7 +102,6 @@ async def get_players_stats(body: PlayerTagsRequest, request: Request): async with aiohttp.ClientSession() as session: fetch_tasks = [fetch_player_api_data(session, tag) for tag in player_tags] api_results = await asyncio.gather(*fetch_tasks) - print("API results:", api_results) result = [] for tag, data in zip(player_tags, api_results): @@ -112,7 +111,6 @@ async def get_players_stats(body: PlayerTagsRequest, request: Request): else: continue if data: - print("Data:", data) result.append({ "tag": tag, **data diff --git a/routers/v2/war/endpoints.py b/routers/v2/war/endpoints.py index 1192abf6..88da56e5 100644 --- a/routers/v2/war/endpoints.py +++ b/routers/v2/war/endpoints.py @@ -602,17 +602,14 @@ async def insert_logo_from_cdn(sheet, image_url: str, anchor_cell="A1", height=8 ) -@router.post("/war/players/warhits", name="Bulk war hits overview and detailed stats") +@router.post("/war/players/warhits") async def players_warhits_stats(filter: PlayerWarhitsFilter, request: Request): client = coc.Client(raw_attribute=True) START = pend.from_timestamp(filter.timestamp_start, tz=pend.UTC).strftime('%Y%m%dT%H%M%S.000Z') END = pend.from_timestamp(filter.timestamp_end, tz=pend.UTC).strftime('%Y%m%dT%H%M%S.000Z') - results = [] - - for tag in filter.player_tags: + async def fetch_player(tag: str): player_tag = fix_tag(tag) - pipeline = [ {"$match": { "$and": [ @@ -639,21 +636,23 @@ async def players_warhits_stats(filter: PlayerWarhitsFilter, request: Request): filter=filter, client=client ) + return result["items"] - results.extend(result["items"]) + player_tasks = [fetch_player(tag) for tag in filter.player_tags] + results_per_player = await asyncio.gather(*player_tasks) + results = [item for sublist in results_per_player for item in sublist] # flatten - return { "items": results } + return {"items": results} -@router.post("/war/clans/warhits", name="Get war hit stats for all players in a clan") +@router.post("/war/clans/warhits") async def clan_warhits_stats(filter: ClanWarHitsFilter): client = coc.Client(raw_attribute=True) START = pend.from_timestamp(filter.timestamp_start, tz=pend.UTC).strftime('%Y%m%dT%H%M%S.000Z') END = pend.from_timestamp(filter.timestamp_end, tz=pend.UTC).strftime('%Y%m%dT%H%M%S.000Z') clan_tags = [fix_tag(tag) for tag in filter.clan_tags] - items = [] - for clan_tag in clan_tags: + async def fetch_clan(clan_tag: str): pipeline = [ {"$match": { "data.clan.tag": clan_tag, @@ -675,10 +674,13 @@ async def clan_warhits_stats(filter: ClanWarHitsFilter): client=client, ) - items.append({ + return { "clan_tag": clan_tag, "players": results["items"], "wars": results["wars"] - }) + } + + clan_tasks = [fetch_clan(tag) for tag in clan_tags] + items = await asyncio.gather(*clan_tasks) return {"items": items} From 0580b44ef8243de2eb36d29c8ed2865ec16efc5f Mon Sep 17 00:00:00 2001 From: Destinea Date: Tue, 13 May 2025 19:47:22 +0200 Subject: [PATCH 114/174] feat: War stats by th vs th --- routers/v2/war/utils.py | 38 ++++++++++++++++++-------------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/routers/v2/war/utils.py b/routers/v2/war/utils.py index 64230686..71fe4e26 100644 --- a/routers/v2/war/utils.py +++ b/routers/v2/war/utils.py @@ -1,17 +1,12 @@ import asyncio from collections import defaultdict from typing import List - import coc import requests -import aiohttp - from routers.v2.war.models import PlayerWarhitsFilter -from utils.utils import fix_tag semaphore = asyncio.Semaphore(10) - def ranking_create(data: dict): # Initialize accumulators star_dict = defaultdict(int) @@ -284,9 +279,9 @@ async def process_war_stats(war_league_infos, clan_summary_map): if data["avg_attacker_townhall_level"] is not None: stats["attacker_th_level_list"].append(data["avg_attacker_townhall_level"]) - attack = member.get("attacks") - if attack: - attack = attack[0] if isinstance(attack, list) else attack + attacks = member.get("attacks") + if attacks: + attack = attacks[0] if isinstance(attacks, list) else attacks stars = attack["stars"] destruction = attack["destructionPercentage"] defender_tag = attack.get("defenderTag") @@ -361,7 +356,6 @@ async def compute_clan_ranking(clan_summary_map): def compute_member_position_stats(war, clan_key="clan", opponent_key="opponent"): - from collections import defaultdict enemy_map = { member["tag"]: member.get("mapPosition") @@ -553,8 +547,6 @@ def compute_warhit_stats( missed_defenses: int = 0, num_wars: int = 0, ): - from collections import defaultdict - def filter_hit(hit, is_attack=True): th_key = "defender" if is_attack else "attacker" @@ -588,16 +580,21 @@ def count_stars(lst): star_count[hit["stars"]] += 1 return {str(k): star_count[k] for k in range(4)} - def group_by_enemy_th(lst, is_attack=True): - th_key = "defender" if is_attack else "attacker" + def group_by_th_matchup(lst, is_attack=True): + + th2_key = "defender" if is_attack else "attacker" + th1_key = "attacker" if is_attack else "defender" grouped = defaultdict(list) + for hit in lst: - enemy_th_level = hit[th_key]["townhallLevel"] - grouped[enemy_th_level].append(hit) + attacker_th = hit[th1_key]["townhallLevel"] + defender_th = hit[th2_key]["townhallLevel"] + matchup = f"{attacker_th}vs{defender_th}" + grouped[matchup].append(hit) result = {} - for th, hits in grouped.items(): - result[str(th)] = { + for matchup, hits in grouped.items(): + result[matchup] = { "averageStars": average("stars", hits), "averageDestruction": average("destructionPercentage", hits), "count": len(hits), @@ -613,8 +610,8 @@ def group_by_enemy_th(lst, is_attack=True): "missedDefenses": missed_defenses, "starsCount": count_stars(filtered_attacks), "starsCountDef": count_stars(filtered_defenses), - "byEnemyTownhall": group_by_enemy_th(filtered_attacks, is_attack=True), - "byEnemyTownhallDef": group_by_enemy_th(filtered_defenses, is_attack=False), + "byEnemyTownhall": group_by_th_matchup(filtered_attacks, is_attack=True), + "byEnemyTownhallDef": group_by_th_matchup(filtered_defenses, is_attack=False), } @@ -706,7 +703,6 @@ def defense_passes_filters(dfn, member, filter): async def collect_player_hits_from_wars(wars_docs, tags_to_include=None, clan_tags=None, filter=None, client=None): - from collections import defaultdict players_data = defaultdict(lambda: { "attacks": [], @@ -824,6 +820,8 @@ async def collect_player_hits_from_wars(wars_docs, tags_to_include=None, clan_ta } all_wars_dict[war_id]["members"].append(member_raw_data) + war_info["missedAttacks"] = war.attacks_per_member - len(member.attacks) + war_info["missedDefenses"] = 1 if not member.best_opponent_attack else 0 player_data["wars"].append(war_info) results = [] From 7e51e689902dba670476cb514d888aa2b9891f50 Mon Sep 17 00:00:00 2001 From: Destinea Date: Tue, 20 May 2025 19:51:35 +0200 Subject: [PATCH 115/174] fix: townhall level --- routers/v2/war/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routers/v2/war/utils.py b/routers/v2/war/utils.py index 71fe4e26..69c5a546 100644 --- a/routers/v2/war/utils.py +++ b/routers/v2/war/utils.py @@ -739,7 +739,7 @@ async def collect_player_hits_from_wars(wars_docs, tags_to_include=None, clan_ta continue player_data = players_data[tag] - player_data["townhall"] = member.town_hall + player_data["townhall"] = max(player_data["townhall"] or 0, member.town_hall) player_data["missedAttacks"] += war.attacks_per_member - len(member.attacks) player_data["missedDefenses"] += 1 if not member.best_opponent_attack else 0 player_data["warsCount"] += 1 From 09e0640feff228ca2d80edaa9fbc9f234c3356fb Mon Sep 17 00:00:00 2001 From: Destinea Date: Thu, 29 May 2025 21:13:00 +0200 Subject: [PATCH 116/174] fix: List index out of range --- routers/v2/war/utils.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/routers/v2/war/utils.py b/routers/v2/war/utils.py index 69c5a546..83320d1c 100644 --- a/routers/v2/war/utils.py +++ b/routers/v2/war/utils.py @@ -846,8 +846,7 @@ async def collect_player_hits_from_wars(wars_docs, tags_to_include=None, clan_ta ) results.append({ - "name": data["attacks"][0]["attacker"]["name"] if data["attacks"] else data["defenses"][0]["defender"][ - "name"], + "name": data["attacks"][0]["attacker"]["name"] if data["attacks"] else (data["defenses"][0]["defender"]["name"] if data["defenses"] else None), "tag": tag, "townhallLevel": data["townhall"], "stats": stats, From 69ff0cbef841df975e4ab4597016f8a95b9b6d6e Mon Sep 17 00:00:00 2001 From: Destinea Date: Sun, 22 Jun 2025 17:08:50 +0200 Subject: [PATCH 117/174] fix: improve auth security --- main.py | 11 +- routers/v2/accounts/endpoints.py | 32 +-- routers/v2/auth/endpoints.py | 351 +++++++++++++++++++++++++------ routers/v2/auth/models.py | 15 +- utils/auth_utils.py | 68 +++--- utils/password_validator.py | 122 +++++++++++ utils/security_middleware.py | 46 ++++ utils/utils.py | 9 +- 8 files changed, 517 insertions(+), 137 deletions(-) create mode 100644 utils/password_validator.py create mode 100644 utils/security_middleware.py diff --git a/main.py b/main.py index f3f360c5..4f2b21ad 100644 --- a/main.py +++ b/main.py @@ -15,6 +15,7 @@ from slowapi import Limiter from slowapi.util import get_ipaddr +from slowapi.middleware import SlowAPIMiddleware from fastapi_cache import FastAPICache from fastapi_cache.backends.inmemory import InMemoryBackend @@ -27,9 +28,11 @@ middleware = [ Middleware( CORSMiddleware, - allow_origins=["*"], - allow_methods=["*"], - allow_headers=["*"], + allow_origins=["*"], # Support mobile apps, web browsers, and bots + allow_methods=["GET", "POST", "PUT", "DELETE", "OPTIONS"], + allow_headers=["Authorization", "Content-Type", "X-Requested-With", "Accept", "Origin"], + allow_credentials=True, # Enable for web browsers and potential cookie-based auth + expose_headers=["*"], ), Middleware( GZipMiddleware, @@ -38,6 +41,8 @@ ] app = FastAPI(middleware=middleware) +app.state.limiter = limiter +app.add_middleware(SlowAPIMiddleware) app.mount("/static", StaticFiles(directory="static"), name="static") diff --git a/routers/v2/accounts/endpoints.py b/routers/v2/accounts/endpoints.py index cb1e5055..87e946e1 100644 --- a/routers/v2/accounts/endpoints.py +++ b/routers/v2/accounts/endpoints.py @@ -1,21 +1,18 @@ import pendulum as pend import re -from fastapi import HTTPException, Header, APIRouter +from fastapi import HTTPException, Header, APIRouter, Depends from routers.v2.accounts.utils import fetch_coc_account_data, is_coc_account_linked, verify_coc_ownership from routers.v2.auth.models import CocAccountRequest from utils.utils import db_client, generate_custom_id -from utils.auth_utils import decode_jwt +from utils.security_middleware import get_current_user_id router = APIRouter(prefix="/v2", tags=["Coc Accounts"], include_in_schema=True) @router.post("/users/add-coc-account", name="Link a Clash of Clans account to a user") -async def add_coc_account(request: CocAccountRequest, authorization: str = Header(None)): +async def add_coc_account(request: CocAccountRequest, user_id: str = Depends(get_current_user_id)): """Associate a Clash of Clans account (tag) with a user WITHOUT ownership verification.""" - token = authorization.split("Bearer ")[1] - decoded_token = decode_jwt(token) - user_id = decoded_token["sub"] player_tag = request.player_tag if not re.match(r"^#?[A-Z0-9]{5,12}$", player_tag): @@ -56,11 +53,8 @@ async def add_coc_account(request: CocAccountRequest, authorization: str = Heade @router.post("/users/add-coc-account-with-token", name="Link a Clash of Clans account to a user with a token verification") -async def add_coc_account_with_verification(request: CocAccountRequest, authorization: str = Header(None)): +async def add_coc_account_with_verification(request: CocAccountRequest, user_id: str = Depends(get_current_user_id)): """Associate a Clash of Clans account with a user WITH ownership verification.""" - token = authorization.split("Bearer ")[1] - decoded_token = decode_jwt(token) - user_id = decoded_token["sub"] player_tag = request.player_tag player_token = request.player_token @@ -120,25 +114,17 @@ async def add_coc_account_with_verification(request: CocAccountRequest, authoriz @router.get("/users/coc-accounts", name="Get all Clash of Clans accounts linked to a user") -async def get_coc_accounts(authorization: str = Header(None)): +async def get_coc_accounts(user_id: str = Depends(get_current_user_id)): """Retrieve all Clash of Clans accounts linked to a user.""" - token = authorization.split("Bearer ")[1] - decoded_token = decode_jwt(token) - user_id = decoded_token["sub"] - accounts = await db_client.coc_accounts.find({"user_id": user_id}).sort("order_index", 1).to_list(length=None) return {"coc_accounts": accounts} @router.delete("/users/remove-coc-account", name="Remove a Clash of Clans account linked to a user") -async def remove_coc_account(request: CocAccountRequest, authorization: str = Header(None)): +async def remove_coc_account(request: CocAccountRequest, user_id: str = Depends(get_current_user_id)): """Remove a specific Clash of Clans account linked to a user.""" - - token = authorization.split("Bearer ")[1] - decoded_token = decode_jwt(token) - user_id = decoded_token["sub"] player_tag = request.player_tag if not player_tag.startswith("#"): @@ -182,13 +168,9 @@ async def check_coc_account(player_tag: str): @router.put("/users/reorder-coc-accounts", name="Reorder linked Clash of Clans accounts") -async def reorder_coc_accounts(request: dict, authorization: str = Header(None)): +async def reorder_coc_accounts(request: dict, user_id: str = Depends(get_current_user_id)): """Reorder Clash of Clans accounts based on user preferences.""" - token = authorization.split("Bearer ")[1] - decoded_token = decode_jwt(token) - user_id = decoded_token["sub"] - new_order = request.get("ordered_tags", []) if not new_order: raise HTTPException(status_code=400, detail="Ordered tags list cannot be empty") diff --git a/routers/v2/auth/endpoints.py b/routers/v2/auth/endpoints.py index e06cc35a..84bbaa3d 100644 --- a/routers/v2/auth/endpoints.py +++ b/routers/v2/auth/endpoints.py @@ -1,61 +1,58 @@ import httpx import pendulum as pend -from fastapi import Header, HTTPException, Request, APIRouter -from utils.auth_utils import get_valid_discord_access_token, decode_jwt, encrypt_data, generate_jwt, \ - generate_refresh_token +from fastapi import Header, HTTPException, Request, APIRouter, Depends +from slowapi import Limiter +from slowapi.util import get_ipaddr +from utils.auth_utils import get_valid_discord_access_token, decode_jwt, decode_refresh_token, encrypt_data, generate_jwt, \ + generate_refresh_token, verify_password, hash_password from utils.utils import db_client, generate_custom_id, config -from routers.v2.auth.models import AuthResponse, UserInfo, RefreshTokenRequest +from utils.password_validator import PasswordValidator +from utils.security_middleware import get_current_user_id +from routers.v2.auth.models import AuthResponse, UserInfo, RefreshTokenRequest, EmailRegisterRequest, EmailAuthRequest -router = APIRouter(prefix="/v2", tags=["App Authentication"], include_in_schema=True) - -@router.get("/auth/me", name="Get current Discord user information") -async def get_current_user(authorization: str = Header(None)): - if not authorization or not authorization.startswith("Bearer "): - raise HTTPException(status_code=401, detail="Missing or invalid authentication token") +limiter = Limiter(key_func=get_ipaddr) - token = authorization.split("Bearer ")[1] +router = APIRouter(prefix="/v2", tags=["App Authentication"], include_in_schema=True) - decoded_token = decode_jwt(token) - user_id = decoded_token["sub"] +@router.get("/auth/me", name="Get current user information") +async def get_current_user_info(user_id: str = Depends(get_current_user_id)): current_user = await db_client.app_users.find_one({"user_id": user_id}) if not current_user: raise HTTPException(status_code=404, detail="User not found") - discord_access = await get_valid_discord_access_token(current_user["user_id"]) - - async with httpx.AsyncClient() as client: - response = await client.get( - "https://discord.com/api/users/@me", - headers={"Authorization": f"Bearer {discord_access}"} - ) - - if response.status_code == 200: - discord_data = response.json() - - # Fallback to username if global_name is missing - username = discord_data.get("global_name") or discord_data.get("username") - - # Fallback avatar if missing - avatar = discord_data.get("avatar") - avatar_url = ( - f"https://cdn.discordapp.com/avatars/{discord_data['id']}/{avatar}.png" - if avatar - else "https://clashkingfiles.b-cdn.net/stickers/Troop_HV_Goblin.png" - ) - - return { - "user_id": current_user["user_id"], - "discord_username": username, - "avatar_url": avatar_url - } - - raise HTTPException(status_code=500, detail="Error retrieving Discord profile") + username = current_user.get("username") or current_user.get("email") + avatar_url = current_user.get("avatar_url") or "https://clashkingfiles.b-cdn.net/stickers/Troop_HV_Goblin.png" + + if "discord" in current_user.get("auth_methods", []): + try: + discord_access = await get_valid_discord_access_token(current_user["user_id"]) + async with httpx.AsyncClient() as client: + response = await client.get( + "https://discord.com/api/users/@me", + headers={"Authorization": f"Bearer {discord_access}"} + ) + if response.status_code == 200: + discord_data = response.json() + username = discord_data.get("global_name") or discord_data.get("username") or username + avatar = discord_data.get("avatar") + avatar_url = ( + f"https://cdn.discordapp.com/avatars/{discord_data['id']}/{avatar}.png" + if avatar else avatar_url + ) + except Exception: + pass + + return UserInfo( + user_id=current_user["user_id"], + username=username, + avatar_url=avatar_url + ) @router.post("/auth/discord", response_model=AuthResponse, name="Authenticate with Discord") +@limiter.limit("5/minute") async def auth_discord(request: Request): - """Authenticate with Discord""" form = await request.form() code = form.get("code") code_verifier = form.get("code_verifier") @@ -66,7 +63,6 @@ async def auth_discord(request: Request): if not code or not code_verifier: raise HTTPException(status_code=400, detail="Missing Discord code or code_verifier") - # Get the access token and refresh token from Discord token_url = "https://discord.com/api/oauth2/token" token_data = { "client_id": config.DISCORD_CLIENT_ID, @@ -91,35 +87,54 @@ async def auth_discord(request: Request): refresh_token_discord = discord_data["refresh_token"] expires_in = discord_data["expires_in"] - # Get the user data from Discord async with httpx.AsyncClient() as client: user_response = await client.get( "https://discord.com/api/users/@me", headers={"Authorization": f"Bearer {access_token_discord}"}, ) - if user_response.status_code != 200: raise HTTPException(status_code=500, detail="Error retrieving user info") - user_data = user_response.json() discord_user_id = user_data["id"] + email = user_data.get("email") - # Verify if the user already exists in the database - existing_user = await db_client.app_users.find_one({"user_id": discord_user_id}) - if not existing_user: - await db_client.app_users.insert_one( - {"user_id": discord_user_id, "_id": generate_custom_id(int(discord_user_id)), "created_at": pend.now()}) + existing_user = await db_client.app_users.find_one({"$or": [ + {"user_id": discord_user_id}, + {"email": email} + ]}) + + if existing_user: + user_id = existing_user["user_id"] + auth_methods = set(existing_user.get("auth_methods", [])) + auth_methods.add("discord") + + await db_client.app_users.update_one( + {"user_id": user_id}, + {"$set": { + "auth_methods": list(auth_methods), + "email": email, + "username": user_data["username"] + }} + ) + else: + user_id = discord_user_id + await db_client.app_users.insert_one({ + "_id": generate_custom_id(int(user_id)), + "user_id": user_id, + "auth_methods": ["discord"], + "email": email, + "username": user_data["username"], + "created_at": pend.now() + }) - # Encrypt the tokens encrypted_discord_access = await encrypt_data(access_token_discord) encrypted_discord_refresh = await encrypt_data(refresh_token_discord) - # Store the tokens in the database await db_client.app_discord_tokens.update_one( - {"user_id": discord_user_id, "device_id": device_id, "device_name": device_name}, + {"user_id": user_id, "device_id": device_id, "device_name": device_name}, { - "$setOnInsert": {"_id": generate_custom_id(int(discord_user_id))}, + "$setOnInsert": {"_id": generate_custom_id(int(user_id))}, "$set": { "discord_access_token": encrypted_discord_access, "discord_refresh_token": encrypted_discord_refresh, @@ -129,15 +144,13 @@ async def auth_discord(request: Request): upsert=True ) - # Generate a JWT token for the user - access_token = generate_jwt(discord_user_id, device_id) - refresh_token = generate_refresh_token(discord_user_id) + access_token = generate_jwt(user_id, device_id) + refresh_token = generate_refresh_token(user_id) - # Store the refresh token in the database await db_client.app_refresh_tokens.update_one( - {"user_id": discord_user_id}, + {"user_id": user_id}, { - "$setOnInsert": {"_id": generate_custom_id(int(discord_user_id))}, + "$setOnInsert": {"_id": generate_custom_id(int(user_id))}, "$set": { "refresh_token": refresh_token, "expires_at": pend.now().add(days=30) @@ -146,12 +159,11 @@ async def auth_discord(request: Request): upsert=True ) - # Return the response return AuthResponse( access_token=access_token, refresh_token=refresh_token, user=UserInfo( - user_id=discord_user_id, + user_id=str(user_id), username=user_data["username"], avatar_url=f"https://cdn.discordapp.com/avatars/{discord_user_id}/{user_data['avatar']}.png" ) @@ -160,18 +172,223 @@ async def auth_discord(request: Request): @router.post("/auth/refresh", name="Refresh the access token") async def refresh_access_token(request: RefreshTokenRequest) -> dict: - """Refresh the access token using the stored refresh token.""" + # First validate the refresh token JWT signature + try: + decoded_refresh = decode_refresh_token(request.refresh_token) + user_id_from_token = decoded_refresh["sub"] + except Exception: + raise HTTPException(status_code=401, detail="Invalid refresh token signature.") + + # Then check if it exists in database stored_refresh_token = await db_client.app_refresh_tokens.find_one({"refresh_token": request.refresh_token}) if not stored_refresh_token: raise HTTPException(status_code=401, detail="Invalid refresh token.") - if pend.now().int_timestamp > stored_refresh_token["expires_at"].timestamp() : + if pend.now().int_timestamp > stored_refresh_token["expires_at"].timestamp(): raise HTTPException(status_code=401, detail="Expired refresh token. Please login again.") user_id = stored_refresh_token["user_id"] + + # Verify user_id matches + if user_id != user_id_from_token: + raise HTTPException(status_code=401, detail="Invalid refresh token.") - # Generate a new access token new_access_token = generate_jwt(user_id, request.device_id) return {"access_token": new_access_token} + + +@router.post("/auth/register", response_model=AuthResponse) +@limiter.limit("3/minute") +async def register_email_user(req: EmailRegisterRequest, request: Request): + # Validate input + PasswordValidator.validate_email(req.email) + PasswordValidator.validate_password(req.password) + PasswordValidator.validate_username(req.username) + + existing_user = await db_client.app_users.find_one({"email": req.email}) + if existing_user: + user_id = existing_user["user_id"] + auth_methods = set(existing_user.get("auth_methods", [])) + auth_methods.add("email") + + await db_client.app_users.update_one( + {"user_id": user_id}, + {"$set": { + "auth_methods": list(auth_methods), + "username": req.username, + "password": hash_password(req.password) + }} + ) + else: + user_id = generate_custom_id() + await db_client.app_users.insert_one({ + "_id": user_id, + "user_id": user_id, + "email": req.email, + "username": req.username, + "password": hash_password(req.password), + "auth_methods": ["email"], + "created_at": pend.now() + }) + + access_token = generate_jwt(user_id, req.device_id) + refresh_token = generate_refresh_token(user_id) + + await db_client.app_refresh_tokens.update_one( + {"user_id": user_id}, + { + "$setOnInsert": {"_id": str(generate_custom_id())}, + "$set": { + "refresh_token": refresh_token, + "expires_at": pend.now().add(days=30) + } + }, + upsert=True + ) + + return AuthResponse( + access_token=access_token, + refresh_token=refresh_token, + user=UserInfo( + user_id=str(user_id), + username=req.username, + avatar_url="https://clashkingfiles.b-cdn.net/stickers/Troop_HV_Goblin.png" + ) + ) + + +@router.post("/auth/email", response_model=AuthResponse) +@limiter.limit("5/minute") +async def login_with_email(req: EmailAuthRequest, request: Request): + # Add small delay to prevent timing attacks + import asyncio + await asyncio.sleep(0.1) + + user = await db_client.app_users.find_one({"email": req.email}) + if not user or not verify_password(req.password, user.get("password", "")): + raise HTTPException(status_code=401, detail="Invalid email or password") + + access_token = generate_jwt(user["user_id"], req.device_id) + refresh_token = generate_refresh_token(user["user_id"]) + + await db_client.app_refresh_tokens.update_one( + {"user_id": user["user_id"]}, + { + "$setOnInsert": {"_id": generate_custom_id()}, + "$set": { + "refresh_token": refresh_token, + "expires_at": pend.now().add(days=30) + } + }, + upsert=True + ) + + return AuthResponse( + access_token=access_token, + refresh_token=refresh_token, + user=UserInfo( + user_id=user["user_id"], + username=user["username"], + avatar_url=user.get("avatar_url", "https://clashkingfiles.b-cdn.net/stickers/Troop_HV_Goblin.png") + ) + ) + +@router.post("/auth/link-discord", name="Link Discord to an existing account") +async def link_discord_account(request: Request, authorization: str = Header(None)): + if not authorization or not authorization.startswith("Bearer "): + raise HTTPException(status_code=401, detail="Missing or invalid authentication token") + + token = authorization.split("Bearer ")[1] + decoded_token = decode_jwt(token) + user_id = decoded_token["sub"] + + current_user = await db_client.app_users.find_one({"user_id": user_id}) + if not current_user: + raise HTTPException(status_code=404, detail="User not found") + + form = await request.form() + discord_access_token = form.get("access_token") + if not discord_access_token: + raise HTTPException(status_code=400, detail="Missing access_token") + + async with httpx.AsyncClient() as client: + discord_response = await client.get( + "https://discord.com/api/users/@me", + headers={"Authorization": f"Bearer {discord_access_token}"} + ) + if discord_response.status_code != 200: + raise HTTPException(status_code=400, detail="Invalid Discord access token") + discord_data = discord_response.json() + + discord_user_id = discord_data["id"] + email = discord_data.get("email") + + # Prevent linking a Discord account already linked to another user + conflict_user = await db_client.app_users.find_one({"linked_accounts.discord.discord_user_id": discord_user_id}) + if conflict_user and conflict_user["user_id"] != user_id: + raise HTTPException(status_code=400, detail="Discord account already linked to another user") + + await db_client.app_users.update_one( + {"user_id": user_id}, + {"$set": { + "auth_methods": list(set(current_user.get("auth_methods", []) + ["discord"])), + "linked_accounts.discord": { + "linked_at": pend.now().to_iso8601_string(), + "discord_user_id": discord_user_id, + "username": discord_data.get("username"), + "email": email + } + }} + ) + + encrypted_discord_access = await encrypt_data(discord_access_token) + refresh_token = form.get("refresh_token") + expires_in = form.get("expires_in") + device_id = form.get("device_id") + device_name = form.get("device_name") + if refresh_token and expires_in: + encrypted_discord_refresh = await encrypt_data(refresh_token) + await db_client.app_discord_tokens.update_one( + {"user_id": user_id, "device_id": device_id, "device_name": device_name}, + { + "$setOnInsert": {"_id": generate_custom_id(int(user_id))}, + "$set": { + "discord_access_token": encrypted_discord_access, + "discord_refresh_token": encrypted_discord_refresh, + "expires_at": pend.now().add(seconds=int(expires_in)) + } + }, + upsert=True + ) + + return {"detail": "Discord account successfully linked"} + + +@router.post("/auth/link-email", name="Link Email to an existing Discord account") +async def link_email_account(req: EmailRegisterRequest, user_id: str = Depends(get_current_user_id)): + # Validate input + PasswordValidator.validate_email(req.email) + PasswordValidator.validate_password(req.password) + PasswordValidator.validate_username(req.username) + + current_user = await db_client.app_users.find_one({"user_id": user_id}) + if not current_user: + raise HTTPException(status_code=404, detail="User not found") + + email_conflict = await db_client.app_users.find_one({"email": req.email}) + if email_conflict and email_conflict["user_id"] != user_id: + raise HTTPException(status_code=400, detail="Email already linked to another account") + + await db_client.app_users.update_one( + {"user_id": user_id}, + {"$set": { + "auth_methods": list(set(current_user.get("auth_methods", []) + ["email"])), + "email": req.email, + "username": req.username, + "password": hash_password(req.password) + }} + ) + + return {"detail": "Email successfully linked to your account"} diff --git a/routers/v2/auth/models.py b/routers/v2/auth/models.py index 1b31e334..1ebd84a6 100644 --- a/routers/v2/auth/models.py +++ b/routers/v2/auth/models.py @@ -1,4 +1,4 @@ -from pydantic import BaseModel +from pydantic import BaseModel, EmailStr class CocAccountRequest(BaseModel): @@ -18,3 +18,16 @@ class AuthResponse(BaseModel): class RefreshTokenRequest(BaseModel): refresh_token: str device_id: str + +class EmailAuthRequest(BaseModel): + email: EmailStr + password: str + device_id: str + device_name: str + +class EmailRegisterRequest(BaseModel): + email: EmailStr + password: str + username: str + device_id: str + device_name: str diff --git a/utils/auth_utils.py b/utils/auth_utils.py index 47d37fe4..58935cac 100644 --- a/utils/auth_utils.py +++ b/utils/auth_utils.py @@ -1,36 +1,10 @@ -import os import jwt import requests import pendulum as pend -from dotenv import load_dotenv from fastapi import HTTPException -from utils.utils import db_client -from passlib.context import CryptContext -from cryptography.fernet import Fernet +from utils.utils import db_client, config import base64 -############################ -# Load environment variables -############################ -load_dotenv() - -############################ -# Global configuration -############################ -SECRET_KEY = os.getenv('SECRET_KEY') -REFRESH_SECRET = os.getenv('REFRESH_SECRET') -DISCORD_CLIENT_ID = os.getenv('DISCORD_CLIENT_ID') -DISCORD_CLIENT_SECRET = os.getenv('DISCORD_CLIENT_SECRET') -ENCRYPTION_KEY = os.getenv('ENCRYPTION_KEY') -ALGORITHM = "HS256" - -# Fernet cipher for encryption/decryption -cipher = Fernet(ENCRYPTION_KEY) - -# Password hashing configuration -pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto") - - ############################ # Utility functions ############################ @@ -38,7 +12,7 @@ # Encrypt data using Fernet async def encrypt_data(data: str) -> str: """Encrypt data using Fernet.""" - encrypted = cipher.encrypt(data.encode("utf-8")) # Returns bytes + encrypted = config.cipher.encrypt(data.encode("utf-8")) # Returns bytes return base64.urlsafe_b64encode(encrypted).decode("utf-8") # Convert to str for storage # Decrypt data using Fernet @@ -46,7 +20,7 @@ async def decrypt_data(data: str) -> str: """Decrypt data using Fernet.""" try: data_bytes = base64.urlsafe_b64decode(data.encode("utf-8")) # Convert back to bytes - decrypted = cipher.decrypt(data_bytes).decode("utf-8") # Decrypt and decode + decrypted = config.cipher.decrypt(data_bytes).decode("utf-8") # Decrypt and decode return decrypted except Exception as e: raise HTTPException(status_code=500, detail=f"Failed to decrypt data: {str(e)}") @@ -57,15 +31,16 @@ def generate_jwt(user_id: str, device_id: str) -> str: payload = { "sub": user_id, "device": device_id, - "exp": pend.now().add(days=90).int_timestamp + "iat": pend.now().int_timestamp, + "exp": pend.now().add(hours=24).int_timestamp } - return jwt.encode(payload, SECRET_KEY, algorithm=ALGORITHM) + return jwt.encode(payload, config.SECRET_KEY, algorithm=config.ALGORITHM) def decode_jwt(token: str) -> dict: - """Decode the JWT token and return the payload.""" + """Decode the JWT access token and return the payload.""" try: - decoded_token = jwt.decode(token, SECRET_KEY, algorithms=[ALGORITHM]) + decoded_token = jwt.decode(token, config.SECRET_KEY, algorithms=[config.ALGORITHM]) return decoded_token except jwt.ExpiredSignatureError: raise HTTPException(status_code=401, detail="Expired token. Please refresh.") @@ -74,9 +49,21 @@ def decode_jwt(token: str) -> dict: except Exception as e: raise HTTPException(status_code=500, detail=f"Error decoding token: {str(e)}") +def decode_refresh_token(token: str) -> dict: + """Decode the JWT refresh token and return the payload.""" + try: + decoded_token = jwt.decode(token, config.REFRESH_SECRET, algorithms=[config.ALGORITHM]) + return decoded_token + except jwt.ExpiredSignatureError: + raise HTTPException(status_code=401, detail="Expired refresh token. Please login again.") + except jwt.InvalidTokenError: + raise HTTPException(status_code=401, detail="Invalid refresh token. Please login again.") + except Exception as e: + raise HTTPException(status_code=500, detail=f"Error decoding refresh token: {str(e)}") + # Verify a plaintext password against a hashed one def verify_password(plain_password: str, hashed_password: str) -> bool: - return pwd_context.verify(plain_password, hashed_password) + return config.pwd_context.verify(plain_password, hashed_password) # Generate a long-lived refresh token (90 days) @@ -86,8 +73,10 @@ def generate_clashking_access_token(user_id: str, device_id: str): "device": device_id, "exp": pend.now().add(days=90).int_timestamp } - return jwt.encode(payload, REFRESH_SECRET, algorithm="HS256") + return jwt.encode(payload, config.REFRESH_SECRET, algorithm=config.ALGORITHM) +def hash_password(password: str) -> str: + return config.pwd_context.hash(password) async def refresh_discord_access_token(encrypted_refresh_token: str) -> dict: """ @@ -96,8 +85,8 @@ async def refresh_discord_access_token(encrypted_refresh_token: str) -> dict: try: refresh_token = await decrypt_data(encrypted_refresh_token) token_data = { - "client_id": DISCORD_CLIENT_ID, - "client_secret": DISCORD_CLIENT_SECRET, + "client_id": config.DISCORD_CLIENT_ID, + "client_secret": config.DISCORD_CLIENT_SECRET, "grant_type": "refresh_token", "refresh_token": refresh_token } @@ -161,6 +150,7 @@ def generate_refresh_token(user_id: str) -> str: """Generate a refresh token for the user.""" payload = { "sub": user_id, - "exp": pend.now().add(days=180) + "iat": pend.now().int_timestamp, + "exp": pend.now().add(days=30).int_timestamp } - return jwt.encode(payload, SECRET_KEY, algorithm=ALGORITHM) + return jwt.encode(payload, config.REFRESH_SECRET, algorithm=config.ALGORITHM) diff --git a/utils/password_validator.py b/utils/password_validator.py new file mode 100644 index 00000000..884e3d89 --- /dev/null +++ b/utils/password_validator.py @@ -0,0 +1,122 @@ +import re +from fastapi import HTTPException + +class PasswordValidator: + """Password strength validation utility.""" + + MIN_LENGTH = 8 + MAX_LENGTH = 128 + + @staticmethod + def validate_password(password: str) -> None: + """ + Validate password strength according to security policy. + + Requirements: + - 8-128 characters long + - At least one lowercase letter + - At least one uppercase letter + - At least one digit + - At least one special character + - No common weak patterns + """ + if not password: + raise HTTPException(status_code=400, detail="Password is required") + + if len(password) < PasswordValidator.MIN_LENGTH: + raise HTTPException( + status_code=400, + detail=f"Password must be at least {PasswordValidator.MIN_LENGTH} characters long" + ) + + if len(password) > PasswordValidator.MAX_LENGTH: + raise HTTPException( + status_code=400, + detail=f"Password must be no more than {PasswordValidator.MAX_LENGTH} characters long" + ) + + # Check for required character types + if not re.search(r'[a-z]', password): + raise HTTPException( + status_code=400, + detail="Password must contain at least one lowercase letter" + ) + + if not re.search(r'[A-Z]', password): + raise HTTPException( + status_code=400, + detail="Password must contain at least one uppercase letter" + ) + + if not re.search(r'\d', password): + raise HTTPException( + status_code=400, + detail="Password must contain at least one digit" + ) + + if not re.search(r'[!@#$%^&*(),.?":{}|<>]', password): + raise HTTPException( + status_code=400, + detail="Password must contain at least one special character" + ) + + # Check for common weak patterns + PasswordValidator._check_weak_patterns(password) + + @staticmethod + def _check_weak_patterns(password: str) -> None: + """Check for common weak password patterns.""" + weak_patterns = [ + 'password', 'Password', 'PASSWORD', + '123456', 'qwerty', 'abc123', + 'admin', 'letmein', 'welcome', + 'monkey', 'dragon', 'master' + ] + + password_lower = password.lower() + for pattern in weak_patterns: + if pattern.lower() in password_lower: + raise HTTPException( + status_code=400, + detail="Password contains common weak patterns. Please choose a stronger password." + ) + + # Check for repeated characters (more than 3 consecutive) + if re.search(r'(.)\1{3,}', password): + raise HTTPException( + status_code=400, + detail="Password cannot contain more than 3 consecutive identical characters" + ) + + @staticmethod + def validate_email(email: str) -> None: + """Validate email format.""" + if not email: + raise HTTPException(status_code=400, detail="Email is required") + + # RFC 5322 compliant email regex (simplified) + email_pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$' + if not re.match(email_pattern, email): + raise HTTPException(status_code=400, detail="Invalid email format") + + if len(email) > 254: # RFC 5321 limit + raise HTTPException(status_code=400, detail="Email address too long") + + @staticmethod + def validate_username(username: str) -> None: + """Validate username format.""" + if not username: + raise HTTPException(status_code=400, detail="Username is required") + + if len(username) < 3: + raise HTTPException(status_code=400, detail="Username must be at least 3 characters long") + + if len(username) > 30: + raise HTTPException(status_code=400, detail="Username must be no more than 30 characters long") + + # Allow alphanumeric, underscores, hyphens + if not re.match(r'^[a-zA-Z0-9_-]+$', username): + raise HTTPException( + status_code=400, + detail="Username can only contain letters, numbers, underscores, and hyphens" + ) \ No newline at end of file diff --git a/utils/security_middleware.py b/utils/security_middleware.py new file mode 100644 index 00000000..43fc1aa4 --- /dev/null +++ b/utils/security_middleware.py @@ -0,0 +1,46 @@ +from fastapi import HTTPException, Depends +from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials +from utils.auth_utils import decode_jwt +from utils.utils import db_client + +security = HTTPBearer() + +async def get_current_user_id(credentials: HTTPAuthorizationCredentials = Depends(security)) -> str: + """Extract and validate user ID from JWT token.""" + if not credentials: + raise HTTPException(status_code=401, detail="Missing authentication token") + + try: + decoded_token = decode_jwt(credentials.credentials) + user_id = decoded_token["sub"] + + # Verify user still exists + user = await db_client.app_users.find_one({"user_id": user_id}) + if not user: + raise HTTPException(status_code=401, detail="User not found") + + return user_id + except Exception as e: + raise HTTPException(status_code=401, detail="Invalid authentication token: " + str(e)) + +async def get_current_user(user_id: str = Depends(get_current_user_id)) -> dict: + """Get full user object from validated user ID.""" + user = await db_client.app_users.find_one({"user_id": user_id}) + if not user: + raise HTTPException(status_code=401, detail="User not found") + return user + +def require_auth_methods(*required_methods: str): + """Decorator to require specific authentication methods.""" + async def check_auth_methods(user: dict = Depends(get_current_user)) -> dict: + user_auth_methods = set(user.get("auth_methods", [])) + required_set = set(required_methods) + + if not required_set.intersection(user_auth_methods): + raise HTTPException( + status_code=403, + detail=f"This endpoint requires one of: {', '.join(required_methods)}" + ) + return user + + return check_auth_methods \ No newline at end of file diff --git a/utils/utils.py b/utils/utils.py index de933347..25953a70 100644 --- a/utils/utils.py +++ b/utils/utils.py @@ -394,10 +394,15 @@ async def fetch_function(session: aiohttp.ClientSession, url: str): return [r for r in results if r is not None and not isinstance(r, Exception)] -def generate_custom_id(input_number): +def generate_custom_id(input_number: int = None): + # Use input_number if provided, otherwise generate a random number + base_input = input_number or random.randint(1000000000, 9999999999) + + # Combine with current UTC timestamp to get a unique ID base_number = ( - input_number + base_input + int(pend.now(tz=pend.UTC).timestamp()) + random.randint(1000000000, 9999999999) ) + return base_number \ No newline at end of file From 229fa7d88ae75540056703c8e8da0c92e44f2a65 Mon Sep 17 00:00:00 2001 From: Destinea Date: Sun, 22 Jun 2025 17:16:55 +0200 Subject: [PATCH 118/174] fix: remove limiter --- main.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/main.py b/main.py index 4f2b21ad..e60360cc 100644 --- a/main.py +++ b/main.py @@ -41,8 +41,6 @@ ] app = FastAPI(middleware=middleware) -app.state.limiter = limiter -app.add_middleware(SlowAPIMiddleware) app.mount("/static", StaticFiles(directory="static"), name="static") From c9c6c72acc81b78f3c1a8f8cf59ccdadfb6700b7 Mon Sep 17 00:00:00 2001 From: Destinea Date: Sun, 22 Jun 2025 21:57:49 +0200 Subject: [PATCH 119/174] fix: user_id format --- routers/v2/auth/endpoints.py | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/routers/v2/auth/endpoints.py b/routers/v2/auth/endpoints.py index 84bbaa3d..da34c98a 100644 --- a/routers/v2/auth/endpoints.py +++ b/routers/v2/auth/endpoints.py @@ -44,7 +44,7 @@ async def get_current_user_info(user_id: str = Depends(get_current_user_id)): pass return UserInfo( - user_id=current_user["user_id"], + user_id=str(current_user["user_id"]), username=username, avatar_url=avatar_url ) @@ -202,10 +202,15 @@ async def refresh_access_token(request: RefreshTokenRequest) -> dict: @router.post("/auth/register", response_model=AuthResponse) @limiter.limit("3/minute") async def register_email_user(req: EmailRegisterRequest, request: Request): - # Validate input - PasswordValidator.validate_email(req.email) - PasswordValidator.validate_password(req.password) - PasswordValidator.validate_username(req.username) + try: + # Validate input + PasswordValidator.validate_email(req.email) + PasswordValidator.validate_password(req.password) + PasswordValidator.validate_username(req.username) + except HTTPException as e: + # Log the specific validation error for debugging + print(f"Validation error in registration: {e.detail}") + raise e existing_user = await db_client.app_users.find_one({"email": req.email}) if existing_user: @@ -233,8 +238,8 @@ async def register_email_user(req: EmailRegisterRequest, request: Request): "created_at": pend.now() }) - access_token = generate_jwt(user_id, req.device_id) - refresh_token = generate_refresh_token(user_id) + access_token = generate_jwt(str(user_id), req.device_id) + refresh_token = generate_refresh_token(str(user_id)) await db_client.app_refresh_tokens.update_one( {"user_id": user_id}, @@ -270,8 +275,8 @@ async def login_with_email(req: EmailAuthRequest, request: Request): if not user or not verify_password(req.password, user.get("password", "")): raise HTTPException(status_code=401, detail="Invalid email or password") - access_token = generate_jwt(user["user_id"], req.device_id) - refresh_token = generate_refresh_token(user["user_id"]) + access_token = generate_jwt(str(user["user_id"]), req.device_id) + refresh_token = generate_refresh_token(str(user["user_id"])) await db_client.app_refresh_tokens.update_one( {"user_id": user["user_id"]}, @@ -289,7 +294,7 @@ async def login_with_email(req: EmailAuthRequest, request: Request): access_token=access_token, refresh_token=refresh_token, user=UserInfo( - user_id=user["user_id"], + user_id=str(user["user_id"]), username=user["username"], avatar_url=user.get("avatar_url", "https://clashkingfiles.b-cdn.net/stickers/Troop_HV_Goblin.png") ) From 19e888ecc9db4a3ee3865f72c2eb96b6a7e099ca Mon Sep 17 00:00:00 2001 From: Destinea Date: Sun, 22 Jun 2025 22:45:00 +0200 Subject: [PATCH 120/174] fix: 401 in email login --- utils/security_middleware.py | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/utils/security_middleware.py b/utils/security_middleware.py index 43fc1aa4..4720f2a5 100644 --- a/utils/security_middleware.py +++ b/utils/security_middleware.py @@ -14,18 +14,37 @@ async def get_current_user_id(credentials: HTTPAuthorizationCredentials = Depend decoded_token = decode_jwt(credentials.credentials) user_id = decoded_token["sub"] - # Verify user still exists + # Verify user still exists - try both string and int formats user = await db_client.app_users.find_one({"user_id": user_id}) if not user: + # Try as integer if string lookup failed + try: + user_id_int = int(user_id) + user = await db_client.app_users.find_one({"user_id": user_id_int}) + except (ValueError, TypeError): + pass + + if not user: + print(f"❌ User lookup failed for user_id: {user_id} (type: {type(user_id)})") raise HTTPException(status_code=401, detail="User not found") - - return user_id + + print(f"✅ User found: {user_id}") + return str(user_id) # Always return as string for consistency except Exception as e: + print(f"❌ Auth error: {str(e)}") raise HTTPException(status_code=401, detail="Invalid authentication token: " + str(e)) async def get_current_user(user_id: str = Depends(get_current_user_id)) -> dict: """Get full user object from validated user ID.""" + # Try both string and int formats for user_id lookup user = await db_client.app_users.find_one({"user_id": user_id}) + if not user: + try: + user_id_int = int(user_id) + user = await db_client.app_users.find_one({"user_id": user_id_int}) + except (ValueError, TypeError): + pass + if not user: raise HTTPException(status_code=401, detail="User not found") return user From 9a5e2d52aea80e2d028f50b36a2b3b585ea1af6d Mon Sep 17 00:00:00 2001 From: Destinea Date: Mon, 23 Jun 2025 19:25:18 +0200 Subject: [PATCH 121/174] chore: add sentry messages for auth endpoints --- routers/v2/auth/endpoints.py | 756 +++++++++++++++++++---------------- 1 file changed, 421 insertions(+), 335 deletions(-) diff --git a/routers/v2/auth/endpoints.py b/routers/v2/auth/endpoints.py index da34c98a..0de375de 100644 --- a/routers/v2/auth/endpoints.py +++ b/routers/v2/auth/endpoints.py @@ -1,5 +1,6 @@ import httpx import pendulum as pend +import sentry_sdk from fastapi import Header, HTTPException, Request, APIRouter, Depends from slowapi import Limiter from slowapi.util import get_ipaddr @@ -17,383 +18,468 @@ @router.get("/auth/me", name="Get current user information") async def get_current_user_info(user_id: str = Depends(get_current_user_id)): - current_user = await db_client.app_users.find_one({"user_id": user_id}) - if not current_user: - raise HTTPException(status_code=404, detail="User not found") - - username = current_user.get("username") or current_user.get("email") - avatar_url = current_user.get("avatar_url") or "https://clashkingfiles.b-cdn.net/stickers/Troop_HV_Goblin.png" - - if "discord" in current_user.get("auth_methods", []): - try: - discord_access = await get_valid_discord_access_token(current_user["user_id"]) - async with httpx.AsyncClient() as client: - response = await client.get( - "https://discord.com/api/users/@me", - headers={"Authorization": f"Bearer {discord_access}"} - ) - if response.status_code == 200: - discord_data = response.json() - username = discord_data.get("global_name") or discord_data.get("username") or username - avatar = discord_data.get("avatar") - avatar_url = ( - f"https://cdn.discordapp.com/avatars/{discord_data['id']}/{avatar}.png" - if avatar else avatar_url - ) - except Exception: - pass - - return UserInfo( - user_id=str(current_user["user_id"]), - username=username, - avatar_url=avatar_url - ) + try: + # Try both string and int formats for user_id lookup (consistency with security middleware) + current_user = await db_client.app_users.find_one({"user_id": user_id}) + if not current_user: + try: + user_id_int = int(user_id) + current_user = await db_client.app_users.find_one({"user_id": user_id_int}) + except (ValueError, TypeError): + pass + + if not current_user: + sentry_sdk.capture_message(f"User not found in /auth/me for user_id: {user_id} (type: {type(user_id)})", level="warning") + raise HTTPException(status_code=404, detail="User not found") + + username = current_user.get("username") or current_user.get("email") + avatar_url = current_user.get("avatar_url") or "https://clashkingfiles.b-cdn.net/stickers/Troop_HV_Goblin.png" + + if "discord" in current_user.get("auth_methods", []): + try: + discord_access = await get_valid_discord_access_token(current_user["user_id"]) + async with httpx.AsyncClient() as client: + response = await client.get( + "https://discord.com/api/users/@me", + headers={"Authorization": f"Bearer {discord_access}"} + ) + if response.status_code == 200: + discord_data = response.json() + username = discord_data.get("global_name") or discord_data.get("username") or username + avatar = discord_data.get("avatar") + avatar_url = ( + f"https://cdn.discordapp.com/avatars/{discord_data['id']}/{avatar}.png" + if avatar else avatar_url + ) + else: + sentry_sdk.capture_message(f"Discord API error in /auth/me: {response.status_code} - {response.text}", level="warning") + except Exception as e: + sentry_sdk.capture_exception(e, tags={"endpoint": "/auth/me", "user_id": user_id}) + + return UserInfo( + user_id=str(current_user["user_id"]), + username=username, + avatar_url=avatar_url + ) + except HTTPException: + raise + except Exception as e: + sentry_sdk.capture_exception(e, tags={"endpoint": "/auth/me", "user_id": user_id}) + raise HTTPException(status_code=500, detail="Internal server error") @router.post("/auth/discord", response_model=AuthResponse, name="Authenticate with Discord") @limiter.limit("5/minute") async def auth_discord(request: Request): - form = await request.form() - code = form.get("code") - code_verifier = form.get("code_verifier") - device_id = form.get("device_id") - device_name = form.get("device_name") - redirect_uri = form.get("redirect_uri") or config.DISCORD_REDIRECT_URI - - if not code or not code_verifier: - raise HTTPException(status_code=400, detail="Missing Discord code or code_verifier") - - token_url = "https://discord.com/api/oauth2/token" - token_data = { - "client_id": config.DISCORD_CLIENT_ID, - "code": code, - "grant_type": "authorization_code", - "redirect_uri": redirect_uri, - "code_verifier": code_verifier - } - - async with httpx.AsyncClient() as client: - token_response = await client.post(token_url, data=token_data, - headers={"Content-Type": "application/x-www-form-urlencoded"}) - - if token_response.status_code != 200: - raise HTTPException( - status_code=500, - detail=f"Discord token error: {token_response.status_code} - {token_response.text}" - ) + try: + # Handle both JSON and form data for backward compatibility + content_type = request.headers.get("content-type", "") + if "application/json" in content_type: + data = await request.json() + else: + form = await request.form() + data = dict(form) + + code = data.get("code") + code_verifier = data.get("code_verifier") + device_id = data.get("device_id") + device_name = data.get("device_name") + redirect_uri = data.get("redirect_uri") or config.DISCORD_REDIRECT_URI + + if not code or not code_verifier: + sentry_sdk.capture_message(f"Missing Discord auth parameters: code={bool(code)}, code_verifier={bool(code_verifier)}", level="warning") + raise HTTPException(status_code=400, detail="Missing Discord code or code_verifier") + + token_url = "https://discord.com/api/oauth2/token" + token_data = { + "client_id": config.DISCORD_CLIENT_ID, + "code": code, + "grant_type": "authorization_code", + "redirect_uri": redirect_uri, + "code_verifier": code_verifier + } + + async with httpx.AsyncClient() as client: + token_response = await client.post(token_url, data=token_data, + headers={"Content-Type": "application/x-www-form-urlencoded"}) + + if token_response.status_code != 200: + sentry_sdk.capture_message(f"Discord token exchange failed: {token_response.status_code} - {token_response.text}", level="error") + raise HTTPException( + status_code=500, + detail=f"Discord token error: {token_response.status_code} - {token_response.text}" + ) - discord_data = token_response.json() - access_token_discord = discord_data["access_token"] - refresh_token_discord = discord_data["refresh_token"] - expires_in = discord_data["expires_in"] + discord_data = token_response.json() + access_token_discord = discord_data["access_token"] + refresh_token_discord = discord_data["refresh_token"] + expires_in = discord_data["expires_in"] - async with httpx.AsyncClient() as client: - user_response = await client.get( - "https://discord.com/api/users/@me", - headers={"Authorization": f"Bearer {access_token_discord}"}, - ) - if user_response.status_code != 200: - raise HTTPException(status_code=500, detail="Error retrieving user info") - user_data = user_response.json() + async with httpx.AsyncClient() as client: + user_response = await client.get( + "https://discord.com/api/users/@me", + headers={"Authorization": f"Bearer {access_token_discord}"}, + ) + if user_response.status_code != 200: + sentry_sdk.capture_message(f"Discord user info retrieval failed: {user_response.status_code} - {user_response.text}", level="error") + raise HTTPException(status_code=500, detail="Error retrieving user info") + user_data = user_response.json() + + discord_user_id = user_data["id"] + email = user_data.get("email") + + existing_user = await db_client.app_users.find_one({"$or": [ + {"user_id": discord_user_id}, + {"email": email} + ]}) + + if existing_user: + user_id = existing_user["user_id"] + auth_methods = set(existing_user.get("auth_methods", [])) + auth_methods.add("discord") + + await db_client.app_users.update_one( + {"user_id": user_id}, + {"$set": { + "auth_methods": list(auth_methods), + "email": email, + "username": user_data["username"] + }} + ) + else: + user_id = discord_user_id + await db_client.app_users.insert_one({ + "_id": generate_custom_id(int(user_id)), + "user_id": user_id, + "auth_methods": ["discord"], + "email": email, + "username": user_data["username"], + "created_at": pend.now() + }) - discord_user_id = user_data["id"] - email = user_data.get("email") + encrypted_discord_access = await encrypt_data(access_token_discord) + encrypted_discord_refresh = await encrypt_data(refresh_token_discord) - existing_user = await db_client.app_users.find_one({"$or": [ - {"user_id": discord_user_id}, - {"email": email} - ]}) + await db_client.app_discord_tokens.update_one( + {"user_id": user_id, "device_id": device_id, "device_name": device_name}, + { + "$setOnInsert": {"_id": generate_custom_id(int(user_id))}, + "$set": { + "discord_access_token": encrypted_discord_access, + "discord_refresh_token": encrypted_discord_refresh, + "expires_at": pend.now().add(seconds=expires_in) + } + }, + upsert=True + ) - if existing_user: - user_id = existing_user["user_id"] - auth_methods = set(existing_user.get("auth_methods", [])) - auth_methods.add("discord") + access_token = generate_jwt(user_id, device_id) + refresh_token = generate_refresh_token(user_id) - await db_client.app_users.update_one( + await db_client.app_refresh_tokens.update_one( {"user_id": user_id}, - {"$set": { - "auth_methods": list(auth_methods), - "email": email, - "username": user_data["username"] - }} + { + "$setOnInsert": {"_id": generate_custom_id(int(user_id))}, + "$set": { + "refresh_token": refresh_token, + "expires_at": pend.now().add(days=30) + } + }, + upsert=True ) - else: - user_id = discord_user_id - await db_client.app_users.insert_one({ - "_id": generate_custom_id(int(user_id)), - "user_id": user_id, - "auth_methods": ["discord"], - "email": email, - "username": user_data["username"], - "created_at": pend.now() - }) - - encrypted_discord_access = await encrypt_data(access_token_discord) - encrypted_discord_refresh = await encrypt_data(refresh_token_discord) - - await db_client.app_discord_tokens.update_one( - {"user_id": user_id, "device_id": device_id, "device_name": device_name}, - { - "$setOnInsert": {"_id": generate_custom_id(int(user_id))}, - "$set": { - "discord_access_token": encrypted_discord_access, - "discord_refresh_token": encrypted_discord_refresh, - "expires_at": pend.now().add(seconds=expires_in) - } - }, - upsert=True - ) - - access_token = generate_jwt(user_id, device_id) - refresh_token = generate_refresh_token(user_id) - - await db_client.app_refresh_tokens.update_one( - {"user_id": user_id}, - { - "$setOnInsert": {"_id": generate_custom_id(int(user_id))}, - "$set": { - "refresh_token": refresh_token, - "expires_at": pend.now().add(days=30) - } - }, - upsert=True - ) - - return AuthResponse( - access_token=access_token, - refresh_token=refresh_token, - user=UserInfo( - user_id=str(user_id), - username=user_data["username"], - avatar_url=f"https://cdn.discordapp.com/avatars/{discord_user_id}/{user_data['avatar']}.png" + + return AuthResponse( + access_token=access_token, + refresh_token=refresh_token, + user=UserInfo( + user_id=str(user_id), + username=user_data["username"], + avatar_url=f"https://cdn.discordapp.com/avatars/{discord_user_id}/{user_data['avatar']}.png" + ) ) - ) + except HTTPException: + raise + except Exception as e: + sentry_sdk.capture_exception(e, tags={"endpoint": "/auth/discord"}) + raise HTTPException(status_code=500, detail="Internal server error") @router.post("/auth/refresh", name="Refresh the access token") async def refresh_access_token(request: RefreshTokenRequest) -> dict: - # First validate the refresh token JWT signature try: - decoded_refresh = decode_refresh_token(request.refresh_token) - user_id_from_token = decoded_refresh["sub"] - except Exception: - raise HTTPException(status_code=401, detail="Invalid refresh token signature.") - - # Then check if it exists in database - stored_refresh_token = await db_client.app_refresh_tokens.find_one({"refresh_token": request.refresh_token}) - - if not stored_refresh_token: - raise HTTPException(status_code=401, detail="Invalid refresh token.") - - if pend.now().int_timestamp > stored_refresh_token["expires_at"].timestamp(): - raise HTTPException(status_code=401, detail="Expired refresh token. Please login again.") - - user_id = stored_refresh_token["user_id"] - - # Verify user_id matches - if user_id != user_id_from_token: - raise HTTPException(status_code=401, detail="Invalid refresh token.") - - new_access_token = generate_jwt(user_id, request.device_id) - - return {"access_token": new_access_token} + # First validate the refresh token JWT signature + try: + decoded_refresh = decode_refresh_token(request.refresh_token) + user_id_from_token = decoded_refresh["sub"] + except Exception as e: + sentry_sdk.capture_message(f"Invalid refresh token signature: {str(e)}", level="warning") + raise HTTPException(status_code=401, detail="Invalid refresh token signature.") + + # Then check if it exists in database + stored_refresh_token = await db_client.app_refresh_tokens.find_one({"refresh_token": request.refresh_token}) + + if not stored_refresh_token: + sentry_sdk.capture_message(f"Refresh token not found in database for user: {user_id_from_token}", level="warning") + raise HTTPException(status_code=401, detail="Invalid refresh token.") + + if pend.now().int_timestamp > stored_refresh_token["expires_at"].timestamp(): + raise HTTPException(status_code=401, detail="Expired refresh token. Please login again.") + + user_id = stored_refresh_token["user_id"] + + # Verify user_id matches + if user_id != user_id_from_token: + sentry_sdk.capture_message(f"User ID mismatch in refresh token: stored={user_id}, token={user_id_from_token}", level="warning") + raise HTTPException(status_code=401, detail="Invalid refresh token.") + + new_access_token = generate_jwt(user_id, request.device_id) + + return {"access_token": new_access_token} + except HTTPException: + raise + except Exception as e: + sentry_sdk.capture_exception(e, tags={"endpoint": "/auth/refresh"}) + raise HTTPException(status_code=500, detail="Internal server error") @router.post("/auth/register", response_model=AuthResponse) @limiter.limit("3/minute") async def register_email_user(req: EmailRegisterRequest, request: Request): try: - # Validate input - PasswordValidator.validate_email(req.email) - PasswordValidator.validate_password(req.password) - PasswordValidator.validate_username(req.username) - except HTTPException as e: - # Log the specific validation error for debugging - print(f"Validation error in registration: {e.detail}") - raise e - - existing_user = await db_client.app_users.find_one({"email": req.email}) - if existing_user: - user_id = existing_user["user_id"] - auth_methods = set(existing_user.get("auth_methods", [])) - auth_methods.add("email") + try: + # Validate input + PasswordValidator.validate_email(req.email) + PasswordValidator.validate_password(req.password) + PasswordValidator.validate_username(req.username) + except HTTPException as e: + # Log the specific validation error for debugging + sentry_sdk.capture_message(f"Validation error in registration: {e.detail}", level="warning") + raise e + + existing_user = await db_client.app_users.find_one({"email": req.email}) + if existing_user: + user_id = existing_user["user_id"] + auth_methods = set(existing_user.get("auth_methods", [])) + auth_methods.add("email") + + await db_client.app_users.update_one( + {"user_id": user_id}, + {"$set": { + "auth_methods": list(auth_methods), + "username": req.username, + "password": hash_password(req.password) + }} + ) + else: + user_id = generate_custom_id() + await db_client.app_users.insert_one({ + "_id": user_id, + "user_id": user_id, + "email": req.email, + "username": req.username, + "password": hash_password(req.password), + "auth_methods": ["email"], + "created_at": pend.now() + }) - await db_client.app_users.update_one( + access_token = generate_jwt(str(user_id), req.device_id) + refresh_token = generate_refresh_token(str(user_id)) + + await db_client.app_refresh_tokens.update_one( {"user_id": user_id}, - {"$set": { - "auth_methods": list(auth_methods), - "username": req.username, - "password": hash_password(req.password) - }} + { + "$setOnInsert": {"_id": str(generate_custom_id())}, + "$set": { + "refresh_token": refresh_token, + "expires_at": pend.now().add(days=30) + } + }, + upsert=True ) - else: - user_id = generate_custom_id() - await db_client.app_users.insert_one({ - "_id": user_id, - "user_id": user_id, - "email": req.email, - "username": req.username, - "password": hash_password(req.password), - "auth_methods": ["email"], - "created_at": pend.now() - }) - - access_token = generate_jwt(str(user_id), req.device_id) - refresh_token = generate_refresh_token(str(user_id)) - - await db_client.app_refresh_tokens.update_one( - {"user_id": user_id}, - { - "$setOnInsert": {"_id": str(generate_custom_id())}, - "$set": { - "refresh_token": refresh_token, - "expires_at": pend.now().add(days=30) - } - }, - upsert=True - ) - - return AuthResponse( - access_token=access_token, - refresh_token=refresh_token, - user=UserInfo( - user_id=str(user_id), - username=req.username, - avatar_url="https://clashkingfiles.b-cdn.net/stickers/Troop_HV_Goblin.png" + + return AuthResponse( + access_token=access_token, + refresh_token=refresh_token, + user=UserInfo( + user_id=str(user_id), + username=req.username, + avatar_url="https://clashkingfiles.b-cdn.net/stickers/Troop_HV_Goblin.png" + ) ) - ) + except HTTPException: + raise + except Exception as e: + sentry_sdk.capture_exception(e, tags={"endpoint": "/auth/register", "email": req.email}) + raise HTTPException(status_code=500, detail="Internal server error") @router.post("/auth/email", response_model=AuthResponse) @limiter.limit("5/minute") async def login_with_email(req: EmailAuthRequest, request: Request): - # Add small delay to prevent timing attacks - import asyncio - await asyncio.sleep(0.1) - - user = await db_client.app_users.find_one({"email": req.email}) - if not user or not verify_password(req.password, user.get("password", "")): - raise HTTPException(status_code=401, detail="Invalid email or password") - - access_token = generate_jwt(str(user["user_id"]), req.device_id) - refresh_token = generate_refresh_token(str(user["user_id"])) - - await db_client.app_refresh_tokens.update_one( - {"user_id": user["user_id"]}, - { - "$setOnInsert": {"_id": generate_custom_id()}, - "$set": { - "refresh_token": refresh_token, - "expires_at": pend.now().add(days=30) - } - }, - upsert=True - ) - - return AuthResponse( - access_token=access_token, - refresh_token=refresh_token, - user=UserInfo( - user_id=str(user["user_id"]), - username=user["username"], - avatar_url=user.get("avatar_url", "https://clashkingfiles.b-cdn.net/stickers/Troop_HV_Goblin.png") - ) - ) - -@router.post("/auth/link-discord", name="Link Discord to an existing account") -async def link_discord_account(request: Request, authorization: str = Header(None)): - if not authorization or not authorization.startswith("Bearer "): - raise HTTPException(status_code=401, detail="Missing or invalid authentication token") - - token = authorization.split("Bearer ")[1] - decoded_token = decode_jwt(token) - user_id = decoded_token["sub"] - - current_user = await db_client.app_users.find_one({"user_id": user_id}) - if not current_user: - raise HTTPException(status_code=404, detail="User not found") - - form = await request.form() - discord_access_token = form.get("access_token") - if not discord_access_token: - raise HTTPException(status_code=400, detail="Missing access_token") - - async with httpx.AsyncClient() as client: - discord_response = await client.get( - "https://discord.com/api/users/@me", - headers={"Authorization": f"Bearer {discord_access_token}"} - ) - if discord_response.status_code != 200: - raise HTTPException(status_code=400, detail="Invalid Discord access token") - discord_data = discord_response.json() - - discord_user_id = discord_data["id"] - email = discord_data.get("email") - - # Prevent linking a Discord account already linked to another user - conflict_user = await db_client.app_users.find_one({"linked_accounts.discord.discord_user_id": discord_user_id}) - if conflict_user and conflict_user["user_id"] != user_id: - raise HTTPException(status_code=400, detail="Discord account already linked to another user") - - await db_client.app_users.update_one( - {"user_id": user_id}, - {"$set": { - "auth_methods": list(set(current_user.get("auth_methods", []) + ["discord"])), - "linked_accounts.discord": { - "linked_at": pend.now().to_iso8601_string(), - "discord_user_id": discord_user_id, - "username": discord_data.get("username"), - "email": email - } - }} - ) - - encrypted_discord_access = await encrypt_data(discord_access_token) - refresh_token = form.get("refresh_token") - expires_in = form.get("expires_in") - device_id = form.get("device_id") - device_name = form.get("device_name") - if refresh_token and expires_in: - encrypted_discord_refresh = await encrypt_data(refresh_token) - await db_client.app_discord_tokens.update_one( - {"user_id": user_id, "device_id": device_id, "device_name": device_name}, + try: + # Add small delay to prevent timing attacks + import asyncio + await asyncio.sleep(0.1) + + user = await db_client.app_users.find_one({"email": req.email}) + if not user or not verify_password(req.password, user.get("password", "")): + sentry_sdk.capture_message(f"Failed email login attempt for: {req.email}", level="warning") + raise HTTPException(status_code=401, detail="Invalid email or password") + + access_token = generate_jwt(str(user["user_id"]), req.device_id) + refresh_token = generate_refresh_token(str(user["user_id"])) + + await db_client.app_refresh_tokens.update_one( + {"user_id": user["user_id"]}, { - "$setOnInsert": {"_id": generate_custom_id(int(user_id))}, + "$setOnInsert": {"_id": generate_custom_id()}, "$set": { - "discord_access_token": encrypted_discord_access, - "discord_refresh_token": encrypted_discord_refresh, - "expires_at": pend.now().add(seconds=int(expires_in)) + "refresh_token": refresh_token, + "expires_at": pend.now().add(days=30) } }, upsert=True ) - return {"detail": "Discord account successfully linked"} + return AuthResponse( + access_token=access_token, + refresh_token=refresh_token, + user=UserInfo( + user_id=str(user["user_id"]), + username=user["username"], + avatar_url=user.get("avatar_url", "https://clashkingfiles.b-cdn.net/stickers/Troop_HV_Goblin.png") + ) + ) + except HTTPException: + raise + except Exception as e: + sentry_sdk.capture_exception(e, tags={"endpoint": "/auth/email", "email": req.email}) + raise HTTPException(status_code=500, detail="Internal server error") + +@router.post("/auth/link-discord", name="Link Discord to an existing account") +async def link_discord_account(request: Request, authorization: str = Header(None)): + try: + if not authorization or not authorization.startswith("Bearer "): + sentry_sdk.capture_message("Missing or invalid authorization header in /auth/link-discord", level="warning") + raise HTTPException(status_code=401, detail="Missing or invalid authentication token") + + token = authorization.split("Bearer ")[1] + decoded_token = decode_jwt(token) + user_id = decoded_token["sub"] + + current_user = await db_client.app_users.find_one({"user_id": user_id}) + if not current_user: + sentry_sdk.capture_message(f"User not found for Discord linking: {user_id}", level="warning") + raise HTTPException(status_code=404, detail="User not found") + + # Handle both JSON and form data for backward compatibility + content_type = request.headers.get("content-type", "") + if "application/json" in content_type: + data = await request.json() + else: + form = await request.form() + data = dict(form) + + discord_access_token = data.get("access_token") + if not discord_access_token: + sentry_sdk.capture_message(f"Missing Discord access token for user: {user_id}", level="warning") + raise HTTPException(status_code=400, detail="Missing access_token") + + async with httpx.AsyncClient() as client: + discord_response = await client.get( + "https://discord.com/api/users/@me", + headers={"Authorization": f"Bearer {discord_access_token}"} + ) + if discord_response.status_code != 200: + sentry_sdk.capture_message(f"Invalid Discord token in linking for user {user_id}: {discord_response.status_code}", level="warning") + raise HTTPException(status_code=400, detail="Invalid Discord access token") + discord_data = discord_response.json() + + discord_user_id = discord_data["id"] + email = discord_data.get("email") + + # Prevent linking a Discord account already linked to another user + conflict_user = await db_client.app_users.find_one({"linked_accounts.discord.discord_user_id": discord_user_id}) + if conflict_user and conflict_user["user_id"] != user_id: + sentry_sdk.capture_message(f"Discord account {discord_user_id} already linked to user {conflict_user['user_id']}, attempted by {user_id}", level="warning") + raise HTTPException(status_code=400, detail="Discord account already linked to another user") + + await db_client.app_users.update_one( + {"user_id": user_id}, + {"$set": { + "auth_methods": list(set(current_user.get("auth_methods", []) + ["discord"])), + "linked_accounts.discord": { + "linked_at": pend.now().to_iso8601_string(), + "discord_user_id": discord_user_id, + "username": discord_data.get("username"), + "email": email + } + }} + ) + + encrypted_discord_access = await encrypt_data(discord_access_token) + refresh_token = data.get("refresh_token") + expires_in = data.get("expires_in") + device_id = data.get("device_id") + device_name = data.get("device_name") + if refresh_token and expires_in: + encrypted_discord_refresh = await encrypt_data(refresh_token) + await db_client.app_discord_tokens.update_one( + {"user_id": user_id, "device_id": device_id, "device_name": device_name}, + { + "$setOnInsert": {"_id": generate_custom_id(int(user_id))}, + "$set": { + "discord_access_token": encrypted_discord_access, + "discord_refresh_token": encrypted_discord_refresh, + "expires_at": pend.now().add(seconds=int(expires_in)) + } + }, + upsert=True + ) + + return {"detail": "Discord account successfully linked"} + except HTTPException: + raise + except Exception as e: + sentry_sdk.capture_exception(e, tags={"endpoint": "/auth/link-discord", "user_id": user_id if 'user_id' in locals() else "unknown"}) + raise HTTPException(status_code=500, detail="Internal server error") @router.post("/auth/link-email", name="Link Email to an existing Discord account") async def link_email_account(req: EmailRegisterRequest, user_id: str = Depends(get_current_user_id)): - # Validate input - PasswordValidator.validate_email(req.email) - PasswordValidator.validate_password(req.password) - PasswordValidator.validate_username(req.username) - - current_user = await db_client.app_users.find_one({"user_id": user_id}) - if not current_user: - raise HTTPException(status_code=404, detail="User not found") - - email_conflict = await db_client.app_users.find_one({"email": req.email}) - if email_conflict and email_conflict["user_id"] != user_id: - raise HTTPException(status_code=400, detail="Email already linked to another account") - - await db_client.app_users.update_one( - {"user_id": user_id}, - {"$set": { - "auth_methods": list(set(current_user.get("auth_methods", []) + ["email"])), - "email": req.email, - "username": req.username, - "password": hash_password(req.password) - }} - ) - - return {"detail": "Email successfully linked to your account"} + try: + # Validate input + try: + PasswordValidator.validate_email(req.email) + PasswordValidator.validate_password(req.password) + PasswordValidator.validate_username(req.username) + except HTTPException as e: + sentry_sdk.capture_message(f"Validation error in email linking for user {user_id}: {e.detail}", level="warning") + raise e + + current_user = await db_client.app_users.find_one({"user_id": user_id}) + if not current_user: + sentry_sdk.capture_message(f"User not found for email linking: {user_id}", level="warning") + raise HTTPException(status_code=404, detail="User not found") + + email_conflict = await db_client.app_users.find_one({"email": req.email}) + if email_conflict and email_conflict["user_id"] != user_id: + sentry_sdk.capture_message(f"Email {req.email} already linked to user {email_conflict['user_id']}, attempted by {user_id}", level="warning") + raise HTTPException(status_code=400, detail="Email already linked to another account") + + await db_client.app_users.update_one( + {"user_id": user_id}, + {"$set": { + "auth_methods": list(set(current_user.get("auth_methods", []) + ["email"])), + "email": req.email, + "username": req.username, + "password": hash_password(req.password) + }} + ) + + return {"detail": "Email successfully linked to your account"} + except HTTPException: + raise + except Exception as e: + sentry_sdk.capture_exception(e, tags={"endpoint": "/auth/link-email", "user_id": user_id, "email": req.email}) + raise HTTPException(status_code=500, detail="Internal server error") From 8edd66ac02bc5fffb8ca8e4c3e263ad42311e7a8 Mon Sep 17 00:00:00 2001 From: Destinea Date: Mon, 23 Jun 2025 19:45:07 +0200 Subject: [PATCH 122/174] chore: add sentry dsn --- main.py | 7 +++++++ requirements.txt | 3 ++- utils/config.py | 1 + 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/main.py b/main.py index e60360cc..cc960dfa 100644 --- a/main.py +++ b/main.py @@ -3,6 +3,7 @@ import uvicorn import importlib.util import time +import sentry_sdk from fastapi import FastAPI, Request, HTTPException from fastapi.responses import RedirectResponse @@ -21,6 +22,12 @@ from utils.utils import config, coc_client +# Initialize Sentry SDK +sentry_sdk.init( + dsn=config.SENTRY_DSN, + send_default_pii=True, +) + logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) diff --git a/requirements.txt b/requirements.txt index 09c33ef4..7680dcf8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -31,4 +31,5 @@ ujson==5.9.0 uvloop==0.19.0 uvicorn==0.30.1 numpy==1.26.4 -openpyxl==3.1.3 \ No newline at end of file +openpyxl==3.1.3 +sentry-sdk[fastapi] \ No newline at end of file diff --git a/utils/config.py b/utils/config.py index 4c9d1447..7c66ca51 100644 --- a/utils/config.py +++ b/utils/config.py @@ -48,6 +48,7 @@ class Config: DISCORD_CLIENT_SECRET = os.getenv('DISCORD_CLIENT_SECRET') DISCORD_REDIRECT_URI = os.getenv('DISCORD_REDIRECT_URI') ENCRYPTION_KEY = os.getenv('ENCRYPTION_KEY') + SENTRY_DSN = os.getenv('SENTRY_DSN') ALGORITHM = "HS256" # Encryption/Decryption/Hashing/Token From 6ee728a9d07e734bf551a73a27a6f7000061e98b Mon Sep 17 00:00:00 2001 From: Destinea Date: Mon, 23 Jun 2025 19:57:29 +0200 Subject: [PATCH 123/174] fix: change user_id type --- routers/v2/auth/endpoints.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/routers/v2/auth/endpoints.py b/routers/v2/auth/endpoints.py index 0de375de..b653cf82 100644 --- a/routers/v2/auth/endpoints.py +++ b/routers/v2/auth/endpoints.py @@ -173,11 +173,11 @@ async def auth_discord(request: Request): upsert=True ) - access_token = generate_jwt(user_id, device_id) - refresh_token = generate_refresh_token(user_id) + access_token = generate_jwt(str(user_id), device_id) + refresh_token = generate_refresh_token(str(user_id)) await db_client.app_refresh_tokens.update_one( - {"user_id": user_id}, + {"user_id": str(user_id)}, { "$setOnInsert": {"_id": generate_custom_id(int(user_id))}, "$set": { @@ -227,12 +227,12 @@ async def refresh_access_token(request: RefreshTokenRequest) -> dict: user_id = stored_refresh_token["user_id"] - # Verify user_id matches - if user_id != user_id_from_token: + # Verify user_id matches (ensure both are strings for comparison) + if str(user_id) != str(user_id_from_token): sentry_sdk.capture_message(f"User ID mismatch in refresh token: stored={user_id}, token={user_id_from_token}", level="warning") raise HTTPException(status_code=401, detail="Invalid refresh token.") - new_access_token = generate_jwt(user_id, request.device_id) + new_access_token = generate_jwt(str(user_id), request.device_id) return {"access_token": new_access_token} except HTTPException: @@ -286,7 +286,7 @@ async def register_email_user(req: EmailRegisterRequest, request: Request): refresh_token = generate_refresh_token(str(user_id)) await db_client.app_refresh_tokens.update_one( - {"user_id": user_id}, + {"user_id": str(user_id)}, { "$setOnInsert": {"_id": str(generate_custom_id())}, "$set": { @@ -330,7 +330,7 @@ async def login_with_email(req: EmailAuthRequest, request: Request): refresh_token = generate_refresh_token(str(user["user_id"])) await db_client.app_refresh_tokens.update_one( - {"user_id": user["user_id"]}, + {"user_id": str(user["user_id"])}, { "$setOnInsert": {"_id": generate_custom_id()}, "$set": { From d81e16a853e0b91cc776aabab64740f2c53e6f0d Mon Sep 17 00:00:00 2001 From: Destinea Date: Mon, 23 Jun 2025 20:19:53 +0200 Subject: [PATCH 124/174] chore: add sentry messages --- requirements.txt | 2 +- routers/v2/auth/endpoints.py | 8 ++++---- routers/v2/war/endpoints.py | 4 ++++ routers/v2/war/utils.py | 17 +++++++++++++++-- 4 files changed, 24 insertions(+), 7 deletions(-) diff --git a/requirements.txt b/requirements.txt index 7680dcf8..503d8e6d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,7 +2,7 @@ aiohttp==3.9.3 aiocache==0.12.2 coc.py==3.2.1 cryptography==44.0.1 -bcrypt==4.2.1 +bcrypt==4.0.1 diskcache==5.6.3 expiring-dict==1.1.0 fastapi==0.111.0 diff --git a/routers/v2/auth/endpoints.py b/routers/v2/auth/endpoints.py index b653cf82..8ca9591f 100644 --- a/routers/v2/auth/endpoints.py +++ b/routers/v2/auth/endpoints.py @@ -271,9 +271,9 @@ async def register_email_user(req: EmailRegisterRequest, request: Request): }} ) else: - user_id = generate_custom_id() + user_id = str(generate_custom_id()) await db_client.app_users.insert_one({ - "_id": user_id, + "_id": int(user_id), "user_id": user_id, "email": req.email, "username": req.username, @@ -288,7 +288,7 @@ async def register_email_user(req: EmailRegisterRequest, request: Request): await db_client.app_refresh_tokens.update_one( {"user_id": str(user_id)}, { - "$setOnInsert": {"_id": str(generate_custom_id())}, + "$setOnInsert": {"_id": int(user_id)}, "$set": { "refresh_token": refresh_token, "expires_at": pend.now().add(days=30) @@ -332,7 +332,7 @@ async def login_with_email(req: EmailAuthRequest, request: Request): await db_client.app_refresh_tokens.update_one( {"user_id": str(user["user_id"])}, { - "$setOnInsert": {"_id": generate_custom_id()}, + "$setOnInsert": {"_id": int(str(user["user_id"]))}, "$set": { "refresh_token": refresh_token, "expires_at": pend.now().add(days=30) diff --git a/routers/v2/war/endpoints.py b/routers/v2/war/endpoints.py index 88da56e5..2fd47573 100644 --- a/routers/v2/war/endpoints.py +++ b/routers/v2/war/endpoints.py @@ -3,6 +3,7 @@ import tempfile import uuid import coc +import sentry_sdk import aiohttp from fastapi.responses import JSONResponse @@ -459,6 +460,9 @@ async def insert_logo_from_cdn(sheet, image_url: str, anchor_cell="A1", height=8 end_row = ws_clan.max_row format_table(ws_clan, start_row, end_row, "ClanSummary") + if tag is None: + sentry_sdk.capture_message("clan tag is None in export_cwl_summary_to_excel", level="error") + raise HTTPException(status_code=400, detail="clan tag cannot be None") tag = tag.replace("!", "#") for clan in clans: sheet = wb.create_sheet(title=clan.get("name", "Clan")[:30]) diff --git a/routers/v2/war/utils.py b/routers/v2/war/utils.py index 83320d1c..b5acd61a 100644 --- a/routers/v2/war/utils.py +++ b/routers/v2/war/utils.py @@ -3,6 +3,7 @@ from typing import List import coc import requests +import sentry_sdk from routers.v2.war.models import PlayerWarhitsFilter semaphore = asyncio.Semaphore(10) @@ -69,6 +70,9 @@ def ranking_create(data: dict): async def fetch_current_war_info(clan_tag, bypass=False): try: + if clan_tag is None: + sentry_sdk.capture_message("clan_tag is None in fetch_current_war_info", level="error") + return None tag_encoded = clan_tag.replace("#", "%23") url = f"https://proxy.clashk.ing/v1/clans/{tag_encoded}/currentwar" res = requests.get(url, timeout=15) @@ -82,7 +86,7 @@ async def fetch_current_war_info(clan_tag, bypass=False): elif res.status_code == 403: return {"state": "accessDenied"} except Exception as e: - print(f"Error fetching current war info: {e}") + sentry_sdk.capture_exception(e, tags={"function": "fetch_current_war_info", "clan_tag": clan_tag}) return {"state": "notInWar"} @@ -112,6 +116,9 @@ async def fetch_current_war_info_bypass(clan_tag, session): async def fetch_league_info(clan_tag, session): try: + if clan_tag is None: + sentry_sdk.capture_message("clan_tag is None in fetch_league_info", level="error") + return None tag_encoded = clan_tag.replace("#", "%23") url = f"https://proxy.clashk.ing/v1/clans/{tag_encoded}/currentwar/leaguegroup" async with session.get(url, timeout=15) as res: @@ -120,11 +127,14 @@ async def fetch_league_info(clan_tag, session): if data.get("state") != "notInWar": return data except Exception as e: - print(f"Error fetching CWL info: {e}") + sentry_sdk.capture_exception(e, tags={"function": "fetch_league_info", "clan_tag": clan_tag}) return None async def fetch_war_league_info(war_tag, session): + if war_tag is None: + sentry_sdk.capture_message("war_tag is None in fetch_war_league_info", level="error") + return None war_tag_encoded = war_tag.replace('#', '%23') url = f"https://proxy.clashk.ing/v1/clanwarleagues/wars/{war_tag_encoded}" @@ -525,6 +535,9 @@ async def enrich_league_info(league_info, war_league_infos, session): # Get clan with rank = 3 to get current league because they won't go up or down third_clan = next((clan for clan in league_info["clans"] if clan["rank"] == 3), None) + if third_clan is None: + sentry_sdk.capture_message("No clan found with rank 3 in league_info", level="warning") + return league_info clan_tag = third_clan.get("tag", "").replace("#", "%23") url = f"https://proxy.clashk.ing/v1/clans/{clan_tag}" try: From 2f31f32395421ced39e3176fa6e0f9ac3df396ae Mon Sep 17 00:00:00 2001 From: Destinea Date: Mon, 23 Jun 2025 20:36:26 +0200 Subject: [PATCH 125/174] chore: add email encryption --- routers/v2/auth/endpoints.py | 80 ++++++++++++++++++++++++++---------- utils/auth_utils.py | 16 ++++++++ 2 files changed, 75 insertions(+), 21 deletions(-) diff --git a/routers/v2/auth/endpoints.py b/routers/v2/auth/endpoints.py index 8ca9591f..8099d8d7 100644 --- a/routers/v2/auth/endpoints.py +++ b/routers/v2/auth/endpoints.py @@ -5,7 +5,7 @@ from slowapi import Limiter from slowapi.util import get_ipaddr from utils.auth_utils import get_valid_discord_access_token, decode_jwt, decode_refresh_token, encrypt_data, generate_jwt, \ - generate_refresh_token, verify_password, hash_password + generate_refresh_token, verify_password, hash_password, hash_email, prepare_email_for_storage, decrypt_data from utils.utils import db_client, generate_custom_id, config from utils.password_validator import PasswordValidator from utils.security_middleware import get_current_user_id @@ -32,7 +32,16 @@ async def get_current_user_info(user_id: str = Depends(get_current_user_id)): sentry_sdk.capture_message(f"User not found in /auth/me for user_id: {user_id} (type: {type(user_id)})", level="warning") raise HTTPException(status_code=404, detail="User not found") - username = current_user.get("username") or current_user.get("email") + # Decrypt email for username fallback if needed + decrypted_email = None + if current_user.get("email_encrypted"): + try: + decrypted_email = await decrypt_data(current_user["email_encrypted"]) + except Exception as e: + sentry_sdk.capture_exception(e, tags={"function": "decrypt_email_in_auth_me", "user_id": user_id}) + # Continue without email if decryption fails + + username = current_user.get("username") or decrypted_email avatar_url = current_user.get("avatar_url") or "https://clashkingfiles.b-cdn.net/stickers/Troop_HV_Goblin.png" if "discord" in current_user.get("auth_methods", []): @@ -127,35 +136,50 @@ async def auth_discord(request: Request): discord_user_id = user_data["id"] email = user_data.get("email") - - existing_user = await db_client.app_users.find_one({"$or": [ - {"user_id": discord_user_id}, - {"email": email} - ]}) + + # Prepare email encryption if email exists + email_conditions = [{"user_id": discord_user_id}] + if email: + email_hash = hash_email(email) + email_conditions.append({"email_hash": email_hash}) + + existing_user = await db_client.app_users.find_one({"$or": email_conditions}) if existing_user: user_id = existing_user["user_id"] auth_methods = set(existing_user.get("auth_methods", [])) auth_methods.add("discord") + + # Prepare email data for update + update_data = { + "auth_methods": list(auth_methods), + "username": user_data["username"] + } + + if email: + email_data = await prepare_email_for_storage(email) + update_data.update(email_data) await db_client.app_users.update_one( {"user_id": user_id}, - {"$set": { - "auth_methods": list(auth_methods), - "email": email, - "username": user_data["username"] - }} + {"$set": update_data} ) else: user_id = discord_user_id - await db_client.app_users.insert_one({ + insert_data = { "_id": generate_custom_id(int(user_id)), "user_id": user_id, "auth_methods": ["discord"], - "email": email, "username": user_data["username"], "created_at": pend.now() - }) + } + + # Add encrypted email if available + if email: + email_data = await prepare_email_for_storage(email) + insert_data.update(email_data) + + await db_client.app_users.insert_one(insert_data) encrypted_discord_access = await encrypt_data(access_token_discord) encrypted_discord_refresh = await encrypt_data(refresh_token_discord) @@ -256,7 +280,10 @@ async def register_email_user(req: EmailRegisterRequest, request: Request): sentry_sdk.capture_message(f"Validation error in registration: {e.detail}", level="warning") raise e - existing_user = await db_client.app_users.find_one({"email": req.email}) + # Prepare email encryption + email_hash = hash_email(req.email) + email_data = await prepare_email_for_storage(req.email) + existing_user = await db_client.app_users.find_one({"email_hash": email_hash}) if existing_user: user_id = existing_user["user_id"] auth_methods = set(existing_user.get("auth_methods", [])) @@ -267,7 +294,9 @@ async def register_email_user(req: EmailRegisterRequest, request: Request): {"$set": { "auth_methods": list(auth_methods), "username": req.username, - "password": hash_password(req.password) + "password": hash_password(req.password), + "email_encrypted": email_data["email_encrypted"], + "email_hash": email_data["email_hash"] }} ) else: @@ -275,7 +304,8 @@ async def register_email_user(req: EmailRegisterRequest, request: Request): await db_client.app_users.insert_one({ "_id": int(user_id), "user_id": user_id, - "email": req.email, + "email_encrypted": email_data["email_encrypted"], + "email_hash": email_data["email_hash"], "username": req.username, "password": hash_password(req.password), "auth_methods": ["email"], @@ -321,7 +351,9 @@ async def login_with_email(req: EmailAuthRequest, request: Request): import asyncio await asyncio.sleep(0.1) - user = await db_client.app_users.find_one({"email": req.email}) + # Look up user by email hash + email_hash = hash_email(req.email) + user = await db_client.app_users.find_one({"email_hash": email_hash}) if not user or not verify_password(req.password, user.get("password", "")): sentry_sdk.capture_message(f"Failed email login attempt for: {req.email}", level="warning") raise HTTPException(status_code=401, detail="Invalid email or password") @@ -462,16 +494,22 @@ async def link_email_account(req: EmailRegisterRequest, user_id: str = Depends(g sentry_sdk.capture_message(f"User not found for email linking: {user_id}", level="warning") raise HTTPException(status_code=404, detail="User not found") - email_conflict = await db_client.app_users.find_one({"email": req.email}) + # Check for email conflicts using hash + email_hash = hash_email(req.email) + email_conflict = await db_client.app_users.find_one({"email_hash": email_hash}) if email_conflict and email_conflict["user_id"] != user_id: sentry_sdk.capture_message(f"Email {req.email} already linked to user {email_conflict['user_id']}, attempted by {user_id}", level="warning") raise HTTPException(status_code=400, detail="Email already linked to another account") + # Prepare encrypted email data + email_data = await prepare_email_for_storage(req.email) + await db_client.app_users.update_one( {"user_id": user_id}, {"$set": { "auth_methods": list(set(current_user.get("auth_methods", []) + ["email"])), - "email": req.email, + "email_encrypted": email_data["email_encrypted"], + "email_hash": email_data["email_hash"], "username": req.username, "password": hash_password(req.password) }} diff --git a/utils/auth_utils.py b/utils/auth_utils.py index 58935cac..48c19ef0 100644 --- a/utils/auth_utils.py +++ b/utils/auth_utils.py @@ -1,6 +1,7 @@ import jwt import requests import pendulum as pend +import hashlib from fastapi import HTTPException from utils.utils import db_client, config import base64 @@ -25,6 +26,21 @@ async def decrypt_data(data: str) -> str: except Exception as e: raise HTTPException(status_code=500, detail=f"Failed to decrypt data: {str(e)}") +# Hash email for lookup purposes (one-way, deterministic) +def hash_email(email: str) -> str: + """Create a deterministic hash of email for database lookups.""" + email_normalized = email.lower().strip() + return hashlib.sha256(f"{email_normalized}{config.SECRET_KEY}".encode()).hexdigest() + +# Encrypt and prepare email data for storage +async def prepare_email_for_storage(email: str) -> dict: + """Encrypt email and create lookup hash.""" + email_normalized = email.lower().strip() + return { + "email_encrypted": await encrypt_data(email_normalized), + "email_hash": hash_email(email_normalized) + } + def generate_jwt(user_id: str, device_id: str) -> str: """Generate a JWT token for the user.""" From ce25c37633363958498c7009ef4b33a7d93995cb Mon Sep 17 00:00:00 2001 From: Destinea Date: Mon, 23 Jun 2025 20:48:21 +0200 Subject: [PATCH 126/174] fix: 'NoneType' object is not subscriptable for war --- routers/v2/war/endpoints.py | 8 ++++---- routers/v2/war/utils.py | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/routers/v2/war/endpoints.py b/routers/v2/war/endpoints.py index 2fd47573..44fa141f 100644 --- a/routers/v2/war/endpoints.py +++ b/routers/v2/war/endpoints.py @@ -286,8 +286,8 @@ async def get_clan_war_summary(clan_tag: str): league_info = await enrich_league_info(league_info, war_league_infos, session) return JSONResponse(content={ - "isInWar": war_info["state"] == "war", - "isInCwl": league_info is not None and war_info["state"] == "notInWar", + "isInWar": war_info and war_info.get("state") == "war", + "isInCwl": league_info is not None and war_info and war_info.get("state") == "notInWar", "war_info": war_info, "league_info": league_info, "war_league_infos": war_league_infos @@ -315,8 +315,8 @@ async def process_clan(clan_tag: str): return { "clan_tag": clan_tag, - "isInWar": war_info["state"] == "war", - "isInCwl": league_info is not None and war_info["state"] == "notInWar", + "isInWar": war_info and war_info.get("state") == "war", + "isInCwl": league_info is not None and war_info and war_info.get("state") == "notInWar", "war_info": war_info, "league_info": league_info, "war_league_infos": war_league_infos diff --git a/routers/v2/war/utils.py b/routers/v2/war/utils.py index b5acd61a..adb14d7a 100644 --- a/routers/v2/war/utils.py +++ b/routers/v2/war/utils.py @@ -107,8 +107,8 @@ async def fetch_opponent_tag(clan_tag): async def fetch_current_war_info_bypass(clan_tag, session): war = await fetch_current_war_info(clan_tag) - if war["state"] == "accessDenied": - opponent_tag = await fetch_opponent_tag(clan_tag, session) + if war and war.get("state") == "accessDenied": + opponent_tag = await fetch_opponent_tag(clan_tag) if opponent_tag: return await fetch_current_war_info(opponent_tag, bypass=True) return war From 532b48e6cbe53e738a8aee5f7c9c8c142f7dcdd8 Mon Sep 17 00:00:00 2001 From: Destinea Date: Mon, 23 Jun 2025 21:33:39 +0200 Subject: [PATCH 127/174] chore: remove print --- routers/v2/accounts/utils.py | 2 +- utils/security_middleware.py | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/routers/v2/accounts/utils.py b/routers/v2/accounts/utils.py index a1c9d690..8415ea15 100644 --- a/routers/v2/accounts/utils.py +++ b/routers/v2/accounts/utils.py @@ -31,6 +31,6 @@ async def verify_coc_ownership(coc_tag: str, player_token: str) -> bool: async def is_coc_account_linked(coc_tag: str) -> bool: """Check if the Clash of Clans account is already linked to another user.""" - existing_account = await db_client.coc_accounts.find_one({"coc_tag": coc_tag}) + existing_account = await db_client.coc_accounts.find_one({"player_tag": coc_tag}) return existing_account is not None diff --git a/utils/security_middleware.py b/utils/security_middleware.py index 4720f2a5..ea9bf491 100644 --- a/utils/security_middleware.py +++ b/utils/security_middleware.py @@ -25,13 +25,9 @@ async def get_current_user_id(credentials: HTTPAuthorizationCredentials = Depend pass if not user: - print(f"❌ User lookup failed for user_id: {user_id} (type: {type(user_id)})") raise HTTPException(status_code=401, detail="User not found") - - print(f"✅ User found: {user_id}") return str(user_id) # Always return as string for consistency except Exception as e: - print(f"❌ Auth error: {str(e)}") raise HTTPException(status_code=401, detail="Invalid authentication token: " + str(e)) async def get_current_user(user_id: str = Depends(get_current_user_id)) -> dict: From cf88ec929cbd0eef5e1ee4953ef1e62ccedce337 Mon Sep 17 00:00:00 2001 From: Destinea Date: Sun, 29 Jun 2025 17:04:27 +0200 Subject: [PATCH 128/174] feat: app endpoint to faster loading time --- routers/v2/app/endpoints.py | 202 +++++++++++++++++++++++++++++++++ routers/v2/clan/endpoints.py | 125 +++++++++++++++++--- routers/v2/player/endpoints.py | 8 +- utils/config.py | 2 +- 4 files changed, 315 insertions(+), 22 deletions(-) create mode 100644 routers/v2/app/endpoints.py diff --git a/routers/v2/app/endpoints.py b/routers/v2/app/endpoints.py new file mode 100644 index 00000000..40dd5c84 --- /dev/null +++ b/routers/v2/app/endpoints.py @@ -0,0 +1,202 @@ +import asyncio +from typing import Any, Dict, List +import aiohttp +import coc +import pendulum as pend +from fastapi import HTTPException, APIRouter, Request + +from routers.v2.clan.endpoints import get_clans_stats, get_clans_capital_raids +from routers.v2.clan.models import ClanTagsRequest, RaidsRequest +from routers.v2.player.endpoints import get_players_stats +from routers.v2.player.models import PlayerTagsRequest +from routers.v2.war.endpoints import get_multiple_clan_war_summary, clan_warhits_stats, players_warhits_stats +from routers.v2.war.models import PlayerWarhitsFilter, ClanWarHitsFilter +from routers.v2.war.utils import collect_player_hits_from_wars +from utils.database import MongoClient as Mongo +from utils.utils import fix_tag, remove_id_fields + +# Constants +PREPARATION_START_TIME_FIELD = "data.preparationStartTime" + +router = APIRouter(prefix="/v2/app", tags=["Mobile App"], include_in_schema=True) + + +async def app_player_war_stats(body: PlayerTagsRequest) -> Dict[str, Any]: + """Use existing war endpoint with mobile app defaults""" + if not body.player_tags: + raise HTTPException(status_code=400, detail="player_tags cannot be empty") + + # Create filter with same defaults as mobile app (last 6 months, limit 50) + mongo_filter = PlayerWarhitsFilter( + player_tags=body.player_tags, + timestamp_start=int(pend.now().subtract(months=6).timestamp()), + timestamp_end=int(pend.now().timestamp()), + limit=50 + ) + + # Use the existing proven endpoint + from fastapi import Request + request = Request({"type": "http", "method": "POST", "headers": []}) + return await players_warhits_stats(mongo_filter, request) + + +@router.post("/initialization", name="Initialize all account data for mobile app") +async def app_initialization(body: PlayerTagsRequest, request: Request) -> Dict[str, Any]: + """ + Mobile app initialization endpoint that calls the existing 8 individual endpoints in parallel. + This guarantees the same data as individual calls but with bulk performance optimized for mobile. + + Replaces 8 sequential mobile API calls with 8 parallel server-side calls. + """ + if not body.player_tags: + raise HTTPException(status_code=400, detail="player_tags cannot be empty") + + player_tags = [fix_tag(tag) for tag in body.player_tags] + + # Define player_request_type alias + player_request_type = PlayerTagsRequest + + async def fetch_clan_war_logs(input_clan_tags: List[str]) -> List[Dict[str, Any]]: + """Fetch war logs using same logic as mobile app - direct API calls""" + async def fetch_clan_war_log(http_session: aiohttp.ClientSession, clan_tag: str) -> Dict[str, Any]: + url = f"https://proxy.clashk.ing/v1/clans/{clan_tag.replace('#', '%23')}/warlog" + async with http_session.get(url) as response: + if response.status == 200: + data = await response.json() + return {"clan_tag": clan_tag, "items": data.get("items", [])} + return {"clan_tag": clan_tag, "items": []} + + async with aiohttp.ClientSession() as war_session: + return await asyncio.gather(*(fetch_clan_war_log(war_session, tag) for tag in input_clan_tags)) + + async def fetch_clan_war_stats(input_clan_request: ClanTagsRequest) -> Dict[str, Any]: + """Fetch clan war stats using existing endpoint""" + mongo_filter = ClanWarHitsFilter( + clan_tags=input_clan_request.clan_tags, + timestamp_start=int(pend.now().subtract(months=6).timestamp()), + timestamp_end=int(pend.now().timestamp()), + limit=50 + ) + return await clan_warhits_stats(mongo_filter) + + # Get player data with clan information (using basic API call that includes clan data) + async def fetch_players_with_clans(): + async with aiohttp.ClientSession() as session: + from routers.v2.player.utils import fetch_player_api_data + fetch_tasks = [fetch_player_api_data(session, tag) for tag in player_tags] + api_results = await asyncio.gather(*fetch_tasks) + + result = [] + for tag, data in zip(player_tags, api_results): + if isinstance(data, HTTPException): + if data.status_code == 503 or data.status_code == 500: + raise data + else: + continue + if data: + result.append({ + "tag": tag, + **data + }) + return {"items": result} + + players_result = await fetch_players_with_clans() + + # Extract clan tags from player data + clan_tags = set() + for player in players_result.get("items", []): + if player and player.get("clan"): + clan_tags.add(player["clan"]["tag"]) + + clan_tags_list = list(clan_tags) + + if not clan_tags_list: + # No clans found, return player data only with proper empty structure + war_stats_result = await app_player_war_stats(body) + return { + "players": players_result.get("items", []), + "players_basic": players_result.get("items", []), + "clans": { + "clan_details": {}, + "clan_stats": {}, + "war_data": [], + "join_leave_data": {}, + "capital_data": [], + "war_log_data": [], + "clan_war_stats": [], + "cwl_data": [] + }, + "war_stats": war_stats_result.get("items", []), + "clan_tags": [], + "metadata": { + "total_players": len(player_tags), + "total_clans": 0, + "fetch_time": "endpoint_calls" + } + } + + # Execute all clan-related calls in parallel (all 8 original calls) + clan_request = ClanTagsRequest(clan_tags=clan_tags_list) + raids_request = RaidsRequest(clan_tags=clan_tags_list, limit=10) + + async def fetch_clan_join_leave_data(input_clan_tags: List[str]) -> Dict[str, Any]: + """Fetch join/leave data for clans using unified function""" + from routers.v2.clan.endpoints import get_multiple_clan_join_leave + return await get_multiple_clan_join_leave( + clan_tags=input_clan_tags, + request=request, + programmatic_filters=None # Will use default current season filters + ) + + # Execute API calls that return Dict[str, Any] + api_results = await asyncio.gather( + app_player_war_stats(body), + get_clans_stats(request, clan_request), + fetch_clan_join_leave_data(clan_tags_list), + get_clans_capital_raids(request, raids_request), + get_multiple_clan_war_summary(clan_request, request), + fetch_clan_war_stats(clan_request) + ) + + # Execute call that returns List[Dict[str, Any]] + clan_war_log_result = await fetch_clan_war_logs(clan_tags_list) + + # Unpack the API results + ( + war_stats_result, + clan_details_result, + clan_join_leave_result, + clan_capital_result, + war_summary_result_raw, + clan_war_stats_result + ) = api_results + + # Extract content from JSONResponse if needed + from fastapi.responses import JSONResponse + if isinstance(war_summary_result_raw, JSONResponse): + import json + war_summary_result = json.loads(war_summary_result_raw.body.decode()) + else: + war_summary_result = war_summary_result_raw + + # Structure the response with all required data + return { + "players": players_result.get("items", []), + "players_basic": players_result.get("items", []), + "clans": { + "clan_details": {item.get("tag", ""): item for item in clan_details_result.get("items", []) if item}, + "clan_stats": {}, # To do + "war_data": war_summary_result.get("items", []), + "join_leave_data": {item.get("clan_tag", ""): item for item in clan_join_leave_result.get("items", [])}, + "capital_data": clan_capital_result.get("items", []), + "war_log_data": clan_war_log_result, + "clan_war_stats": clan_war_stats_result.get("items", []), + }, + "war_stats": war_stats_result.get("items", []), + "clan_tags": clan_tags_list, + "metadata": { + "total_players": len(player_tags), + "total_clans": len(clan_tags_list), + "fetch_time": "endpoint_calls" + } + } \ No newline at end of file diff --git a/routers/v2/clan/endpoints.py b/routers/v2/clan/endpoints.py index 3a4a1228..327dd9f3 100644 --- a/routers/v2/clan/endpoints.py +++ b/routers/v2/clan/endpoints.py @@ -237,24 +237,117 @@ async def clan_join_leave( @router.post("/clans/join-leave", name="Join Leaves in a season") async def get_multiple_clan_join_leave( - body: ClanTagsRequest, - request: Request, - filters: JoinLeaveQueryParams = Depends() + body: ClanTagsRequest = None, + request: Request = None, + filters: JoinLeaveQueryParams = Depends(), + # Programmatic parameters + clan_tags: list[str] = None, + programmatic_filters: dict = None ): + """ + Unified function that handles both FastAPI endpoint calls and programmatic calls. + + For FastAPI endpoint: Use body, request, and filters (with Depends()) + For programmatic calls: Use clan_tags and programmatic_filters + """ try: - clan_tags = [fix_tag(tag) for tag in body.clan_tags] - - async def process_join_leave(clan_tag: str): - response = await clan_join_leave(clan_tag=clan_tag, request=request, filters=filters) - return { - "clan_tag": clan_tag, - "timestamp_start": response["timestamp_start"], - "timestamp_end": response["timestamp_end"], - "stats": response["stats"], - "join_leave_list": response["join_leave_list"] - } - - results = await asyncio.gather(*(process_join_leave(tag) for tag in clan_tags)) + # Determine if this is a programmatic call or FastAPI endpoint call + if clan_tags is not None: + # Programmatic call + clan_tags_list = [fix_tag(tag) for tag in clan_tags] + + # Set default filters if none provided + if programmatic_filters is None: + programmatic_filters = { + "current_season": True, + "limit": 50, + "filter_leave_join_enabled": False, + "filter_join_leave_enabled": False, + "filter_time": 48, + "only_type": None, + "type": None, + "townhall": None, + "tag": None, + "name_contains": None + } + + async def process_clan_join_leave(clan_tag: str): + try: + # Use current season by default + if programmatic_filters.get("current_season", True): + season_start, season_end = season_start_end(pend.now(tz=pend.UTC).format("YYYY-MM")) + timestamp_start = int(season_start.timestamp()) + time_stamp_end = int(season_end.timestamp()) + else: + timestamp_start = programmatic_filters.get("timestamp_start", 0) + time_stamp_end = programmatic_filters.get("time_stamp_end", 9999999999) + + base_query = { + "$and": [ + {"clan": clan_tag}, + {"time": {"$gte": pend.from_timestamp(timestamp_start, tz=pend.UTC)}}, + {"time": {"$lte": pend.from_timestamp(time_stamp_end, tz=pend.UTC)}} + ] + } + + if programmatic_filters.get("type"): + base_query["$and"].append({"type": programmatic_filters["type"]}) + if programmatic_filters.get("townhall"): + base_query["$and"].append({"th": {"$in": programmatic_filters["townhall"]}}) + if programmatic_filters.get("tag"): + base_query["$and"].append({"tag": {"$in": programmatic_filters["tag"]}}) + if programmatic_filters.get("name_contains"): + base_query["$and"].append({"name": {"$regex": programmatic_filters["name_contains"], "$options": "i"}}) + + cursor = mongo.clan_join_leave.find(base_query, {"_id": 0}).sort("time", -1) + if not programmatic_filters.get("current_season", True): + cursor = cursor.limit(programmatic_filters.get("limit", 50)) + + result = await cursor.to_list(length=None) + + if programmatic_filters.get("filter_leave_join_enabled"): + result = filter_leave_join(result, programmatic_filters.get("filter_time", 48)) + if programmatic_filters.get("filter_join_leave_enabled"): + result = filter_join_leave(result, programmatic_filters.get("filter_time", 48)) + if programmatic_filters.get("only_type") in ("join_leave", "leave_join"): + result = extract_join_leave_pairs(result, programmatic_filters.get("filter_time", 48), direction=programmatic_filters["only_type"]) + + return { + "clan_tag": clan_tag, + "timestamp_start": timestamp_start, + "timestamp_end": time_stamp_end, + "stats": generate_stats(result), + "join_leave_list": result + } + + except Exception as e: + print(f"❌ Error fetching join/leave data for {clan_tag}: {e}") + return { + "clan_tag": clan_tag, + "timestamp_start": 0, + "timestamp_end": 0, + "stats": {}, + "join_leave_list": [] + } + + else: + # FastAPI endpoint call + if not body or not body.clan_tags: + raise HTTPException(status_code=400, detail="clan_tags cannot be empty") + + clan_tags_list = [fix_tag(tag) for tag in body.clan_tags] + + async def process_clan_join_leave(clan_tag: str): + response = await clan_join_leave(clan_tag=clan_tag, request=request, filters=filters) + return { + "clan_tag": clan_tag, + "timestamp_start": response["timestamp_start"], + "timestamp_end": response["timestamp_end"], + "stats": response["stats"], + "join_leave_list": response["join_leave_list"] + } + + results = await asyncio.gather(*(process_clan_join_leave(tag) for tag in clan_tags_list)) return {"items": results} except Exception as e: diff --git a/routers/v2/player/endpoints.py b/routers/v2/player/endpoints.py index 60308dc7..10635566 100644 --- a/routers/v2/player/endpoints.py +++ b/routers/v2/player/endpoints.py @@ -1,14 +1,12 @@ import asyncio from collections import defaultdict -import coc import aiohttp from fastapi import HTTPException, Query -from fastapi import APIRouter, Request, Response -import pendulum as pend -from routers.v2.player.utils import get_legend_rankings_for_tag, get_legend_stats_common, get_current_rankings, \ +from fastapi import APIRouter, Request +from routers.v2.player.utils import get_legend_rankings_for_tag, get_legend_stats_common, \ assemble_full_player_data, fetch_full_player_data, fetch_player_api_data -from utils.time import get_season_raid_weeks, season_start_end, CLASH_ISO_FORMAT, is_raids +from utils.time import get_season_raid_weeks, season_start_end, CLASH_ISO_FORMAT from utils.utils import fix_tag, remove_id_fields, bulk_requests from utils.database import MongoClient as mongo from routers.v2.player.models import PlayerTagsRequest diff --git a/utils/config.py b/utils/config.py index 7c66ca51..bb68a026 100644 --- a/utils/config.py +++ b/utils/config.py @@ -39,7 +39,7 @@ class Config: IS_PROD = ENV == "production" HOST = "localhost" if IS_LOCAL else "0.0.0.0" - PORT = 8000 if IS_LOCAL else (8073 if IS_DEV else 8010) + PORT = 8010 if IS_LOCAL else (8073 if IS_DEV else 8010) RELOAD = IS_LOCAL or IS_DEV SECRET_KEY = os.getenv('SECRET_KEY') From d190fb5d8a9d83dcef754adc1b9fdee4f4487ab1 Mon Sep 17 00:00:00 2001 From: Destinea Date: Sun, 29 Jun 2025 17:21:31 +0200 Subject: [PATCH 129/174] chore: reorder endpoints --- routers/v2/app/endpoints.py | 9 +- routers/v2/player/endpoints.py | 264 +++++++++++++++++++++------------ 2 files changed, 167 insertions(+), 106 deletions(-) diff --git a/routers/v2/app/endpoints.py b/routers/v2/app/endpoints.py index 40dd5c84..17cbeba6 100644 --- a/routers/v2/app/endpoints.py +++ b/routers/v2/app/endpoints.py @@ -1,19 +1,15 @@ import asyncio from typing import Any, Dict, List import aiohttp -import coc import pendulum as pend from fastapi import HTTPException, APIRouter, Request from routers.v2.clan.endpoints import get_clans_stats, get_clans_capital_raids from routers.v2.clan.models import ClanTagsRequest, RaidsRequest -from routers.v2.player.endpoints import get_players_stats from routers.v2.player.models import PlayerTagsRequest from routers.v2.war.endpoints import get_multiple_clan_war_summary, clan_warhits_stats, players_warhits_stats from routers.v2.war.models import PlayerWarhitsFilter, ClanWarHitsFilter -from routers.v2.war.utils import collect_player_hits_from_wars -from utils.database import MongoClient as Mongo -from utils.utils import fix_tag, remove_id_fields +from utils.utils import fix_tag # Constants PREPARATION_START_TIME_FIELD = "data.preparationStartTime" @@ -53,9 +49,6 @@ async def app_initialization(body: PlayerTagsRequest, request: Request) -> Dict[ player_tags = [fix_tag(tag) for tag in body.player_tags] - # Define player_request_type alias - player_request_type = PlayerTagsRequest - async def fetch_clan_war_logs(input_clan_tags: List[str]) -> List[Dict[str, Any]]: """Fetch war logs using same logic as mobile app - direct API calls""" async def fetch_clan_war_log(http_session: aiohttp.ClientSession, clan_tag: str) -> Dict[str, Any]: diff --git a/routers/v2/player/endpoints.py b/routers/v2/player/endpoints.py index 10635566..ba2418ae 100644 --- a/routers/v2/player/endpoints.py +++ b/routers/v2/player/endpoints.py @@ -14,83 +14,20 @@ router = APIRouter(prefix="/v2", tags=["Player"], include_in_schema=True) -@router.post("/players/location", - name="Get locations for a list of players") -async def player_location_list(request: Request, body: PlayerTagsRequest): - player_tags = [fix_tag(tag) for tag in body.player_tags] - location_info = await mongo.leaderboard_db.find( - {'tag': {'$in': player_tags}}, - {'_id': 0, 'tag': 1, 'country_name': 1, 'country_code': 1} - ).to_list(length=None) - - return {"items": remove_id_fields(location_info)} - - -@router.post("/players/sorted/{attribute}", - name="Get players sorted by an attribute") -async def player_sorted(attribute: str, request: Request, body: PlayerTagsRequest): - urls = [f"players/{fix_tag(t).replace('#', '%23')}" for t in body.player_tags] - player_responses = await bulk_requests(urls=urls) - - def fetch_attribute(data: dict, attr: str): - """ - Fetches a nested attribute from a dictionary using dot notation. - - Supports: - - Standard dictionary lookups (e.g., "name" -> data["name"]) - - Nested dictionary lookups (e.g., "league.name" -> data["league"]["name"]) - - List item lookups (e.g., "achievements[name=test].value" -> gets "value" from the achievement where name="test") - - :param data: The dictionary to fetch the attribute from. - :param attr: The attribute path in dot notation. - :return: The fetched value or None if not found. - """ - - if attr == "cumulative_heroes": - return sum([h.get("level") for h in data.get("heroes", []) if h.get("village") == "home"]) - - keys = attr.split(".") - for i, key in enumerate(keys): - # Handle list lookup pattern: "achievements[name=test]" - if "[" in key and "]" in key: - list_key, condition = key[:-1].split("[", 1) # Extract list name and condition - if "=" in condition: - cond_key, cond_value = condition.split("=", 1) - if list_key in data and isinstance(data[list_key], list): - for item in data[list_key]: - if isinstance(item, dict) and item.get(cond_key) == cond_value: - data = item # Move into the matched dictionary - break - else: - return None # No matching item found - else: - return None - else: - return None # Invalid format - else: - data = data.get(key, {}) if i < len(keys) - 1 else data.get(key) # Move deeper into dict - - if data is None: - return None # Key not found - - return data - - new_data = [ - { - "name": p.get("name"), - "tag": p.get("tag"), - "value": fetch_attribute(data=p, attr=attribute), - "clan": p.get("clan", {}) - } - for p in player_responses - ] - - return {"items": sorted(new_data, key=lambda x: (x["value"] is not None, x["value"]), reverse=True)} - - -@router.post("/players", name="Get full stats for a list of players") -async def get_players_stats(body: PlayerTagsRequest, request: Request): - """Quickly retrieve base API player data only for a list of players.""" +# ============================================================================ +# BASIC PLAYER DATA ENDPOINTS +# ============================================================================ + +@router.post("/players", name="Get basic API data for multiple players") +async def get_players_basic_stats(body: PlayerTagsRequest, request: Request): + """Retrieve basic Clash of Clans API data for multiple players. + + Fast endpoint that returns only core player information from the CoC API: + - Basic player stats (trophies, level, townhall, etc.) + - Clan information (if player is in a clan) + - Heroes, troops, spells, and achievements + - No extended tracking data or MongoDB statistics + """ if not body.player_tags: raise HTTPException(status_code=400, detail="player_tags cannot be empty") @@ -117,9 +54,22 @@ async def get_players_stats(body: PlayerTagsRequest, request: Request): return {"items": result} -@router.post("/players/extended", name="Get full stats for a list of players") -async def get_players_stats(body: PlayerTagsRequest, request: Request): - """Retrieve Clash of Clans account details for a list of players.""" +# ============================================================================ +# EXTENDED PLAYER DATA ENDPOINTS +# ============================================================================ + +@router.post("/players/extended", name="Get comprehensive stats for multiple players") +async def get_players_extended_stats(body: PlayerTagsRequest, request: Request): + """Retrieve comprehensive player data combining API and tracking statistics. + + Returns enriched player profiles including: + - Core API data (trophies, level, townhall, etc.) + - Extended tracking stats (donations, clan games, activity, etc.) + - Season-based statistics (gold, elixir, dark elixir earnings) + - Capital gold contributions and raid data + - Legend league statistics and rankings + - War performance data + """ if not body.player_tags: raise HTTPException(status_code=400, detail="player_tags cannot be empty") @@ -176,8 +126,14 @@ async def get_players_stats(body: PlayerTagsRequest, request: Request): return {"items": remove_id_fields(combined_results)} -@router.get("/player/{player_tag}/extended", name="Get full stats for a single player") -async def get_player_stats(player_tag: str, request: Request, clan_tag: str = Query(None)): +@router.get("/player/{player_tag}/extended", name="Get comprehensive stats for single player") +async def get_player_extended_stats(player_tag: str, request: Request, clan_tag: str = Query(None)): + """Retrieve comprehensive data for a single player. + + Same as /players/extended but optimized for single player queries. + Includes all tracking statistics, legends data, and war performance. + Optional clan_tag parameter for clan-specific context. + """ if not player_tag: raise HTTPException(status_code=400, detail="player_tag is required") @@ -214,25 +170,32 @@ async def get_player_stats(player_tag: str, request: Request, clan_tag: str = Qu return remove_id_fields(player_data) -@router.post("/players/legend-days", name="Get legend stats for multiple players") -async def get_legend_stats(body: PlayerTagsRequest, request: Request): +# ============================================================================ +# LEGEND LEAGUE ENDPOINTS +# ============================================================================ + +@router.post("/players/legend-days", name="Get legend league statistics for multiple players") +async def get_players_legend_stats(body: PlayerTagsRequest, request: Request): + """Retrieve legend league daily statistics for multiple players. + + Returns detailed legend league performance data including: + - Daily trophy gains/losses by season + - Attack and defense statistics + - Ranking history and best finishes + - Season-over-season performance trends + """ if not body.player_tags: raise HTTPException(status_code=400, detail="player_tags cannot be empty") return {"items": await get_legend_stats_common(body.player_tags)} -@router.get("/player/{player_tag}/legend-days", name="Get legend stats for one player") -async def get_legend_stats_by_player(player_tag: str, request: Request): - return await get_legend_stats_common(player_tag) - - -@router.get("/player/{player_tag}/legend_rankings", name="Get previous player legend rankings") -async def get_player_legend_rankings(player_tag: str, limit: int = 10): - return await get_legend_rankings_for_tag(player_tag, limit=limit) - - -@router.post("/players/legend_rankings", name="Get legend rankings for multiple players") -async def get_bulk_legend_rankings(body: PlayerTagsRequest, limit: int = 10): +@router.post("/players/legend_rankings", name="Get historical legend league rankings for multiple players") +async def get_multiple_legend_rankings(body: PlayerTagsRequest, limit: int = 10): + """Retrieve historical legend league rankings for multiple players. + + Returns each player's best legend league finishes with timestamps. + Processes multiple players in parallel for efficient bulk queries. + """ if not body.player_tags: raise HTTPException(status_code=400, detail="player_tags cannot be empty") @@ -249,9 +212,25 @@ async def get_bulk_legend_rankings(body: PlayerTagsRequest, limit: int = 10): return {"items": results} +# ============================================================================ +# ANALYTICS & STATISTICS ENDPOINTS +# ============================================================================ + @router.post("/players/summary/{season}/top", - name="Get summary of top stats for a list of players") -async def players_summary_top(season: str, request: Request, body: PlayerTagsRequest, limit: int = 10): + name="Get top player statistics for a season") +async def players_season_leaderboard(season: str, request: Request, body: PlayerTagsRequest, limit: int = 10): + """Generate season leaderboards for various player statistics. + + Creates ranked lists for multiple categories: + - Resource earnings (gold, elixir, dark elixir) + - Activity levels and attack wins + - Donation statistics (given and received) + - Capital gold contributions (donated and raided) + - War performance (total stars earned) + - Trophy progression for the season + + Returns top performers in each category with rankings. + """ results = await mongo.player_stats.find( {'$and': [{'tag': {'$in': body.player_tags}}]} ).to_list(length=None) @@ -380,3 +359,92 @@ def capital_gold_raided(elem): for count, result in enumerate(war_star_results, 1)] return {"items": [{key: value} for key, value in new_data.items()]} + + +@router.post("/players/location", + name="Get location data for multiple players") +async def player_location_list(request: Request, body: PlayerTagsRequest): + """Retrieve geographic location information (country name/code) for a list of players. + + Returns country names and codes for players based on leaderboard data. + Used for analytics and geographic distribution analysis. + """ + player_tags = [fix_tag(tag) for tag in body.player_tags] + location_info = await mongo.leaderboard_db.find( + {'tag': {'$in': player_tags}}, + {'_id': 0, 'tag': 1, 'country_name': 1, 'country_code': 1} + ).to_list(length=None) + + return {"items": remove_id_fields(location_info)} + + +# ============================================================================ +# UTILITY ENDPOINTS +# ============================================================================ + +@router.post("/players/sorted/{attribute}", + name="Sort players by any attribute value") +async def player_sorted(attribute: str, request: Request, body: PlayerTagsRequest): + """Sort a list of players by any attribute in descending order. + + Supports nested attributes (e.g., 'league.name') and achievement lookups. + Special attribute 'cumulative_heroes' sums all home village hero levels. + Returns players with their name, tag, clan, and the sorted attribute value. + """ + urls = [f"players/{fix_tag(t).replace('#', '%23')}" for t in body.player_tags] + player_responses = await bulk_requests(urls=urls) + + def fetch_attribute(data: dict, attr: str): + """ + Fetches a nested attribute from a dictionary using dot notation. + + Supports: + - Standard dictionary lookups (e.g., "name" -> data["name"]) + - Nested dictionary lookups (e.g., "league.name" -> data["league"]["name"]) + - List item lookups (e.g., "achievements[name=test].value" -> gets "value" from the achievement where name="test") + + :param data: The dictionary to fetch the attribute from. + :param attr: The attribute path in dot notation. + :return: The fetched value or None if not found. + """ + + if attr == "cumulative_heroes": + return sum([h.get("level") for h in data.get("heroes", []) if h.get("village") == "home"]) + + keys = attr.split(".") + for i, key in enumerate(keys): + # Handle list lookup pattern: "achievements[name=test]" + if "[" in key and "]" in key: + list_key, condition = key[:-1].split("[", 1) # Extract list name and condition + if "=" in condition: + cond_key, cond_value = condition.split("=", 1) + if list_key in data and isinstance(data[list_key], list): + for item in data[list_key]: + if isinstance(item, dict) and item.get(cond_key) == cond_value: + data = item # Move into the matched dictionary + break + else: + return None # No matching item found + else: + return None + else: + return None # Invalid format + else: + data = data.get(key, {}) if i < len(keys) - 1 else data.get(key) # Move deeper into dict + + if data is None: + return None # Key not found + + return data + + new_data = [ + { + "name": p.get("name"), + "tag": p.get("tag"), + "value": fetch_attribute(data=p, attr=attribute), + "clan": p.get("clan", {}) + } + for p in player_responses + ] + + return {"items": sorted(new_data, key=lambda x: (x["value"] is not None, x["value"]), reverse=True)} \ No newline at end of file From a59c6f35a24446fb6128369638159ec5c4486f30 Mon Sep 17 00:00:00 2001 From: Destinea Date: Sun, 29 Jun 2025 18:46:44 +0200 Subject: [PATCH 130/174] fix: add missing clan_tag in capital endpoint --- routers/v2/app/endpoints.py | 8 +++++--- routers/v2/clan/endpoints.py | 3 ++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/routers/v2/app/endpoints.py b/routers/v2/app/endpoints.py index 17cbeba6..e6945aef 100644 --- a/routers/v2/app/endpoints.py +++ b/routers/v2/app/endpoints.py @@ -98,10 +98,12 @@ async def fetch_players_with_clans(): # Extract clan tags from player data clan_tags = set() for player in players_result.get("items", []): - if player and player.get("clan"): - clan_tags.add(player["clan"]["tag"]) + if player and player.get("clan") and player["clan"].get("tag"): + clan_tag = str(player["clan"]["tag"]) # Ensure string type + if clan_tag: # Only add non-empty strings + clan_tags.add(clan_tag) - clan_tags_list = list(clan_tags) + clan_tags_list = list(clan_tags) # Now guaranteed to be List[str] if not clan_tags_list: # No clans found, return player data only with proper empty structure diff --git a/routers/v2/clan/endpoints.py b/routers/v2/clan/endpoints.py index 327dd9f3..c3f05df7 100644 --- a/routers/v2/clan/endpoints.py +++ b/routers/v2/clan/endpoints.py @@ -376,11 +376,12 @@ async def fetch_clan_data(session, tag): api_responses = await asyncio.gather(*(fetch_clan_data(session, tag) for tag in clan_tags)) result = [] - for clan_data in api_responses: + for i, clan_data in enumerate(api_responses): if clan_data: history = clan_data.get("items", []) predict_rewards(history) result.append({ + "clan_tag": clan_tags[i], # Add clan_tag to associate data with clan "stats": generate_raids_clan_stats(history), "history": remove_id_fields(history) }) From 3bf2bf09a9a80ab0aa289acfbe6b627a58aedd27 Mon Sep 17 00:00:00 2001 From: Destinea Date: Sun, 29 Jun 2025 22:13:49 +0200 Subject: [PATCH 131/174] fix: add missing player to do info --- routers/v2/app/endpoints.py | 81 +++++++++++++++++++++++++++++++------ 1 file changed, 69 insertions(+), 12 deletions(-) diff --git a/routers/v2/app/endpoints.py b/routers/v2/app/endpoints.py index e6945aef..c35d74ca 100644 --- a/routers/v2/app/endpoints.py +++ b/routers/v2/app/endpoints.py @@ -7,9 +7,11 @@ from routers.v2.clan.endpoints import get_clans_stats, get_clans_capital_raids from routers.v2.clan.models import ClanTagsRequest, RaidsRequest from routers.v2.player.models import PlayerTagsRequest +from routers.v2.player.utils import get_legend_stats_common, assemble_full_player_data, fetch_full_player_data from routers.v2.war.endpoints import get_multiple_clan_war_summary, clan_warhits_stats, players_warhits_stats from routers.v2.war.models import PlayerWarhitsFilter, ClanWarHitsFilter -from utils.utils import fix_tag +from utils.utils import fix_tag, remove_id_fields +from utils.database import MongoClient as mongo # Constants PREPARATION_START_TIME_FIELD = "data.preparationStartTime" @@ -72,14 +74,15 @@ async def fetch_clan_war_stats(input_clan_request: ClanTagsRequest) -> Dict[str, ) return await clan_warhits_stats(mongo_filter) - # Get player data with clan information (using basic API call that includes clan data) - async def fetch_players_with_clans(): + # Get both basic and extended player data + async def fetch_players_basic_and_extended(): + # Fetch basic API data for clan information async with aiohttp.ClientSession() as session: from routers.v2.player.utils import fetch_player_api_data fetch_tasks = [fetch_player_api_data(session, tag) for tag in player_tags] api_results = await asyncio.gather(*fetch_tasks) - result = [] + basic_result = [] for tag, data in zip(player_tags, api_results): if isinstance(data, HTTPException): if data.status_code == 503 or data.status_code == 500: @@ -87,17 +90,71 @@ async def fetch_players_with_clans(): else: continue if data: - result.append({ + basic_result.append({ "tag": tag, **data }) - return {"items": result} + + # Fetch extended player data with MongoDB tracking stats + # Fetch MongoDB player_stats in bulk + players_info = await mongo.player_stats.find( + {"tag": {"$in": player_tags}}, + { + "_id": 0, + "tag": 1, + "donations": 1, + "clan_games": 1, + "season_pass": 1, + "activity": 1, + "last_online": 1, + "last_online_time": 1, + "attack_wins": 1, + "dark_elixir": 1, + "gold": 1, + "capital_gold": 1, + "season_trophies": 1, + "last_updated": 1 + } + ).to_list(length=None) + + mongo_data_dict = {player["tag"]: player for player in players_info} + + # Load legends data in bulk + legends_data = await get_legend_stats_common(player_tags) + tag_to_legends = {entry["tag"]: entry["legends_by_season"] for entry in legends_data} + + # Fetch extended data per player in parallel + async with aiohttp.ClientSession() as session: + fetch_tasks = [ + fetch_full_player_data( + session, + tag, + mongo_data_dict.get(tag, {}), + None # clan_tag - we'll get from basic data + ) + for tag in player_tags + ] + + player_results = await asyncio.gather(*fetch_tasks) + + # Assemble enriched player data in parallel + extended_results = await asyncio.gather(*[ + assemble_full_player_data(tag, raid_data, war_data, mongo_data, tag_to_legends) + for tag, raid_data, war_data, mongo_data in player_results + ]) + + # Remove MongoDB _id fields from extended results + extended_results = remove_id_fields(extended_results) + + return {"basic": basic_result, "extended": extended_results} - players_result = await fetch_players_with_clans() + players_data = await fetch_players_basic_and_extended() + players_basic = players_data["basic"] + players_extended = players_data["extended"] # Extract clan tags from player data clan_tags = set() - for player in players_result.get("items", []): + for player in players_basic: if player and player.get("clan") and player["clan"].get("tag"): clan_tag = str(player["clan"]["tag"]) # Ensure string type if clan_tag: # Only add non-empty strings @@ -109,8 +166,8 @@ async def fetch_players_with_clans(): # No clans found, return player data only with proper empty structure war_stats_result = await app_player_war_stats(body) return { - "players": players_result.get("items", []), - "players_basic": players_result.get("items", []), + "players": players_basic, + "players_basic": players_basic, "clans": { "clan_details": {}, "clan_stats": {}, @@ -176,8 +233,8 @@ async def fetch_clan_join_leave_data(input_clan_tags: List[str]) -> Dict[str, An # Structure the response with all required data return { - "players": players_result.get("items", []), - "players_basic": players_result.get("items", []), + "players": players_extended, + "players_basic": players_basic, "clans": { "clan_details": {item.get("tag", ""): item for item in clan_details_result.get("items", []) if item}, "clan_stats": {}, # To do From 68bb3a3aaaf0efcff1632bae33c9852da6000697 Mon Sep 17 00:00:00 2001 From: Destinea Date: Sun, 29 Jun 2025 23:32:26 +0200 Subject: [PATCH 132/174] feat: add api token verification --- routers/v2/accounts/endpoints.py | 40 ++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/routers/v2/accounts/endpoints.py b/routers/v2/accounts/endpoints.py index 87e946e1..6e776c1a 100644 --- a/routers/v2/accounts/endpoints.py +++ b/routers/v2/accounts/endpoints.py @@ -37,6 +37,7 @@ async def add_coc_account(request: CocAccountRequest, user_id: str = Depends(get "user_id": user_id, "player_tag": coc_account_data["tag"], "order_index": order_index, + "is_verified": False, "added_at": pend.now() }) @@ -99,6 +100,7 @@ async def add_coc_account_with_verification(request: CocAccountRequest, user_id: "user_id": user_id, "player_tag": coc_account_data["tag"], "order_index": order_index, + "is_verified": True, # Verified during account addition "added_at": pend.now() }) @@ -190,3 +192,41 @@ async def reorder_coc_accounts(request: dict, user_id: str = Depends(get_current ) return {"message": "Accounts reordered successfully"} + + +@router.post("/users/verify-coc-account", name="Verify ownership of an existing linked Clash of Clans account") +async def verify_coc_account(request: CocAccountRequest, user_id: str = Depends(get_current_user_id)): + """Verify ownership of an existing linked Clash of Clans account using API token.""" + player_tag = request.player_tag + player_token = request.player_token + + if not re.match(r"^#?[A-Z0-9]{5,12}$", player_tag): + raise HTTPException(status_code=400, detail="Invalid Clash of Clans tag format") + + if not player_tag.startswith("#"): + player_tag = f"#{player_tag}" + + if not player_token: + raise HTTPException(status_code=400, detail="Player token is required for verification") + + # Check if the account is linked to this user + existing_account = await db_client.coc_accounts.find_one({"user_id": user_id, "player_tag": player_tag}) + if not existing_account: + raise HTTPException(status_code=404, detail="Clash of Clans account not found or not linked to your profile") + + # Check if already verified + if existing_account.get("is_verified", False): + return {"message": "Account is already verified", "verified": True} + + # Verify ownership using the token + if not await verify_coc_ownership(player_tag, player_token): + raise HTTPException(status_code=403, + detail="Invalid player token. Check your Clash of Clans account settings and try again.") + + # Update verification status in database + await db_client.coc_accounts.update_one( + {"user_id": user_id, "player_tag": player_tag}, + {"$set": {"is_verified": True, "verified_at": pend.now()}} + ) + + return {"message": "Account verified successfully", "verified": True} \ No newline at end of file From 81ca3fb844ea42f4621522ce37bd79ec21e95a3e Mon Sep 17 00:00:00 2001 From: Destinea Date: Mon, 30 Jun 2025 21:54:48 +0200 Subject: [PATCH 133/174] chore: move sentry dsn to backend --- routers/v2/app/endpoints.py | 13 +++++++++++++ utils/config.py | 3 +++ 2 files changed, 16 insertions(+) diff --git a/routers/v2/app/endpoints.py b/routers/v2/app/endpoints.py index c35d74ca..024d7eab 100644 --- a/routers/v2/app/endpoints.py +++ b/routers/v2/app/endpoints.py @@ -12,6 +12,9 @@ from routers.v2.war.models import PlayerWarhitsFilter, ClanWarHitsFilter from utils.utils import fix_tag, remove_id_fields from utils.database import MongoClient as mongo +from utils.config import Config +from fastapi import Depends +from utils.auth_utils import get_current_user # Constants PREPARATION_START_TIME_FIELD = "data.preparationStartTime" @@ -19,6 +22,16 @@ router = APIRouter(prefix="/v2/app", tags=["Mobile App"], include_in_schema=True) +@router.get("/public-config", name="Get public app configuration") +async def get_public_config() -> Dict[str, Any]: + """ + Get non-sensitive configuration values needed by the mobile app. + No authentication required - only returns safe, public config values. + """ + return { + "sentry_dsn": Config.APP_SENTRY_DSN, + } + async def app_player_war_stats(body: PlayerTagsRequest) -> Dict[str, Any]: """Use existing war endpoint with mobile app defaults""" if not body.player_tags: diff --git a/utils/config.py b/utils/config.py index bb68a026..be5153f2 100644 --- a/utils/config.py +++ b/utils/config.py @@ -49,6 +49,9 @@ class Config: DISCORD_REDIRECT_URI = os.getenv('DISCORD_REDIRECT_URI') ENCRYPTION_KEY = os.getenv('ENCRYPTION_KEY') SENTRY_DSN = os.getenv('SENTRY_DSN') + APP_SENTRY_DSN = os.getenv('APP_SENTRY_DSN') + DISCORDCOC_LOGIN = os.getenv('DISCORDCOC_LOGIN') + DISCORDCOC_PASSWORD = os.getenv('DISCORDCOC_PASSWORD') ALGORITHM = "HS256" # Encryption/Decryption/Hashing/Token From c6d813abd0f4250902bb6c771c89dab525af108b Mon Sep 17 00:00:00 2001 From: Destinea Date: Mon, 30 Jun 2025 22:10:12 +0200 Subject: [PATCH 134/174] chore: remove dead import --- routers/v2/app/endpoints.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/routers/v2/app/endpoints.py b/routers/v2/app/endpoints.py index 024d7eab..e108c3a6 100644 --- a/routers/v2/app/endpoints.py +++ b/routers/v2/app/endpoints.py @@ -13,8 +13,6 @@ from utils.utils import fix_tag, remove_id_fields from utils.database import MongoClient as mongo from utils.config import Config -from fastapi import Depends -from utils.auth_utils import get_current_user # Constants PREPARATION_START_TIME_FIELD = "data.preparationStartTime" From 689385205a4003a317e73a4049250fc6eec57666 Mon Sep 17 00:00:00 2001 From: Destinea Date: Wed, 9 Jul 2025 18:42:43 +0200 Subject: [PATCH 135/174] feat: add email verification --- .gitignore | 3 +- example.env | 12 +- main.py | 48 ++++-- requirements.txt | 2 + routers/v2/auth/endpoints.py | 317 +++++++++++++++++++++++++++++------ utils/auth_utils.py | 31 ++++ utils/config.py | 12 +- utils/email_service.py | 187 +++++++++++++++++++++ utils/utils.py | 1 + 9 files changed, 543 insertions(+), 70 deletions(-) create mode 100644 utils/email_service.py diff --git a/.gitignore b/.gitignore index 46f82e46..419bef98 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,5 @@ *.idea .idea/ *pycache* -.venv/ \ No newline at end of file +.venv/ +.claude/* \ No newline at end of file diff --git a/example.env b/example.env index 88d20335..613e32f6 100644 --- a/example.env +++ b/example.env @@ -14,4 +14,14 @@ LINK_API_PW = str INTERNAL_API_TOKEN = str -LOCAL = TRUE \ No newline at end of file +LOCAL = TRUE + +# Email Configuration +SMTP_SERVER = smtp.gmail.com +SMTP_PORT = 587 +SMTP_USERNAME = your_email@gmail.com +SMTP_PASSWORD = your_app_password +SMTP_FROM = your_email@gmail.com +SMTP_STARTTLS = true +SMTP_SSL_TLS = false +FRONTEND_URL = http://localhost:3000 \ No newline at end of file diff --git a/main.py b/main.py index cc960dfa..1c8e83ff 100644 --- a/main.py +++ b/main.py @@ -2,10 +2,9 @@ import logging import uvicorn import importlib.util -import time import sentry_sdk - -from fastapi import FastAPI, Request, HTTPException +from contextlib import asynccontextmanager +from fastapi import FastAPI from fastapi.responses import RedirectResponse from fastapi.staticfiles import StaticFiles from fastapi.openapi.docs import get_swagger_ui_html @@ -13,14 +12,12 @@ from starlette.middleware import Middleware from starlette.middleware.cors import CORSMiddleware from fastapi.middleware.gzip import GZipMiddleware - -from slowapi import Limiter -from slowapi.util import get_ipaddr -from slowapi.middleware import SlowAPIMiddleware from fastapi_cache import FastAPICache from fastapi_cache.backends.inmemory import InMemoryBackend - +from slowapi import Limiter +from slowapi.util import get_ipaddr from utils.utils import config, coc_client +from utils.email_service import create_verification_indexes # Initialize Sentry SDK sentry_sdk.init( @@ -47,10 +44,33 @@ ) ] -app = FastAPI(middleware=middleware) -app.mount("/static", StaticFiles(directory="static"), name="static") - +@asynccontextmanager +async def lifespan(app: FastAPI): + """Application lifespan manager for startup and shutdown tasks.""" + # Startup + try: + FastAPICache.init(InMemoryBackend()) + + # Login COC client with tokens + await coc_client.login_with_tokens('') + + # Create email verification indexes for performance + await create_verification_indexes() + + print("✅ Startup tasks completed successfully") + except Exception as e: + print(f"❌ Startup error: {e}") + sentry_sdk.capture_exception(e, tags={"startup": "failed"}) + + yield + + # Shutdown (if needed in the future) + print("🔄 Application shutting down...") + + +app = FastAPI(middleware=middleware, lifespan=lifespan) +app.mount("/static", StaticFiles(directory="static"), name="static") def include_routers(app, directory, recursive=False): @@ -74,12 +94,6 @@ def include_routers(app, directory, recursive=False): include_routers(app, os.path.join(os.path.dirname(__file__), "routers", "v2"), recursive=True) -@app.on_event("startup") -async def startup_event(): - FastAPICache.init(InMemoryBackend()) - await coc_client.login_with_tokens('') - - @app.get("/", include_in_schema=False, response_class=RedirectResponse) async def docs(): if config.IS_LOCAL: diff --git a/requirements.txt b/requirements.txt index 503d8e6d..ede94264 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,7 +8,9 @@ expiring-dict==1.1.0 fastapi==0.111.0 fastapi-analytics==1.2.1 fastapi-cache2==0.2.1 +fastapi-mail==1.4.1 gunicorn==22.0.0 +jinja2==3.1.2 matplotlib==3.8.2 motor==3.3.2 orjson==3.9.13 diff --git a/routers/v2/auth/endpoints.py b/routers/v2/auth/endpoints.py index 8099d8d7..fe145869 100644 --- a/routers/v2/auth/endpoints.py +++ b/routers/v2/auth/endpoints.py @@ -5,7 +5,9 @@ from slowapi import Limiter from slowapi.util import get_ipaddr from utils.auth_utils import get_valid_discord_access_token, decode_jwt, decode_refresh_token, encrypt_data, generate_jwt, \ - generate_refresh_token, verify_password, hash_password, hash_email, prepare_email_for_storage, decrypt_data + generate_refresh_token, verify_password, hash_password, hash_email, prepare_email_for_storage, decrypt_data, \ + generate_email_verification_token, generate_email_verification_jwt, decode_email_verification_jwt +from utils.email_service import send_verification_email from utils.utils import db_client, generate_custom_id, config from utils.password_validator import PasswordValidator from utils.security_middleware import get_current_user_id @@ -16,6 +18,141 @@ router = APIRouter(prefix="/v2", tags=["App Authentication"], include_in_schema=True) +@router.post("/auth/verify-email", name="Verify email address") +@limiter.limit("10/minute") +async def verify_email(request: Request): + try: + data = await request.json() + token = data.get("token") + + if not token: + raise HTTPException(status_code=400, detail="Verification token is required") + + # Basic token validation before JWT decoding + if not token or len(token.strip()) < 50: + raise HTTPException(status_code=400, detail="Invalid token format") + + if token.count('.') != 2: + raise HTTPException(status_code=400, detail="Invalid token structure") + + # Decode and validate the JWT token + try: + payload = decode_email_verification_jwt(token) + email = payload["sub"] + verification_token = payload["token"] + + # Additional payload validation + if not email or not verification_token: + raise HTTPException(status_code=401, detail="Invalid token payload") + + except HTTPException: + raise + except Exception as e: + sentry_sdk.capture_message(f"JWT decode error in email verification: {str(e)}", level="warning") + raise HTTPException(status_code=401, detail="Invalid verification token") + + # Find the pending verification + pending_verification = await db_client.app_email_verifications.find_one({ + "email_hash": hash_email(email), + "verification_token": verification_token + }) + + if not pending_verification: + raise HTTPException(status_code=401, detail="Invalid or expired verification token") + + # Check if token has expired + if pend.now() > pending_verification["expires_at"]: + await db_client.app_email_verifications.delete_one({"_id": pending_verification["_id"]}) + raise HTTPException(status_code=401, detail="Verification token expired. Please register again.") + + # Get the pending user data + user_data = pending_verification["user_data"] + + # Check if email is already registered (to prevent race conditions) + email_hash = hash_email(email) + existing_user = await db_client.app_users.find_one({"email_hash": email_hash}) + + if existing_user: + # Check if it's a Discord user trying to add email auth + if "discord" in existing_user.get("auth_methods", []) and "email" not in existing_user.get("auth_methods", []): + # Update existing Discord user with email auth + auth_methods = set(existing_user.get("auth_methods", [])) + auth_methods.add("email") + + await db_client.app_users.update_one( + {"user_id": existing_user["user_id"]}, + {"$set": { + "auth_methods": list(auth_methods), + "username": user_data["username"], + "password": user_data["password"], + "email_encrypted": user_data["email_encrypted"], + "email_hash": user_data["email_hash"] + }} + ) + + user_id = existing_user["user_id"] + sentry_sdk.capture_message(f"Email auth added to existing Discord user: {user_id}", level="info") + else: + # Email already registered for email auth or verification already completed + await db_client.app_email_verifications.delete_one({"_id": pending_verification["_id"]}) + raise HTTPException(status_code=400, detail="This email has already been verified. Please try logging in instead.") + else: + # Create new user + user_id = str(generate_custom_id()) + try: + await db_client.app_users.insert_one({ + "_id": int(user_id), + "user_id": user_id, + "email_encrypted": user_data["email_encrypted"], + "email_hash": user_data["email_hash"], + "username": user_data["username"], + "password": user_data["password"], + "auth_methods": ["email"], + "created_at": pend.now() + }) + sentry_sdk.capture_message(f"New user created via email verification: {user_id}", level="info") + except Exception as e: + # If user creation fails, don't clean up verification yet + sentry_sdk.capture_exception(e, tags={"endpoint": "/auth/verify-email", "user_id": user_id}) + raise HTTPException(status_code=500, detail="Failed to create account. Please try again.") + + # Clean up pending verification only after successful account creation/update + await db_client.app_email_verifications.delete_one({"_id": pending_verification["_id"]}) + + # Generate auth tokens + access_token = generate_jwt(str(user_id), user_data["device_id"]) + refresh_token = generate_refresh_token(str(user_id)) + + # Store refresh token + await db_client.app_refresh_tokens.update_one( + {"user_id": str(user_id)}, + { + "$setOnInsert": {"_id": int(user_id)}, + "$set": { + "refresh_token": refresh_token, + "expires_at": pend.now().add(days=30) + } + }, + upsert=True + ) + + return AuthResponse( + access_token=access_token, + refresh_token=refresh_token, + user=UserInfo( + user_id=str(user_id), + username=user_data["username"], + avatar_url="https://clashkingfiles.b-cdn.net/stickers/Troop_HV_Goblin.png" + ) + ) + + except HTTPException: + raise + except Exception as e: + sentry_sdk.capture_exception(e, tags={"endpoint": "/auth/verify-email"}) + raise HTTPException(status_code=500, detail="Internal server error") + + @router.get("/auth/me", name="Get current user information") async def get_current_user_info(user_id: str = Depends(get_current_user_id)): try: @@ -266,7 +403,7 @@ async def refresh_access_token(request: RefreshTokenRequest) -> dict: raise HTTPException(status_code=500, detail="Internal server error") -@router.post("/auth/register", response_model=AuthResponse) +@router.post("/auth/register", name="Register with email (sends verification email)") @limiter.limit("3/minute") async def register_email_user(req: EmailRegisterRequest, request: Request): try: @@ -280,66 +417,146 @@ async def register_email_user(req: EmailRegisterRequest, request: Request): sentry_sdk.capture_message(f"Validation error in registration: {e.detail}", level="warning") raise e - # Prepare email encryption + # Check if email is already registered or has pending verification email_hash = hash_email(req.email) - email_data = await prepare_email_for_storage(req.email) existing_user = await db_client.app_users.find_one({"email_hash": email_hash}) - if existing_user: - user_id = existing_user["user_id"] - auth_methods = set(existing_user.get("auth_methods", [])) - auth_methods.add("email") - - await db_client.app_users.update_one( - {"user_id": user_id}, - {"$set": { - "auth_methods": list(auth_methods), - "username": req.username, - "password": hash_password(req.password), - "email_encrypted": email_data["email_encrypted"], - "email_hash": email_data["email_hash"] - }} - ) - else: - user_id = str(generate_custom_id()) - await db_client.app_users.insert_one({ - "_id": int(user_id), - "user_id": user_id, + + if existing_user and "email" in existing_user.get("auth_methods", []): + # Email already registered for email auth + raise HTTPException(status_code=400, detail="Email already registered. Please try logging in instead.") + + # Check if there's already a pending verification for this email + existing_verification = await db_client.app_email_verifications.find_one({"email_hash": email_hash}) + if existing_verification: + # Check if it's expired + if pend.now() > existing_verification["expires_at"]: + # Clean up expired verification and allow new registration + await db_client.app_email_verifications.delete_one({"_id": existing_verification["_id"]}) + else: + # Still valid - suggest resending instead of registering again + raise HTTPException( + status_code=409, + detail="A verification email was already sent to this address. Please check your email or request a resend." + ) + + # Prepare email encryption and user data + email_data = await prepare_email_for_storage(req.email) + + # Generate verification token + verification_token = generate_email_verification_token() + verification_jwt = generate_email_verification_jwt(req.email, verification_token) + + # Store pending verification with user data + pending_verification = { + "_id": generate_custom_id(), + "email_hash": email_hash, + "verification_token": verification_token, + "user_data": { "email_encrypted": email_data["email_encrypted"], "email_hash": email_data["email_hash"], "username": req.username, "password": hash_password(req.password), - "auth_methods": ["email"], - "created_at": pend.now() - }) - - access_token = generate_jwt(str(user_id), req.device_id) - refresh_token = generate_refresh_token(str(user_id)) - - await db_client.app_refresh_tokens.update_one( - {"user_id": str(user_id)}, - { - "$setOnInsert": {"_id": int(user_id)}, - "$set": { - "refresh_token": refresh_token, - "expires_at": pend.now().add(days=30) - } + "device_id": req.device_id }, - upsert=True - ) + "created_at": pend.now(), + "expires_at": pend.now().add(hours=24) + } + + # Clean up any existing pending verifications for this email + await db_client.app_email_verifications.delete_many({"email_hash": email_hash}) + + # Insert new pending verification + await db_client.app_email_verifications.insert_one(pending_verification) + + # Send verification email + try: + await send_verification_email(req.email, req.username, verification_jwt) + except Exception as e: + # Clean up pending verification if email fails + await db_client.app_email_verifications.delete_one({"_id": pending_verification["_id"]}) + sentry_sdk.capture_exception(e, tags={"endpoint": "/auth/register", "email": req.email}) + raise HTTPException(status_code=500, detail="Failed to send verification email") + + return { + "message": "Verification email sent. Please check your email and click the verification link.", + "verification_token": verification_jwt if config.IS_LOCAL else None # Only show in local dev + } + + except HTTPException: + raise + except Exception as e: + sentry_sdk.capture_exception(e, tags={"endpoint": "/auth/register", "email": req.email}) + raise HTTPException(status_code=500, detail="Internal server error") - return AuthResponse( - access_token=access_token, - refresh_token=refresh_token, - user=UserInfo( - user_id=str(user_id), - username=req.username, - avatar_url="https://clashkingfiles.b-cdn.net/stickers/Troop_HV_Goblin.png" - ) + +@router.post("/auth/resend-verification", name="Resend verification email") +@limiter.limit("3/minute") +async def resend_verification_email(request: Request): + try: + data = await request.json() + email = data.get("email") + + if not email: + raise HTTPException(status_code=400, detail="Email is required") + + # Validate email format + try: + PasswordValidator.validate_email(email) + except HTTPException as e: + sentry_sdk.capture_message(f"Invalid email format in resend verification: {email}", level="warning") + raise e + + email_hash = hash_email(email) + + # Check if there's a pending verification for this email + pending_verification = await db_client.app_email_verifications.find_one({"email_hash": email_hash}) + + if not pending_verification: + # Check if user already exists with this email + existing_user = await db_client.app_users.find_one({"email_hash": email_hash}) + if existing_user and "email" in existing_user.get("auth_methods", []): + raise HTTPException(status_code=400, detail="This email is already verified. Please try logging in instead.") + else: + raise HTTPException(status_code=404, detail="No pending verification found for this email. Please register first.") + + # Check if verification has expired + if pend.now() > pending_verification["expires_at"]: + await db_client.app_email_verifications.delete_one({"_id": pending_verification["_id"]}) + raise HTTPException(status_code=410, detail="Verification expired. Please register again.") + + # Generate new verification token + verification_token = generate_email_verification_token() + verification_jwt = generate_email_verification_jwt(email, verification_token) + + # Update the pending verification with new token + await db_client.app_email_verifications.update_one( + {"_id": pending_verification["_id"]}, + {"$set": { + "verification_token": verification_token, + "created_at": pend.now(), + # Don't extend expiration - keep original 24h window + }} ) + + # Send new verification email + user_data = pending_verification["user_data"] + username = user_data.get("username", "User") + + try: + await send_verification_email(email, username, verification_jwt) + except Exception as e: + sentry_sdk.capture_exception(e, tags={"endpoint": "/auth/resend-verification", "email": email}) + raise HTTPException(status_code=500, detail="Failed to send verification email") + + return { + "message": "Verification email resent successfully. Please check your email.", + "verification_token": verification_jwt if config.IS_LOCAL else None # Only show in local dev + } + except HTTPException: raise except Exception as e: - sentry_sdk.capture_exception(e, tags={"endpoint": "/auth/register", "email": req.email}) + sentry_sdk.capture_exception(e, tags={"endpoint": "/auth/resend-verification"}) raise HTTPException(status_code=500, detail="Internal server error") diff --git a/utils/auth_utils.py b/utils/auth_utils.py index 48c19ef0..f12b7336 100644 --- a/utils/auth_utils.py +++ b/utils/auth_utils.py @@ -2,6 +2,7 @@ import requests import pendulum as pend import hashlib +import secrets from fastapi import HTTPException from utils.utils import db_client, config import base64 @@ -170,3 +171,33 @@ def generate_refresh_token(user_id: str) -> str: "exp": pend.now().add(days=30).int_timestamp } return jwt.encode(payload, config.REFRESH_SECRET, algorithm=config.ALGORITHM) + + +def generate_email_verification_token() -> str: + """Generate a secure random token for email verification.""" + return secrets.token_urlsafe(32) + + +def generate_email_verification_jwt(email: str, token: str) -> str: + """Generate a JWT token for email verification that expires in 24 hours (matches DB record).""" + payload = { + "sub": email, + "token": token, + "type": "email_verification", + "iat": pend.now().int_timestamp, + "exp": pend.now().add(hours=24).int_timestamp + } + return jwt.encode(payload, config.SECRET_KEY, algorithm=config.ALGORITHM) + + +def decode_email_verification_jwt(token: str) -> dict: + """Decode and validate email verification JWT token.""" + try: + payload = jwt.decode(token, config.SECRET_KEY, algorithms=[config.ALGORITHM]) + if payload.get("type") != "email_verification": + raise HTTPException(status_code=401, detail="Invalid token type") + return payload + except jwt.ExpiredSignatureError: + raise HTTPException(status_code=401, detail="Verification token expired") + except jwt.InvalidTokenError: + raise HTTPException(status_code=401, detail="Invalid verification token") diff --git a/utils/config.py b/utils/config.py index be5153f2..1ab8dc7c 100644 --- a/utils/config.py +++ b/utils/config.py @@ -39,7 +39,7 @@ class Config: IS_PROD = ENV == "production" HOST = "localhost" if IS_LOCAL else "0.0.0.0" - PORT = 8010 if IS_LOCAL else (8073 if IS_DEV else 8010) + PORT = 8000 if IS_LOCAL else (8073 if IS_DEV else 8010) RELOAD = IS_LOCAL or IS_DEV SECRET_KEY = os.getenv('SECRET_KEY') @@ -53,6 +53,16 @@ class Config: DISCORDCOC_LOGIN = os.getenv('DISCORDCOC_LOGIN') DISCORDCOC_PASSWORD = os.getenv('DISCORDCOC_PASSWORD') ALGORITHM = "HS256" + + # Email configuration + SMTP_SERVER = os.getenv('SMTP_SERVER', 'smtp.gmail.com') + SMTP_PORT = int(os.getenv('SMTP_PORT', '587')) + SMTP_USERNAME = os.getenv('SMTP_USERNAME') + SMTP_PASSWORD = os.getenv('SMTP_PASSWORD') + SMTP_FROM = os.getenv('SMTP_FROM') + SMTP_STARTTLS = os.getenv('SMTP_STARTTLS', 'true').lower() == 'true' + SMTP_SSL_TLS = os.getenv('SMTP_SSL_TLS', 'false').lower() == 'true' + FRONTEND_URL = os.getenv('FRONTEND_URL', 'http://localhost:3000') # Encryption/Decryption/Hashing/Token cipher = Fernet(ENCRYPTION_KEY) diff --git a/utils/email_service.py b/utils/email_service.py new file mode 100644 index 00000000..faa4638d --- /dev/null +++ b/utils/email_service.py @@ -0,0 +1,187 @@ +from fastapi_mail import FastMail, MessageSchema, ConnectionConfig +from fastapi_mail.errors import ConnectionErrors +from fastapi import HTTPException +import sentry_sdk +from utils.utils import config +from jinja2 import Template +from pathlib import Path +import os + +# Email configuration with validation +def get_email_config(): + """Get email configuration with validation.""" + if not all([config.SMTP_USERNAME, config.SMTP_PASSWORD, config.SMTP_FROM, config.SMTP_SERVER]): + raise ValueError("Missing required SMTP configuration. Check environment variables.") + + return ConnectionConfig( + MAIL_USERNAME=config.SMTP_USERNAME, + MAIL_PASSWORD=config.SMTP_PASSWORD, + MAIL_FROM=config.SMTP_FROM, + MAIL_PORT=config.SMTP_PORT, + MAIL_SERVER=config.SMTP_SERVER, + MAIL_STARTTLS=config.SMTP_STARTTLS, + MAIL_SSL_TLS=config.SMTP_SSL_TLS, + USE_CREDENTIALS=True, + VALIDATE_CERTS=True +) + +# Email template for verification +VERIFICATION_EMAIL_TEMPLATE = """ + + + + + Verify Your Email - ClashKing + + + +
+
+

ClashKing - Email Verification

+
+ +
+

Welcome to ClashKing!

+

Thank you for registering with ClashKing. To complete your registration, please verify your email address by clicking the button below:

+ + + +

If the button doesn't work, you can copy and paste this link into your browser:

+

{{ verification_url }}

+ +

This link will expire in 24 hours.

+ +

If you didn't create an account with ClashKing, please ignore this email.

+
+ + +
+ + +""" + +async def send_verification_email(email: str, username: str, verification_token: str): + """Send email verification email to user.""" + try: + # Create verification URL + verification_url = f"{config.FRONTEND_URL}/verify-email?token={verification_token}" + + # Render email template with auto-escaping for security + template = Template(VERIFICATION_EMAIL_TEMPLATE, autoescape=True) + html_content = template.render( + username=username, + verification_url=verification_url + ) + + # Create message + message = MessageSchema( + subject="Verify Your Email - ClashKing", + recipients=[email], + body=html_content, + subtype="html" + ) + + # Send email with configuration validation + conf = get_email_config() + fm = FastMail(conf) + await fm.send_message(message) + + sentry_sdk.capture_message(f"Verification email sent to {email}", level="info") + + except ConnectionErrors as e: + sentry_sdk.capture_exception(e, tags={"function": "send_verification_email", "email": email}) + raise HTTPException(status_code=500, detail="Failed to send verification email") + except Exception as e: + sentry_sdk.capture_exception(e, tags={"function": "send_verification_email", "email": email}) + raise HTTPException(status_code=500, detail="Internal server error") + + +async def cleanup_expired_verifications(): + """Clean up expired email verification tokens.""" + from utils.utils import db_client + import pendulum as pend + + try: + result = await db_client.app_email_verifications.delete_many({ + "expires_at": {"$lt": pend.now()} + }) + if result.deleted_count > 0: + sentry_sdk.capture_message(f"Cleaned up {result.deleted_count} expired verification tokens", level="info") + return result.deleted_count + except Exception as e: + sentry_sdk.capture_exception(e, tags={"function": "cleanup_expired_verifications"}) + return 0 + + +async def create_verification_indexes(): + """Create necessary database indexes for email verification collection.""" + from utils.utils import db_client + + try: + # Index for fast lookup by email hash (allow duplicates since we clean up manually) + try: + await db_client.app_email_verifications.create_index("email_hash") + except Exception as e: + # Index might already exist, that's okay + sentry_sdk.capture_message(f"Email hash index creation: {str(e)}", level="debug") + + # Index for fast lookup by verification token + try: + await db_client.app_email_verifications.create_index("verification_token") + except Exception as e: + sentry_sdk.capture_message(f"Verification token index creation: {str(e)}", level="debug") + + # TTL index for automatic cleanup of expired documents + try: + await db_client.app_email_verifications.create_index( + "expires_at", + expireAfterSeconds=0 # MongoDB will delete when expires_at < current time + ) + except Exception as e: + sentry_sdk.capture_message(f"TTL index creation: {str(e)}", level="debug") + + sentry_sdk.capture_message("Email verification indexes initialization completed", level="info") + except Exception as e: + # Don't fail startup if index creation fails + sentry_sdk.capture_exception(e, tags={"function": "create_verification_indexes"}) + print(f"⚠️ Index creation warning: {e}") + + +async def get_verification_stats(): + """Get statistics about pending verifications for monitoring.""" + from utils.utils import db_client + import pendulum as pend + + try: + total_pending = await db_client.app_email_verifications.count_documents({}) + expired_count = await db_client.app_email_verifications.count_documents({ + "expires_at": {"$lt": pend.now()} + }) + + return { + "total_pending": total_pending, + "expired_count": expired_count, + "active_count": total_pending - expired_count + } + except Exception as e: + sentry_sdk.capture_exception(e, tags={"function": "get_verification_stats"}) + return {"total_pending": 0, "expired_count": 0, "active_count": 0} \ No newline at end of file diff --git a/utils/utils.py b/utils/utils.py index 25953a70..26eb02c0 100644 --- a/utils/utils.py +++ b/utils/utils.py @@ -118,6 +118,7 @@ def __init__(self): self.app_users: collection_class = self.app.users self.app_discord_tokens: collection_class = self.app.discord_tokens self.app_refresh_tokens: collection_class = self.app.refresh_tokens + self.app_email_verifications: collection_class = self.app.email_verifications self.coc_accounts: collection_class = client.clashking.coc_accounts db_client = DBClient() From be45da94538f6a83385d8426dd5737c0c6eb3150 Mon Sep 17 00:00:00 2001 From: Destinea Date: Wed, 9 Jul 2025 19:23:14 +0200 Subject: [PATCH 136/174] chore: clashking colors in email --- utils/email_service.py | 56 ++++++++++++++++++++++++++++-------------- 1 file changed, 38 insertions(+), 18 deletions(-) diff --git a/utils/email_service.py b/utils/email_service.py index faa4638d..8fab7a50 100644 --- a/utils/email_service.py +++ b/utils/email_service.py @@ -33,20 +33,24 @@ def get_email_config(): Verify Your Email - ClashKing @@ -56,23 +60,33 @@ def get_email_config():
-

Welcome to ClashKing!

-

Thank you for registering with ClashKing. To complete your registration, please verify your email address by clicking the button below:

+

Welcome to ClashKing!

+

Hello {{ username }},

-
- Verify Email Address +

Thank you for joining the ClashKing community! To complete your account registration and start tracking your Clash of Clans progress, please verify your email address.

+ + -

If the button doesn't work, you can copy and paste this link into your browser:

-

{{ verification_url }}

+

This verification link will expire in 24 hours for security purposes.

+ +

If the button above doesn't work, you can copy and paste this link into your browser:

+

{{ verification_url }}

-

This link will expire in 24 hours.

+

What's next? Once verified, you'll be able to:

+
    +
  • Track your Clash of Clans statistics
  • +
  • View detailed clan analytics
  • +
  • Monitor war performance
  • +
  • Access advanced player insights
  • +
-

If you didn't create an account with ClashKing, please ignore this email.

+

If you didn't create an account with ClashKing, please ignore this email or contact us for assistance.

@@ -97,7 +111,13 @@ async def send_verification_email(email: str, username: str, verification_token: subject="Verify Your Email - ClashKing", recipients=[email], body=html_content, - subtype="html" + subtype="html", + headers={ + "X-Priority": "1", + "X-MSMail-Priority": "High", + "List-Unsubscribe": "", + "Reply-To": "noreply@clashk.ing" + } ) # Send email with configuration validation From 0f316c95eb4c8188264659426f36bfe27054ede6 Mon Sep 17 00:00:00 2001 From: Destinea Date: Wed, 9 Jul 2025 23:21:53 +0200 Subject: [PATCH 137/174] chore: clashking redirect page --- main.py | 1 + routers/v2/app_redirect.py | 157 +++++++++++++++++++++++++++++++++++++ utils/email_service.py | 4 +- 3 files changed, 160 insertions(+), 2 deletions(-) create mode 100644 routers/v2/app_redirect.py diff --git a/main.py b/main.py index 1c8e83ff..3f124c85 100644 --- a/main.py +++ b/main.py @@ -102,6 +102,7 @@ async def docs(): return RedirectResponse(f"https://dev-api.clashk.ing/docs") return RedirectResponse(f"https://api.clashk.ing/docs") + @app.get("/openapi/private", include_in_schema=False) async def get_private_openapi(): from fastapi.openapi.utils import get_openapi diff --git a/routers/v2/app_redirect.py b/routers/v2/app_redirect.py new file mode 100644 index 00000000..d23b0453 --- /dev/null +++ b/routers/v2/app_redirect.py @@ -0,0 +1,157 @@ +from fastapi import APIRouter, Request +from fastapi.responses import HTMLResponse, RedirectResponse +from urllib.parse import urlencode + +router = APIRouter() + +@router.get("/app/{path:path}", include_in_schema=False) +async def app_redirect(path: str, request: Request): + """Generic deep link endpoint that redirects to the ClashKing mobile app.""" + + # Build the deep link URL + deep_link = f"clashking://{path}" + + # Add query parameters if any + query_params = request.query_params + if query_params: + deep_link += f"?{urlencode(query_params)}" + + # Page content based on the path + page_configs = { + "verify-email": { + "title": "Email Verification", + "heading": "Email Verification", + "description": "Click the button below to verify your email and open the ClashKing app:", + "button_text": "Verify Email", + "fallback_text": "If the app doesn't open automatically, copy this verification code and paste it in the ClashKing app:", + "show_token": True + }, + "oauth": { + "title": "Authentication", + "heading": "Authentication Complete", + "description": "Click the button below to return to the ClashKing app:", + "button_text": "Open ClashKing App", + "fallback_text": "Authentication completed. Please return to the ClashKing app.", + "show_token": False + } + } + + # Default config for unknown paths + config = page_configs.get(path.split('?')[0], { + "title": "Open ClashKing App", + "heading": "Open ClashKing App", + "description": "Click the button below to open the ClashKing app:", + "button_text": "Open ClashKing App", + "fallback_text": "Please open the ClashKing app to continue.", + "show_token": False + }) + + # Get token from query params if present + token = request.query_params.get("token", "") + + html_content = f""" + + + + + {config['title']} - ClashKing + + + + +
+ +

{config['heading']}

+

{config['description']}

+ + {config['button_text']} + +
+

Don't have the app installed?

+

Download ClashKing from your app store first, then click the button again.

+
+ +
+

Having trouble?

+

{config['fallback_text']}

+ {f'''

+ {token} +

''' if config['show_token'] and token else ''} +
+
+ + + + + """ + + return HTMLResponse(content=html_content) + +@router.get("/verify-email", include_in_schema=False) +async def verify_email_redirect(token: str): + """Legacy endpoint that redirects to the generic app endpoint.""" + return RedirectResponse(url=f"/app/verify-email?token={token}", status_code=301) \ No newline at end of file diff --git a/utils/email_service.py b/utils/email_service.py index 8fab7a50..9b30a778 100644 --- a/utils/email_service.py +++ b/utils/email_service.py @@ -96,8 +96,8 @@ def get_email_config(): async def send_verification_email(email: str, username: str, verification_token: str): """Send email verification email to user.""" try: - # Create verification URL - verification_url = f"{config.FRONTEND_URL}/verify-email?token={verification_token}" + # Create verification URL using the generic app endpoint + verification_url = f"{config.FRONTEND_URL}/app/verify-email?token={verification_token}" # Render email template with auto-escaping for security template = Template(VERIFICATION_EMAIL_TEMPLATE, autoescape=True) From a7939e34f4bceb3739a4b19f62427e9791fb5d5f Mon Sep 17 00:00:00 2001 From: Destinea Date: Wed, 9 Jul 2025 23:35:50 +0200 Subject: [PATCH 138/174] fix: app redirect --- main.py | 2 +- routers/v2/app_redirect.py | 4 ++-- utils/email_service.py | 11 +++++++++-- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/main.py b/main.py index 3f124c85..c38d7e8d 100644 --- a/main.py +++ b/main.py @@ -99,7 +99,7 @@ async def docs(): if config.IS_LOCAL: return RedirectResponse(f"http://localhost:8000/docs") if config.IS_DEV: - return RedirectResponse(f"https://dev-api.clashk.ing/docs") + return RedirectResponse(f"https://dev.api.clashk.ing/docs") return RedirectResponse(f"https://api.clashk.ing/docs") diff --git a/routers/v2/app_redirect.py b/routers/v2/app_redirect.py index d23b0453..15138e75 100644 --- a/routers/v2/app_redirect.py +++ b/routers/v2/app_redirect.py @@ -2,9 +2,9 @@ from fastapi.responses import HTMLResponse, RedirectResponse from urllib.parse import urlencode -router = APIRouter() +router = APIRouter(prefix="app", tags=["App Redirect"], include_in_schema=False) -@router.get("/app/{path:path}", include_in_schema=False) +@router.get("/{path:path}", include_in_schema=False) async def app_redirect(path: str, request: Request): """Generic deep link endpoint that redirects to the ClashKing mobile app.""" diff --git a/utils/email_service.py b/utils/email_service.py index 9b30a778..05804e52 100644 --- a/utils/email_service.py +++ b/utils/email_service.py @@ -96,8 +96,15 @@ def get_email_config(): async def send_verification_email(email: str, username: str, verification_token: str): """Send email verification email to user.""" try: - # Create verification URL using the generic app endpoint - verification_url = f"{config.FRONTEND_URL}/app/verify-email?token={verification_token}" + # Create verification URL using the same logic as the docs endpoint + if config.IS_LOCAL: + base_url = "http://localhost:8000" + elif config.IS_DEV: + base_url = "https://dev.api.clashk.ing" + else: + base_url = "https://api.clashk.ing" + + verification_url = f"{base_url}/app/verify-email?token={verification_token}" # Render email template with auto-escaping for security template = Template(VERIFICATION_EMAIL_TEMPLATE, autoescape=True) From c9a1a7a9c5728b1fd38cf983ce5df50b7bcf1884 Mon Sep 17 00:00:00 2001 From: Destinea Date: Wed, 9 Jul 2025 23:41:59 +0200 Subject: [PATCH 139/174] fix: app redirect --- routers/v2/app/endpoints.py | 159 +++++++++++++++++++++++++++++++++++- routers/v2/app_redirect.py | 157 ----------------------------------- utils/email_service.py | 2 +- 3 files changed, 159 insertions(+), 159 deletions(-) delete mode 100644 routers/v2/app_redirect.py diff --git a/routers/v2/app/endpoints.py b/routers/v2/app/endpoints.py index e108c3a6..b07ceef0 100644 --- a/routers/v2/app/endpoints.py +++ b/routers/v2/app/endpoints.py @@ -1,8 +1,11 @@ import asyncio from typing import Any, Dict, List +from urllib.parse import urlencode + import aiohttp import pendulum as pend from fastapi import HTTPException, APIRouter, Request +from starlette.responses import HTMLResponse, RedirectResponse from routers.v2.clan.endpoints import get_clans_stats, get_clans_capital_raids from routers.v2.clan.models import ClanTagsRequest, RaidsRequest @@ -262,4 +265,158 @@ async def fetch_clan_join_leave_data(input_clan_tags: List[str]) -> Dict[str, An "total_clans": len(clan_tags_list), "fetch_time": "endpoint_calls" } - } \ No newline at end of file + } + + +@router.get("/{path:path}", include_in_schema=False) +async def app_redirect(path: str, request: Request): + """Generic deep link endpoint that redirects to the ClashKing mobile app.""" + + # Build the deep link URL + deep_link = f"clashking://{path}" + + # Add query parameters if any + query_params = request.query_params + if query_params: + deep_link += f"?{urlencode(query_params)}" + + # Page content based on the path + page_configs = { + "verify-email": { + "title": "Email Verification", + "heading": "Email Verification", + "description": "Click the button below to verify your email and open the ClashKing app:", + "button_text": "Verify Email", + "fallback_text": "If the app doesn't open automatically, copy this verification code and paste it in the ClashKing app:", + "show_token": True + }, + "oauth": { + "title": "Authentication", + "heading": "Authentication Complete", + "description": "Click the button below to return to the ClashKing app:", + "button_text": "Open ClashKing App", + "fallback_text": "Authentication completed. Please return to the ClashKing app.", + "show_token": False + } + } + + # Default config for unknown paths + config = page_configs.get(path.split('?')[0], { + "title": "Open ClashKing App", + "heading": "Open ClashKing App", + "description": "Click the button below to open the ClashKing app:", + "button_text": "Open ClashKing App", + "fallback_text": "Please open the ClashKing app to continue.", + "show_token": False + }) + + # Get token from query params if present + token = request.query_params.get("token", "") + + html_content = f""" + + + + + {config['title']} - ClashKing + + + + +
+ +

{config['heading']}

+

{config['description']}

+ + {config['button_text']} + +
+

Don't have the app installed?

+

Download ClashKing from your app store first, then click the button again.

+
+ +
+

Having trouble?

+

{config['fallback_text']}

+ {f'''

+ {token} +

''' if config['show_token'] and token else ''} +
+
+ + + + + """ + + return HTMLResponse(content=html_content) + + +@router.get("/verify-email", include_in_schema=False) +async def verify_email_redirect(token: str): + """Legacy endpoint that redirects to the generic app endpoint.""" + return RedirectResponse(url=f"/app/verify-email?token={token}", status_code=301) \ No newline at end of file diff --git a/routers/v2/app_redirect.py b/routers/v2/app_redirect.py deleted file mode 100644 index 15138e75..00000000 --- a/routers/v2/app_redirect.py +++ /dev/null @@ -1,157 +0,0 @@ -from fastapi import APIRouter, Request -from fastapi.responses import HTMLResponse, RedirectResponse -from urllib.parse import urlencode - -router = APIRouter(prefix="app", tags=["App Redirect"], include_in_schema=False) - -@router.get("/{path:path}", include_in_schema=False) -async def app_redirect(path: str, request: Request): - """Generic deep link endpoint that redirects to the ClashKing mobile app.""" - - # Build the deep link URL - deep_link = f"clashking://{path}" - - # Add query parameters if any - query_params = request.query_params - if query_params: - deep_link += f"?{urlencode(query_params)}" - - # Page content based on the path - page_configs = { - "verify-email": { - "title": "Email Verification", - "heading": "Email Verification", - "description": "Click the button below to verify your email and open the ClashKing app:", - "button_text": "Verify Email", - "fallback_text": "If the app doesn't open automatically, copy this verification code and paste it in the ClashKing app:", - "show_token": True - }, - "oauth": { - "title": "Authentication", - "heading": "Authentication Complete", - "description": "Click the button below to return to the ClashKing app:", - "button_text": "Open ClashKing App", - "fallback_text": "Authentication completed. Please return to the ClashKing app.", - "show_token": False - } - } - - # Default config for unknown paths - config = page_configs.get(path.split('?')[0], { - "title": "Open ClashKing App", - "heading": "Open ClashKing App", - "description": "Click the button below to open the ClashKing app:", - "button_text": "Open ClashKing App", - "fallback_text": "Please open the ClashKing app to continue.", - "show_token": False - }) - - # Get token from query params if present - token = request.query_params.get("token", "") - - html_content = f""" - - - - - {config['title']} - ClashKing - - - - -
- -

{config['heading']}

-

{config['description']}

- - {config['button_text']} - -
-

Don't have the app installed?

-

Download ClashKing from your app store first, then click the button again.

-
- -
-

Having trouble?

-

{config['fallback_text']}

- {f'''

- {token} -

''' if config['show_token'] and token else ''} -
-
- - - - - """ - - return HTMLResponse(content=html_content) - -@router.get("/verify-email", include_in_schema=False) -async def verify_email_redirect(token: str): - """Legacy endpoint that redirects to the generic app endpoint.""" - return RedirectResponse(url=f"/app/verify-email?token={token}", status_code=301) \ No newline at end of file diff --git a/utils/email_service.py b/utils/email_service.py index 05804e52..963cac10 100644 --- a/utils/email_service.py +++ b/utils/email_service.py @@ -104,7 +104,7 @@ async def send_verification_email(email: str, username: str, verification_token: else: base_url = "https://api.clashk.ing" - verification_url = f"{base_url}/app/verify-email?token={verification_token}" + verification_url = f"{base_url}/v2/app/verify-email?token={verification_token}" # Render email template with auto-escaping for security template = Template(VERIFICATION_EMAIL_TEMPLATE, autoescape=True) From 079356342e278366d9e6b0147aa0bb2f2ac9760f Mon Sep 17 00:00:00 2001 From: Destinea Date: Thu, 10 Jul 2025 08:23:57 +0200 Subject: [PATCH 140/174] feat: switch email auth to 6 digit code --- .github/workflows/dev-image-builder.yml | 98 +- .github/workflows/prod-image-builder.yml | 102 +- .gitignore | 14 +- Dockerfile | 60 +- README.md | 76 +- assets/json/builder_league.json | 342 +- assets/json/buildings.json | 40686 +- assets/json/hero_equipment.json | 10456 +- assets/json/heroes.json | 51942 +-- assets/json/pets.json | 10188 +- assets/json/spells.json | 8290 +- assets/json/supers.json | 322 +- assets/json/townhalls.json | 1794 +- assets/json/translations.json | 43870 +- assets/json/troops.json | 77902 ++-- example.env | 52 +- main.py | 314 +- models/clan.py | 24 +- package.json | 22 +- requirements.txt | 72 +- routers/v1/capital.py | 304 +- routers/v1/clan.py | 270 +- routers/v1/game_data.py | 56 +- routers/v1/giveaway.py | 582 +- routers/v1/global_data.py | 228 +- routers/v1/helper.py | 2 +- routers/v1/internal.py | 344 +- routers/v1/leaderboards.py | 156 +- routers/v1/leagues.py | 72 +- routers/v1/legends.py | 136 +- routers/v1/list.py | 84 +- routers/v1/player.py | 1174 +- routers/v1/ranking.py | 128 +- routers/v1/redirect.py | 52 +- routers/v1/rosters.py | 318 +- routers/v1/server_info.py | 64 +- routers/v1/stats.py | 1684 +- routers/v1/test.py | 342 +- routers/v1/tickets.py | 436 +- routers/v1/utility.py | 462 +- routers/v1/war.py | 344 +- routers/v2/accounts/endpoints.py | 462 +- routers/v2/accounts/utils.py | 72 +- routers/v2/app/endpoints.py | 842 +- routers/v2/auth/endpoints.py | 1461 +- routers/v2/auth/models.py | 66 +- routers/v2/bans/endpoints.py | 160 +- routers/v2/bans/models.py | 10 +- routers/v2/clan/endpoints.py | 776 +- routers/v2/clan/models.py | 92 +- routers/v2/clan/utils.py | 588 +- routers/v2/clan_settings.py | 32 +- routers/v2/dates/endpoints.py | 130 +- routers/v2/legends.py | 300 +- routers/v2/link/endpoints.py | 56 +- routers/v2/pl.py | 170 +- routers/v2/player/endpoints.py | 898 +- routers/v2/player/models.py | 16 +- routers/v2/player/utils.py | 734 +- routers/v2/raid/endpoints.py | 30 +- routers/v2/rosters.py | 160 +- routers/v2/search/endpoints.py | 424 +- routers/v2/server/endpoints.py | 148 +- routers/v2/server/models.py | 18 +- routers/v2/tracking.py | 86 +- routers/v2/war/endpoints.py | 1380 +- routers/v2/war/models.py | 70 +- routers/v2/war/utils.py | 1786 +- static/custom.css | 530 +- static/main.js | 124 +- static/output.css | 364956 ++++++++-------- static/tailwind.css | 6 +- templates/giveaways/giveaway_create.html | 1326 +- templates/giveaways/giveaway_edit.html | 1302 +- templates/giveaways/giveaways_dashboard.html | 538 +- templates/index.html | 542 +- templates/roster.html | 224 +- templates/tickets.html | 812 +- templates/war.html | 760 +- utils/auth_utils.py | 386 +- utils/config.py | 144 +- utils/database.py | 214 +- utils/email_service.py | 418 +- utils/password_validator.py | 242 +- utils/security_middleware.py | 120 +- utils/time.py | 410 +- utils/utils.py | 816 +- 87 files changed, 319327 insertions(+), 319374 deletions(-) diff --git a/.github/workflows/dev-image-builder.yml b/.github/workflows/dev-image-builder.yml index 0e3a425a..b47c58f7 100644 --- a/.github/workflows/dev-image-builder.yml +++ b/.github/workflows/dev-image-builder.yml @@ -1,49 +1,49 @@ -name: Dev API Image Builder - -on: - pull_request: - branches: - - master - types: - - opened - - synchronize - - reopened - workflow_dispatch: - -jobs: - build: - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v3 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Log in to GitHub Container Registry - uses: docker/login-action@v2 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GH_TOKEN }} - - - name: Set environment variables - run: | - echo "APP_ENV=development" >> $GITHUB_ENV - echo "IMAGE_NAME=ghcr.io/clashkinginc/clashkingapi-dev" >> $GITHUB_ENV - - - name: Sanitize branch name - id: sanitize - run: echo "SANITIZED_BRANCH=$(echo '${{ github.event.pull_request.head.ref }}' | sed 's/[^a-zA-Z0-9_.-]/-/g')" >> $GITHUB_ENV - - - name: Build and push Docker image - uses: docker/build-push-action@v5 - with: - context: . - push: true - tags: | - ${{ env.IMAGE_NAME }}:${{ env.SANITIZED_BRANCH }} - ${{ env.IMAGE_NAME }}:latest - build-args: APP_ENV=${{ env.APP_ENV }} - +name: Dev API Image Builder + +on: + pull_request: + branches: + - master + types: + - opened + - synchronize + - reopened + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to GitHub Container Registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GH_TOKEN }} + + - name: Set environment variables + run: | + echo "APP_ENV=development" >> $GITHUB_ENV + echo "IMAGE_NAME=ghcr.io/clashkinginc/clashkingapi-dev" >> $GITHUB_ENV + + - name: Sanitize branch name + id: sanitize + run: echo "SANITIZED_BRANCH=$(echo '${{ github.event.pull_request.head.ref }}' | sed 's/[^a-zA-Z0-9_.-]/-/g')" >> $GITHUB_ENV + + - name: Build and push Docker image + uses: docker/build-push-action@v5 + with: + context: . + push: true + tags: | + ${{ env.IMAGE_NAME }}:${{ env.SANITIZED_BRANCH }} + ${{ env.IMAGE_NAME }}:latest + build-args: APP_ENV=${{ env.APP_ENV }} + diff --git a/.github/workflows/prod-image-builder.yml b/.github/workflows/prod-image-builder.yml index e049c2fc..7b0aa09b 100644 --- a/.github/workflows/prod-image-builder.yml +++ b/.github/workflows/prod-image-builder.yml @@ -1,51 +1,51 @@ -name: Production API Image Builder - -on: - push: - branches: - - master # Trigger only on push to master - workflow_dispatch: - -jobs: - build: - runs-on: ubuntu-latest - - steps: - - name: Checkout code - uses: actions/checkout@v3 - with: - ref: ${{ github.ref_name }} # Automatically checkout the triggering branch - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Log in to GitHub Container Registry - uses: docker/login-action@v2 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GH_TOKEN }} - - - name: Set environment variables - run: | - echo "APP_ENV=production" >> $GITHUB_ENV - echo "IMAGE_NAME=ghcr.io/clashkinginc/clashkingapi" >> $GITHUB_ENV - - - name: Sanitize branch name - id: sanitize - run: echo "SANITIZED_BRANCH=$(echo '${{ github.event.pull_request.head.ref }}' | sed 's/[^a-zA-Z0-9_.-]/-/g')" >> $GITHUB_ENV - - - name: Build and push Docker image - uses: docker/build-push-action@v5 - with: - context: . - push: true - tags: | - ${{ env.IMAGE_NAME }}:latest - ${{ env.IMAGE_NAME }}:${{ github.sha }} - build-args: APP_ENV=${{ env.APP_ENV }} - - - name: Verify pushed images - run: | - echo "Pushed image: ${{ env.IMAGE_NAME }}:latest" - echo "Pushed image: ${{ env.IMAGE_NAME }}:${{ github.sha }}" +name: Production API Image Builder + +on: + push: + branches: + - master # Trigger only on push to master + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + with: + ref: ${{ github.ref_name }} # Automatically checkout the triggering branch + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to GitHub Container Registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GH_TOKEN }} + + - name: Set environment variables + run: | + echo "APP_ENV=production" >> $GITHUB_ENV + echo "IMAGE_NAME=ghcr.io/clashkinginc/clashkingapi" >> $GITHUB_ENV + + - name: Sanitize branch name + id: sanitize + run: echo "SANITIZED_BRANCH=$(echo '${{ github.event.pull_request.head.ref }}' | sed 's/[^a-zA-Z0-9_.-]/-/g')" >> $GITHUB_ENV + + - name: Build and push Docker image + uses: docker/build-push-action@v5 + with: + context: . + push: true + tags: | + ${{ env.IMAGE_NAME }}:latest + ${{ env.IMAGE_NAME }}:${{ github.sha }} + build-args: APP_ENV=${{ env.APP_ENV }} + + - name: Verify pushed images + run: | + echo "Pushed image: ${{ env.IMAGE_NAME }}:latest" + echo "Pushed image: ${{ env.IMAGE_NAME }}:${{ github.sha }}" diff --git a/.gitignore b/.gitignore index 419bef98..8a2ecb50 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,8 @@ -# created by virtualenv automatically -.env -*.xml -*.idea -.idea/ -*pycache* -.venv/ +# created by virtualenv automatically +.env +*.xml +*.idea +.idea/ +*pycache* +.venv/ .claude/* \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 80ded327..36ca320f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,30 +1,30 @@ -# Use the official Python 3.11 image -FROM python:3.11-bookworm - -# Metadata labels for the image -LABEL org.opencontainers.image.source="https://github.com/ClashKingInc/ClashKingAPI" -LABEL org.opencontainers.image.description="Image for the ClashKing API" -LABEL org.opencontainers.image.licenses="MIT" - -# Install system dependencies -RUN apt-get update && apt-get install -y libsnappy-dev - -# Set the working directory -WORKDIR /app - -# Copy and install Python dependencies -COPY requirements.txt . -RUN pip install --no-cache-dir -r requirements.txt - -# Copy application files -COPY . . - -# Define the environment variable for auth mode (default to development) -ARG APP_ENV=development -ENV APP_ENV=${APP_ENV} - -# Expose the ports used by different environments -EXPOSE 6000 8073 8010 - -# Dynamically set the correct port based on APP_ENV -CMD ["sh", "-c", "python main.py --port=$( [ \"$APP_ENV\" = \"development\" ] && echo 8073 || ( [ \"$APP_ENV\" = \"local\" ] && echo 8000 || echo 8010 ) )"] +# Use the official Python 3.11 image +FROM python:3.11-bookworm + +# Metadata labels for the image +LABEL org.opencontainers.image.source="https://github.com/ClashKingInc/ClashKingAPI" +LABEL org.opencontainers.image.description="Image for the ClashKing API" +LABEL org.opencontainers.image.licenses="MIT" + +# Install system dependencies +RUN apt-get update && apt-get install -y libsnappy-dev + +# Set the working directory +WORKDIR /app + +# Copy and install Python dependencies +COPY requirements.txt . +RUN pip install --no-cache-dir -r requirements.txt + +# Copy application files +COPY . . + +# Define the environment variable for auth mode (default to development) +ARG APP_ENV=development +ENV APP_ENV=${APP_ENV} + +# Expose the ports used by different environments +EXPOSE 6000 8073 8010 + +# Dynamically set the correct port based on APP_ENV +CMD ["sh", "-c", "python main.py --port=$( [ \"$APP_ENV\" = \"development\" ] && echo 8073 || ( [ \"$APP_ENV\" = \"local\" ] && echo 8000 || echo 8010 ) )"] diff --git a/README.md b/README.md index a6cc9088..0a48548f 100644 --- a/README.md +++ b/README.md @@ -1,38 +1,38 @@ -# ClashKing API (api.clashk.ing) - -Welcome to the [ClashKing API](https://api.clashk.ing)! This is a public API designed to provide extra & historical **Clash of Clans** data for others. ---- - -## Key -- **Public Access**: No authentication required. -- **No Rate Limits**: Fetch data freely, but please use responsibly. -- **Cloudflare**: Cached & Protected by. -- **Infra**: Backed by three instances with a load balancer. -- **Caching**: Responses are cached for 5 minutes. - -### Respecting Data and Credit -Due to the resource-intensive nature of this data - it requires considerable CPU, Storage, Internet Bandwidth, and in turn cost, please: -1. **Credit the source**: We ask you to credit the ClashKing API where this data is used to ensure clarity and fairness. -2. **No impression of self-collection**: Do not create the impression that your application collects this data independently. - -There is no strict requirement for credit format, but we appreciate a visible mention or link to [ClashKing](https://clashk.ing) in your project. - ---- - -## Collaboration and Standards - -The ClashKing API is open to contributions! You can suggest new features, fixes, or updates. Contributions should follow proper formatting and standards. - ---- - -## Assets - -ClashKing also hosts a public CDN for Clash of Clans assets at **assets.clashk.ing**. These include game icons, images, and other resources. For more details, visit the [ClashKingAssets repository](https://github.com/ClashKingInc/ClashKingAssets). - ---- - -## Notice - -This project is **not affiliated with, endorsed, sponsored, or specifically approved by Supercell**. For more information, see [Supercell’s Fan Content Policy](https://supercell.com/en/fan-content-policy/). - -By using this API, you agree to use it responsibly and in compliance with Supercell’s Terms of Service and Fan Content Policy. +# ClashKing API (api.clashk.ing) + +Welcome to the [ClashKing API](https://api.clashk.ing)! This is a public API designed to provide extra & historical **Clash of Clans** data for others. +--- + +## Key +- **Public Access**: No authentication required. +- **No Rate Limits**: Fetch data freely, but please use responsibly. +- **Cloudflare**: Cached & Protected by. +- **Infra**: Backed by three instances with a load balancer. +- **Caching**: Responses are cached for 5 minutes. + +### Respecting Data and Credit +Due to the resource-intensive nature of this data - it requires considerable CPU, Storage, Internet Bandwidth, and in turn cost, please: +1. **Credit the source**: We ask you to credit the ClashKing API where this data is used to ensure clarity and fairness. +2. **No impression of self-collection**: Do not create the impression that your application collects this data independently. + +There is no strict requirement for credit format, but we appreciate a visible mention or link to [ClashKing](https://clashk.ing) in your project. + +--- + +## Collaboration and Standards + +The ClashKing API is open to contributions! You can suggest new features, fixes, or updates. Contributions should follow proper formatting and standards. + +--- + +## Assets + +ClashKing also hosts a public CDN for Clash of Clans assets at **assets.clashk.ing**. These include game icons, images, and other resources. For more details, visit the [ClashKingAssets repository](https://github.com/ClashKingInc/ClashKingAssets). + +--- + +## Notice + +This project is **not affiliated with, endorsed, sponsored, or specifically approved by Supercell**. For more information, see [Supercell’s Fan Content Policy](https://supercell.com/en/fan-content-policy/). + +By using this API, you agree to use it responsibly and in compliance with Supercell’s Terms of Service and Fan Content Policy. diff --git a/assets/json/builder_league.json b/assets/json/builder_league.json index 7907bd66..dc13fe0c 100644 --- a/assets/json/builder_league.json +++ b/assets/json/builder_league.json @@ -1,172 +1,172 @@ -{ - "items": [ - { - "id": 44000000, - "name": "Wood League V" - }, - { - "id": 44000001, - "name": "Wood League IV" - }, - { - "id": 44000002, - "name": "Wood League III" - }, - { - "id": 44000003, - "name": "Wood League II" - }, - { - "id": 44000004, - "name": "Wood League I" - }, - { - "id": 44000005, - "name": "Clay League V" - }, - { - "id": 44000006, - "name": "Clay League IV" - }, - { - "id": 44000007, - "name": "Clay League III" - }, - { - "id": 44000008, - "name": "Clay League II" - }, - { - "id": 44000009, - "name": "Clay League I" - }, - { - "id": 44000010, - "name": "Stone League V" - }, - { - "id": 44000011, - "name": "Stone League IV" - }, - { - "id": 44000012, - "name": "Stone League III" - }, - { - "id": 44000013, - "name": "Stone League II" - }, - { - "id": 44000014, - "name": "Stone League I" - }, - { - "id": 44000015, - "name": "Copper League V" - }, - { - "id": 44000016, - "name": "Copper League IV" - }, - { - "id": 44000017, - "name": "Copper League III" - }, - { - "id": 44000018, - "name": "Copper League II" - }, - { - "id": 44000019, - "name": "Copper League I" - }, - { - "id": 44000020, - "name": "Brass League III" - }, - { - "id": 44000021, - "name": "Brass League II" - }, - { - "id": 44000022, - "name": "Brass League I" - }, - { - "id": 44000023, - "name": "Iron League III" - }, - { - "id": 44000024, - "name": "Iron League II" - }, - { - "id": 44000025, - "name": "Iron League I" - }, - { - "id": 44000026, - "name": "Steel League III" - }, - { - "id": 44000027, - "name": "Steel League II" - }, - { - "id": 44000028, - "name": "Steel League I" - }, - { - "id": 44000029, - "name": "Titanium League III" - }, - { - "id": 44000030, - "name": "Titanium League II" - }, - { - "id": 44000031, - "name": "Titanium League I" - }, - { - "id": 44000032, - "name": "Platinum League III" - }, - { - "id": 44000033, - "name": "Platinum League II" - }, - { - "id": 44000034, - "name": "Platinum League I" - }, - { - "id": 44000035, - "name": "Emerald League III" - }, - { - "id": 44000036, - "name": "Emerald League II" - }, - { - "id": 44000037, - "name": "Emerald League I" - }, - { - "id": 44000038, - "name": "Ruby League III" - }, - { - "id": 44000039, - "name": "Ruby League II" - }, - { - "id": 44000040, - "name": "Ruby League I" - }, - { - "id": 44000041, - "name": "Diamond League" - } - ] +{ + "items": [ + { + "id": 44000000, + "name": "Wood League V" + }, + { + "id": 44000001, + "name": "Wood League IV" + }, + { + "id": 44000002, + "name": "Wood League III" + }, + { + "id": 44000003, + "name": "Wood League II" + }, + { + "id": 44000004, + "name": "Wood League I" + }, + { + "id": 44000005, + "name": "Clay League V" + }, + { + "id": 44000006, + "name": "Clay League IV" + }, + { + "id": 44000007, + "name": "Clay League III" + }, + { + "id": 44000008, + "name": "Clay League II" + }, + { + "id": 44000009, + "name": "Clay League I" + }, + { + "id": 44000010, + "name": "Stone League V" + }, + { + "id": 44000011, + "name": "Stone League IV" + }, + { + "id": 44000012, + "name": "Stone League III" + }, + { + "id": 44000013, + "name": "Stone League II" + }, + { + "id": 44000014, + "name": "Stone League I" + }, + { + "id": 44000015, + "name": "Copper League V" + }, + { + "id": 44000016, + "name": "Copper League IV" + }, + { + "id": 44000017, + "name": "Copper League III" + }, + { + "id": 44000018, + "name": "Copper League II" + }, + { + "id": 44000019, + "name": "Copper League I" + }, + { + "id": 44000020, + "name": "Brass League III" + }, + { + "id": 44000021, + "name": "Brass League II" + }, + { + "id": 44000022, + "name": "Brass League I" + }, + { + "id": 44000023, + "name": "Iron League III" + }, + { + "id": 44000024, + "name": "Iron League II" + }, + { + "id": 44000025, + "name": "Iron League I" + }, + { + "id": 44000026, + "name": "Steel League III" + }, + { + "id": 44000027, + "name": "Steel League II" + }, + { + "id": 44000028, + "name": "Steel League I" + }, + { + "id": 44000029, + "name": "Titanium League III" + }, + { + "id": 44000030, + "name": "Titanium League II" + }, + { + "id": 44000031, + "name": "Titanium League I" + }, + { + "id": 44000032, + "name": "Platinum League III" + }, + { + "id": 44000033, + "name": "Platinum League II" + }, + { + "id": 44000034, + "name": "Platinum League I" + }, + { + "id": 44000035, + "name": "Emerald League III" + }, + { + "id": 44000036, + "name": "Emerald League II" + }, + { + "id": 44000037, + "name": "Emerald League I" + }, + { + "id": 44000038, + "name": "Ruby League III" + }, + { + "id": 44000039, + "name": "Ruby League II" + }, + { + "id": 44000040, + "name": "Ruby League I" + }, + { + "id": 44000041, + "name": "Diamond League" + } + ] } \ No newline at end of file diff --git a/assets/json/buildings.json b/assets/json/buildings.json index 4f7cde42..3e67a572 100644 --- a/assets/json/buildings.json +++ b/assets/json/buildings.json @@ -1,20344 +1,20344 @@ -{ - "Army Camp": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_HOUSING", - "InfoTID": "TID_HOUSING2_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings2.sc", - "ExportName": "adv_fireplace_lvl1_3x3", - "ExportNameConstruction": "basic_turret_const", - "ExportNameLocked": "adv_fireplace_broken_3x3", - "BuildResource": "Elixir2", - "BuildCost": 0, - "TownHallLevel": 1, - "CapitalHallLevel": 1, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "ArmySlotType": "Normal", - "Hitpoints": 300, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3s_pit_none", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "adv_fireplace_lvl1_base", - "PickUpEffect": "Troop Housing Pickup", - "PlacingEffect": "Troop Housing Placing", - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 750 - } - }, - "Town Hall": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_TOWN_HALL", - "InfoTID": "TID_TOWN_HALL_INFO", - "BuildingClass": "Town Hall", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "town_hall_lvl1", - "ExportNameNpc": "goblin_townhall_lvl1", - "ExportNameConstruction": "town_hall_const", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 0, - "TownHallLevel": 0, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "MaxStoredGold": 1000, - "MaxStoredElixir": 1000, - "MaxStoredDarkElixir": 2500, - "PercentageStoredDarkElixir": 20, - "LootOnDestruction": true, - "Hitpoints": 450, - "RegenTime": 20, - "DestroyEffect": "Town Hall Destroyed", - "ExportNameDamaged": "destroyedBuilding_4m_base_woodpanel_yellow", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "townhall_base", - "PickUpEffect": "Town Hall Pickup", - "PlacingEffect": "Town Hall Placing", - "DestructionXP": 1, - "StartingHomeCount": 1, - "IsRed": true, - "ActivateCombatOnDamageTaken": 1, - "ActivatedCombatAddBuildingClass": "Defense", - "CombatActivationDelay": 500, - "Weapon": "Townhall12", - "HintPriority": 100, - "PreviewScenario": "NoCombatBuilding" - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_TOWN_HALL", - "InfoTID": "TID_TOWN_HALL_INFO", - "BuildingClass": "Town Hall", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "town_hall_lvl2", - "ExportNameNpc": "goblin_townhall_lvl1", - "ExportNameConstruction": "town_hall_const", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 10, - "BuildResource": "Gold", - "BuildCost": 1000, - "TownHallLevel": 1, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "MaxStoredGold": 2500, - "MaxStoredElixir": 2500, - "MaxStoredDarkElixir": 5000, - "PercentageStoredDarkElixir": 20, - "LootOnDestruction": true, - "Hitpoints": 1600, - "RegenTime": 21, - "DestroyEffect": "Town Hall Destroyed", - "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "townhall_base", - "PickUpEffect": "Town Hall Pickup", - "PlacingEffect": "Town Hall Placing", - "DestructionXP": 2, - "StartingHomeCount": 1, - "IsRed": true, - "ActivateCombatOnDamageTaken": 1, - "ActivatedCombatAddBuildingClass": "Defense", - "CombatActivationDelay": 500, - "Weapon": "Townhall13", - "HintPriority": 100, - "PreviewScenario": "NoCombatBuilding" - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_TOWN_HALL", - "InfoTID": "TID_TOWN_HALL_INFO", - "BuildingClass": "Town Hall", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "town_hall_lvl3", - "ExportNameNpc": "goblin_townhall_lvl1", - "ExportNameConstruction": "town_hall_const", - "BuildTimeD": 0, - "BuildTimeH": 1, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 4000, - "TownHallLevel": 2, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "MaxStoredGold": 10000, - "MaxStoredElixir": 10000, - "MaxStoredDarkElixir": 10000, - "PercentageStoredDarkElixir": 20, - "LootOnDestruction": true, - "Hitpoints": 1850, - "RegenTime": 22, - "DestroyEffect": "Town Hall Destroyed", - "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "townhall_base", - "PickUpEffect": "Town Hall Pickup", - "PlacingEffect": "Town Hall Placing", - "DestructionXP": 3, - "StartingHomeCount": 1, - "IsRed": true, - "ActivateCombatOnDamageTaken": 1, - "ActivatedCombatAddBuildingClass": "Defense", - "CombatActivationDelay": 500, - "Weapon": "Townhall14", - "HintPriority": 100, - "PreviewScenario": "NoCombatBuilding" - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_TOWN_HALL", - "InfoTID": "TID_TOWN_HALL_INFO", - "BuildingClass": "Town Hall", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "town_hall_lvl4", - "ExportNameNpc": "goblin_townhall_lvl1", - "ExportNameConstruction": "town_hall_const", - "BuildTimeD": 0, - "BuildTimeH": 3, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 25000, - "TownHallLevel": 3, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "MaxStoredGold": 50000, - "MaxStoredElixir": 50000, - "MaxStoredDarkElixir": 20000, - "PercentageStoredDarkElixir": 20, - "LootOnDestruction": true, - "Hitpoints": 2100, - "RegenTime": 23, - "DestroyEffect": "Town Hall Destroyed", - "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "townhall_base", - "PickUpEffect": "Town Hall Pickup", - "PlacingEffect": "Town Hall Placing", - "DestructionXP": 4, - "StartingHomeCount": 1, - "IsRed": true, - "ActivateCombatOnDamageTaken": 1, - "ActivatedCombatAddBuildingClass": "Defense", - "CombatActivationDelay": 500, - "Weapon": "Townhall15", - "HintPriority": 100, - "PreviewScenario": "NoCombatBuilding" - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_TOWN_HALL", - "InfoTID": "TID_TOWN_HALL_INFO", - "BuildingClass": "Town Hall", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "town_hall_lvl5", - "ExportNameNpc": "goblin_townhall_lvl1", - "ExportNameConstruction": "town_hall_const", - "BuildTimeD": 0, - "BuildTimeH": 6, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 150000, - "TownHallLevel": 4, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "MaxStoredGold": 100000, - "MaxStoredElixir": 100000, - "MaxStoredDarkElixir": 20000, - "PercentageStoredDarkElixir": 20, - "LootOnDestruction": true, - "Hitpoints": 2400, - "RegenTime": 24, - "DestroyEffect": "Town Hall Destroyed", - "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "townhall_base", - "PickUpEffect": "Town Hall Pickup", - "PlacingEffect": "Town Hall Placing", - "DestructionXP": 5, - "StartingHomeCount": 1, - "IsRed": true, - "ActivateCombatOnDamageTaken": 1, - "ActivatedCombatAddBuildingClass": "Defense", - "CombatActivationDelay": 500, - "Weapon": "Townhall16", - "HintPriority": 100, - "PreviewScenario": "NoCombatBuilding" - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_BUILDING_TOWN_HALL", - "InfoTID": "TID_TOWN_HALL_INFO", - "BuildingClass": "Town Hall", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "town_hall_lvl6", - "ExportNameNpc": "goblin_townhall_lvl1", - "ExportNameConstruction": "town_hall_const", - "BuildTimeD": 0, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 750000, - "TownHallLevel": 5, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "MaxStoredGold": 300000, - "MaxStoredElixir": 300000, - "MaxStoredDarkElixir": 20000, - "PercentageStoredDarkElixir": 20, - "LootOnDestruction": true, - "Hitpoints": 2800, - "RegenTime": 25, - "DestroyEffect": "Town Hall Destroyed", - "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "townhall_base", - "PickUpEffect": "Town Hall Pickup", - "PlacingEffect": "Town Hall Placing", - "DestructionXP": 6, - "StartingHomeCount": 1, - "IsRed": true, - "ActivatedCombatAddBuildingClass": "Defense", - "HintPriority": 100, - "PreviewScenario": "NoCombatBuilding" - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_BUILDING_TOWN_HALL", - "InfoTID": "TID_TOWN_HALL_INFO", - "BuildingClass": "Town Hall", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "town_hall_lvl7", - "ExportNameNpc": "goblin_townhall_lvl1", - "ExportNameConstruction": "town_hall_const", - "BuildTimeD": 0, - "BuildTimeH": 18, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 1000000, - "TownHallLevel": 6, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "MaxStoredGold": 500000, - "MaxStoredElixir": 500000, - "MaxStoredDarkElixir": 20000, - "PercentageStoredDarkElixir": 20, - "LootOnDestruction": true, - "Hitpoints": 3300, - "RegenTime": 26, - "DestroyEffect": "Town Hall Destroyed", - "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "townhall_base", - "PickUpEffect": "Town Hall Pickup", - "PlacingEffect": "Town Hall Placing", - "DestructionXP": 7, - "StartingHomeCount": 1, - "IsRed": true, - "ActivatedCombatAddBuildingClass": "Defense", - "HintPriority": 100, - "PreviewScenario": "NoCombatBuilding" - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_BUILDING_TOWN_HALL", - "InfoTID": "TID_TOWN_HALL_INFO", - "BuildingClass": "Town Hall", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "town_hall_lvl8", - "ExportNameNpc": "goblin_townhall_lvl1", - "ExportNameConstruction": "town_hall_const", - "BuildTimeD": 1, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 2000000, - "TownHallLevel": 7, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "MaxStoredGold": 750000, - "MaxStoredElixir": 750000, - "MaxStoredDarkElixir": 20000, - "PercentageStoredDarkElixir": 20, - "LootOnDestruction": true, - "Hitpoints": 3900, - "RegenTime": 27, - "DestroyEffect": "Town Hall Destroyed", - "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "townhall_base", - "PickUpEffect": "Town Hall Pickup", - "PlacingEffect": "Town Hall Placing", - "DestructionXP": 8, - "StartingHomeCount": 1, - "IsRed": true, - "ActivatedCombatAddBuildingClass": "Defense", - "HintPriority": 100, - "PreviewScenario": "NoCombatBuilding" - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_BUILDING_TOWN_HALL", - "InfoTID": "TID_TOWN_HALL_INFO", - "BuildingClass": "Town Hall", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "town_hall_lvl9", - "ExportNameNpc": "goblin_townhall_lvl1", - "ExportNameConstruction": "town_hall_const", - "BuildTimeD": 2, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 3000000, - "TownHallLevel": 8, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "MaxStoredGold": 1000000, - "MaxStoredElixir": 1000000, - "MaxStoredDarkElixir": 20000, - "PercentageStoredDarkElixir": 20, - "LootOnDestruction": true, - "Hitpoints": 4600, - "RegenTime": 28, - "DestroyEffect": "Town Hall Destroyed", - "ExportNameDamaged": "destroyedBuilding_4l_base_rockwoodpanel_grey", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "townhall_base", - "PickUpEffect": "Town Hall Pickup", - "PlacingEffect": "Town Hall Placing", - "DestructionXP": 9, - "StartingHomeCount": 1, - "IsRed": true, - "ActivatedCombatAddBuildingClass": "Defense", - "HintPriority": 100, - "PreviewScenario": "NoCombatBuilding" - }, - "10": { - "BuildingLevel": 10, - "TID": "TID_BUILDING_TOWN_HALL", - "InfoTID": "TID_TOWN_HALL_INFO", - "BuildingClass": "Town Hall", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "town_hall_lvl10", - "ExportNameNpc": "goblin_townhall_lvl1", - "ExportNameConstruction": "town_hall_const", - "BuildTimeD": 2, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 3500000, - "TownHallLevel": 9, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "MaxStoredGold": 1500000, - "MaxStoredElixir": 1500000, - "MaxStoredDarkElixir": 20000, - "PercentageStoredDarkElixir": 20, - "LootOnDestruction": true, - "Hitpoints": 5500, - "RegenTime": 29, - "DestroyEffect": "Town Hall Destroyed", - "ExportNameDamaged": "destroyedBuilding_4l_base_rockwoodpanel_grey", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "townhall_lvl10_base", - "PickUpEffect": "Town Hall Pickup", - "PlacingEffect": "Town Hall Placing", - "DestructionXP": 10, - "StartingHomeCount": 1, - "IsRed": true, - "ActivatedCombatAddBuildingClass": "Defense", - "HintPriority": 100, - "PreviewScenario": "NoCombatBuilding" - }, - "11": { - "BuildingLevel": 11, - "TID": "TID_BUILDING_TOWN_HALL", - "InfoTID": "TID_TOWN_HALL_INFO", - "BuildingClass": "Town Hall", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "town_hall_lvl11", - "ExportNameNpc": "goblin_townhall_lvl1", - "ExportNameConstruction": "town_hall_const", - "BuildTimeD": 2, - "BuildTimeH": 18, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 4000000, - "TownHallLevel": 10, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "MaxStoredGold": 2000000, - "MaxStoredElixir": 2000000, - "LootOnDestruction": true, - "Hitpoints": 6800, - "RegenTime": 30, - "DestroyEffect": "Town Hall Destroyed", - "ExportNameDamaged": "destroyedBuilding_4l_base_rockwoodpanel_white", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "townhall_base", - "PickUpEffect": "Town Hall Pickup", - "PlacingEffect": "Town Hall Placing", - "DestructionXP": 11, - "StartingHomeCount": 1, - "IsRed": true, - "ActivatedCombatAddBuildingClass": "Defense", - "HintPriority": 100, - "PreviewScenario": "NoCombatBuilding" - }, - "12": { - "BuildingLevel": 12, - "TID": "TID_BUILDING_TOWN_HALL", - "InfoTID": "TID_TOWN_HALL_INFO", - "BuildingClass": "Town Hall", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "town_hall_lvl12_t1", - "ExportNameNpc": "goblin_townhall_lvl1", - "ExportNameConstruction": "town_hall_const", - "BuildTimeD": 4, - "BuildTimeH": 6, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 6000000, - "TownHallLevel": 11, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "MaxStoredGold": 2000000, - "MaxStoredElixir": 2000000, - "LootOnDestruction": true, - "Hitpoints": 7500, - "RegenTime": 31, - "DestroyEffect": "Town Hall Destroyed", - "ExportNameDamaged": "destroyedBuilding_4l_base_rockwoodpanel_blue", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "townhall_base_th12", - "PickUpEffect": "Town Hall Pickup", - "PlacingEffect": "Town Hall Placing", - "DestructionXP": 12, - "StartingHomeCount": 1, - "IsRed": true, - "ActivatedCombatAddBuildingClass": "Defense", - "HintPriority": 100, - "PreviewScenario": "NoCombatBuilding" - }, - "13": { - "BuildingLevel": 13, - "TID": "TID_BUILDING_TOWN_HALL", - "InfoTID": "TID_TOWN_HALL_INFO", - "BuildingClass": "Town Hall", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "town_hall_lvl13_t1", - "ExportNameNpc": "goblin_townhall_lvl1", - "ExportNameConstruction": "town_hall_const", - "BuildTimeD": 7, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 9000000, - "TownHallLevel": 12, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "MaxStoredGold": 2000000, - "MaxStoredElixir": 2000000, - "LootOnDestruction": true, - "Hitpoints": 8200, - "RegenTime": 31, - "DestroyEffect": "Town Hall Destroyed", - "ExportNameDamaged": "destroyedBuilding_4l_base_rockwoodpanel_blue", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "townhall_base_th12", - "PickUpEffect": "Town Hall Pickup", - "PlacingEffect": "Town Hall Placing", - "DestructionXP": 13, - "StartingHomeCount": 1, - "IsRed": true, - "ActivatedCombatAddBuildingClass": "Defense", - "HintPriority": 100, - "PreviewScenario": "NoCombatBuilding" - }, - "14": { - "BuildingLevel": 14, - "TID": "TID_BUILDING_TOWN_HALL", - "InfoTID": "TID_TOWN_HALL_INFO", - "BuildingClass": "Town Hall", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "town_hall_lvl14_t1", - "ExportNameNpc": "goblin_townhall_lvl1", - "ExportNameConstruction": "town_hall_const", - "BuildTimeD": 13, - "BuildTimeH": 6, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 15000000, - "TownHallLevel": 13, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "MaxStoredGold": 2000000, - "MaxStoredElixir": 2000000, - "LootOnDestruction": true, - "Hitpoints": 8900, - "RegenTime": 31, - "DestroyEffect": "Town Hall Destroyed", - "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "townhall_base_th12", - "PickUpEffect": "Town Hall Pickup", - "PlacingEffect": "Town Hall Placing", - "DestructionXP": 14, - "StartingHomeCount": 1, - "IsRed": true, - "ActivatedCombatAddBuildingClass": "Defense", - "HintPriority": 100, - "PreviewScenario": "NoCombatBuilding" - }, - "15": { - "BuildingLevel": 15, - "TID": "TID_BUILDING_TOWN_HALL", - "InfoTID": "TID_TOWN_HALL_INFO", - "BuildingClass": "Town Hall", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "town_hall_lvl15_t1", - "ExportNameNpc": "goblin_townhall_lvl1", - "ExportNameConstruction": "town_hall_const", - "BuildTimeD": 13, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 18000000, - "TownHallLevel": 14, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "MaxStoredGold": 2000000, - "MaxStoredElixir": 2000000, - "LootOnDestruction": true, - "Hitpoints": 9600, - "RegenTime": 31, - "DestroyEffect": "Town Hall Destroyed", - "ExportNameDamaged": "destroyedBuilding_4l_base_rockwoodpanel_darkpurple", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "townhall_base_th12", - "PickUpEffect": "Town Hall Pickup", - "PlacingEffect": "Town Hall Placing", - "DestructionXP": 15, - "StartingHomeCount": 1, - "IsRed": true, - "ActivatedCombatAddBuildingClass": "Defense", - "HintPriority": 100, - "PreviewScenario": "NoCombatBuilding" - }, - "16": { - "BuildingLevel": 16, - "TID": "TID_BUILDING_TOWN_HALL", - "InfoTID": "TID_TOWN_HALL_INFO", - "BuildingClass": "Town Hall", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "town_hall_lvl16", - "ExportNameNpc": "goblin_townhall_lvl1", - "ExportNameConstruction": "town_hall_const", - "BuildTimeD": 14, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 20000000, - "TownHallLevel": 15, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "MaxStoredGold": 2000000, - "MaxStoredElixir": 2000000, - "LootOnDestruction": true, - "Hitpoints": 10000, - "RegenTime": 32, - "DestroyEffect": "Town Hall Destroyed", - "ExportNameDamaged": "destroyedBuilding_4l_base_rockwoodpanel_darkpurple", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "townhall_base_th12", - "PickUpEffect": "Town Hall Pickup", - "PlacingEffect": "Town Hall Placing", - "DestructionXP": 16, - "StartingHomeCount": 1, - "IsRed": true, - "ActivatedCombatAddBuildingClass": "Defense", - "HintPriority": 100, - "PreviewScenario": "NoCombatBuilding" - } - }, - "Elixir Collector": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_ELIXIR_PUMP", - "InfoTID": "TID_ELIXIR_PUMP_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "elixir_pump_lvl1_v2", - "ExportNameConstruction": "elixir_pump_const", - "ExportNameLocked": "elixir_pump_broken", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 10, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 1000, - "TownHallLevel": 1, - "CapitalHallLevel": 1, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "elixir_pump_upg", - "ProducesResource": "Elixir2", - "ResourcePer100Hours": 100000, - "ResourceMax": 24000, - "ResourceIconLimit": 30, - "Hitpoints": 300, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3s_round_pit_woodglass", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "elixir_pump_base", - "PickUpEffect": "Elixir Pump Pickup", - "PlacingEffect": "Elixir Pump Placing", - "StartingHomeCount": 1, - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 250 - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_ELIXIR_PUMP", - "InfoTID": "TID_ELIXIR_PUMP_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "elixir_pump_lvl2_v2", - "ExportNameConstruction": "elixir_pump_const", - "ExportNameLocked": "elixir_pump_broken", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 20, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 5000, - "TownHallLevel": 3, - "CapitalHallLevel": 3, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "elixir_pump_upg", - "ProducesResource": "Elixir2", - "ResourcePer100Hours": 120000, - "ResourceMax": 28800, - "ResourceIconLimit": 40, - "Hitpoints": 350, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3s_round_pit_woodglass", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "elixir_pump_base", - "PickUpEffect": "Elixir Pump Pickup", - "PlacingEffect": "Elixir Pump Placing", - "StartingHomeCount": 1, - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 250 - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_ELIXIR_PUMP", - "InfoTID": "TID_ELIXIR_PUMP_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "elixir_pump_lvl3_v2", - "ExportNameConstruction": "elixir_pump_const", - "ExportNameLocked": "elixir_pump_broken", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 40, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 10000, - "TownHallLevel": 3, - "CapitalHallLevel": 3, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "elixir_pump_upg", - "ProducesResource": "Elixir2", - "ResourcePer100Hours": 150000, - "ResourceMax": 36000, - "ResourceIconLimit": 50, - "Hitpoints": 400, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3s_round_pit_woodglass", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "elixir_pump_base", - "PickUpEffect": "Elixir Pump Pickup", - "PlacingEffect": "Elixir Pump Placing", - "StartingHomeCount": 1, - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 250 - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_ELIXIR_PUMP", - "InfoTID": "TID_ELIXIR_PUMP_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "elixir_pump_lvl4_v2", - "ExportNameConstruction": "elixir_pump_const", - "ExportNameLocked": "elixir_pump_broken", - "BuildTimeD": 0, - "BuildTimeH": 2, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 30000, - "TownHallLevel": 4, - "CapitalHallLevel": 4, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "elixir_pump_upg", - "ProducesResource": "Elixir2", - "ResourcePer100Hours": 180000, - "ResourceMax": 43200, - "ResourceIconLimit": 60, - "Hitpoints": 460, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3s_round_pit_woodglass", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "elixir_pump_base", - "PickUpEffect": "Elixir Pump Pickup", - "PlacingEffect": "Elixir Pump Placing", - "StartingHomeCount": 1, - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 250 - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_ELIXIR_PUMP", - "InfoTID": "TID_ELIXIR_PUMP_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "elixir_pump_lvl5_v2", - "ExportNameConstruction": "elixir_pump_const", - "ExportNameLocked": "elixir_pump_broken", - "BuildTimeD": 0, - "BuildTimeH": 6, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 60000, - "TownHallLevel": 5, - "CapitalHallLevel": 5, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "elixir_pump_upg", - "ProducesResource": "Elixir2", - "ResourcePer100Hours": 210000, - "ResourceMax": 50400, - "ResourceIconLimit": 70, - "Hitpoints": 550, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3s_round_pit_woodglass", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "elixir_pump_lvl5_base", - "PickUpEffect": "Elixir Pump Pickup", - "PlacingEffect": "Elixir Pump Placing", - "StartingHomeCount": 1, - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 250 - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_BUILDING_ELIXIR_PUMP", - "InfoTID": "TID_ELIXIR_PUMP_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "elixir_pump_lvl6_v2", - "ExportNameConstruction": "elixir_pump_const", - "ExportNameLocked": "elixir_pump_broken", - "BuildTimeD": 1, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 100000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "elixir_pump_upg", - "ProducesResource": "Elixir2", - "ResourcePer100Hours": 250000, - "ResourceMax": 60000, - "ResourceIconLimit": 80, - "Hitpoints": 650, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3s_round_pit_woodglass", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "elixir_pump_lvl5_base", - "PickUpEffect": "Elixir Pump Pickup", - "PlacingEffect": "Elixir Pump Placing", - "StartingHomeCount": 1, - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 250 - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_BUILDING_ELIXIR_PUMP", - "InfoTID": "TID_ELIXIR_PUMP_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "elixir_pump_lvl7_v2", - "ExportNameConstruction": "elixir_pump_const", - "ExportNameLocked": "elixir_pump_broken", - "BuildTimeD": 1, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 200000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "elixir_pump_upg", - "ProducesResource": "Elixir2", - "ResourcePer100Hours": 300000, - "ResourceMax": 72000, - "ResourceIconLimit": 100, - "Hitpoints": 750, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3s_round_pit_woodglass", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "elixir_pump_lvl5_base", - "PickUpEffect": "Elixir Pump Pickup", - "PlacingEffect": "Elixir Pump Placing", - "StartingHomeCount": 1, - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 250 - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_BUILDING_ELIXIR_PUMP", - "InfoTID": "TID_ELIXIR_PUMP_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "elixir_pump_lvl8_v2", - "ExportNameConstruction": "elixir_pump_const", - "ExportNameLocked": "elixir_pump_broken", - "BuildTimeD": 2, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 300000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "elixir_pump_upg", - "ProducesResource": "Elixir2", - "ResourcePer100Hours": 350000, - "ResourceMax": 84000, - "ResourceIconLimit": 120, - "Hitpoints": 850, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3s_round_pit_woodglass", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "elixir_pump_lvl5_base", - "PickUpEffect": "Elixir Pump Pickup", - "PlacingEffect": "Elixir Pump Placing", - "StartingHomeCount": 1, - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 250 - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_BUILDING_ELIXIR_PUMP", - "InfoTID": "TID_ELIXIR_PUMP_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "elixir_pump_lvl9_v2", - "ExportNameConstruction": "elixir_pump_const", - "ExportNameLocked": "elixir_pump_broken", - "BuildTimeD": 2, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 400000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "elixir_pump_upg", - "ProducesResource": "Elixir2", - "ResourcePer100Hours": 400000, - "ResourceMax": 96000, - "ResourceIconLimit": 140, - "Hitpoints": 1000, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3s_round_pit_woodglass", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "elixir_pump_lvl5_base", - "PickUpEffect": "Elixir Pump Pickup", - "PlacingEffect": "Elixir Pump Placing", - "StartingHomeCount": 1, - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 250 - }, - "10": { - "BuildingLevel": 10, - "TID": "TID_BUILDING_ELIXIR_PUMP", - "InfoTID": "TID_ELIXIR_PUMP_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "elixir_pump_lvl10_v2", - "ExportNameConstruction": "elixir_pump_const", - "ExportNameLocked": "elixir_pump_broken", - "BuildTimeD": 3, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 800000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "elixir_pump_upg", - "ProducesResource": "Elixir2", - "ResourcePer100Hours": 450000, - "ResourceMax": 108000, - "ResourceIconLimit": 160, - "Hitpoints": 1150, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3s_round_pit_woodglass", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "elixir_pump_lvl5_base", - "PickUpEffect": "Elixir Pump Pickup", - "PlacingEffect": "Elixir Pump Placing", - "StartingHomeCount": 1, - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 250 - } - }, - "Elixir Storage": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_ELIXIR_STORAGE", - "InfoTID": "TID_ELIXIR_STORAGE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "elixir_storage_level1_v2", - "ExportNameConstruction": "elixir_storage_const", - "ExportNameLocked": "alliance_castle_lvl1_broken", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 30, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 20000, - "TownHallLevel": 3, - "CapitalHallLevel": 3, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "elixir_storage_upg", - "MaxStoredElixir2": 70000, - "Hitpoints": 650, - "RegenTime": 1, - "DestroyEffect": "Elixir Storage Destroyed", - "ExportNameDamaged": "elixir_destructed_state3", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "elixir_storage_lvl1_base", - "PickUpEffect": "Elixir Storage Pickup", - "PlacingEffect": "Elixir Storage Placing", - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 200 - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_ELIXIR_STORAGE", - "InfoTID": "TID_ELIXIR_STORAGE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "elixir_storage_level2_v2", - "ExportNameConstruction": "elixir_storage_const", - "ExportNameLocked": "alliance_castle_lvl1_broken", - "BuildTimeD": 0, - "BuildTimeH": 1, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 80000, - "TownHallLevel": 3, - "CapitalHallLevel": 3, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "goldmine_upg", - "MaxStoredElixir2": 150000, - "Hitpoints": 800, - "RegenTime": 1, - "DestroyEffect": "Elixir Storage Destroyed", - "ExportNameDamaged": "elixir_destructed_state3", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "elixir_storage_lvl2_base", - "PickUpEffect": "Elixir Storage Pickup", - "PlacingEffect": "Elixir Storage Placing", - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 200 - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_ELIXIR_STORAGE", - "InfoTID": "TID_ELIXIR_STORAGE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "elixir_storage_level3_v2", - "ExportNameConstruction": "elixir_storage_const", - "ExportNameLocked": "alliance_castle_lvl1_broken", - "BuildTimeD": 0, - "BuildTimeH": 3, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 200000, - "TownHallLevel": 3, - "CapitalHallLevel": 3, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "goldmine_upg", - "MaxStoredElixir2": 250000, - "Hitpoints": 975, - "RegenTime": 1, - "DestroyEffect": "Elixir Storage Destroyed", - "ExportNameDamaged": "elixir_destructed_state3", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "elixir_storage_lvl3_base", - "PickUpEffect": "Elixir Storage Pickup", - "PlacingEffect": "Elixir Storage Placing", - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 200 - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_ELIXIR_STORAGE", - "InfoTID": "TID_ELIXIR_STORAGE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "elixir_storage_level4_v2", - "ExportNameConstruction": "elixir_storage_const", - "ExportNameLocked": "alliance_castle_lvl1_broken", - "BuildTimeD": 0, - "BuildTimeH": 6, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 300000, - "TownHallLevel": 4, - "CapitalHallLevel": 4, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "goldmine_upg", - "MaxStoredElixir2": 350000, - "Hitpoints": 1150, - "RegenTime": 1, - "DestroyEffect": "Elixir Storage Destroyed", - "ExportNameDamaged": "elixir_destructed_state3", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "elixir_storage_lvl4_base", - "PickUpEffect": "Elixir Storage Pickup", - "PlacingEffect": "Elixir Storage Placing", - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 200 - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_ELIXIR_STORAGE", - "InfoTID": "TID_ELIXIR_STORAGE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "elixir_storage_level5_v2", - "ExportNameConstruction": "elixir_storage_const", - "ExportNameLocked": "alliance_castle_lvl1_broken", - "BuildTimeD": 0, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 600000, - "TownHallLevel": 5, - "CapitalHallLevel": 5, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "goldmine_upg", - "MaxStoredElixir2": 600000, - "Hitpoints": 1350, - "RegenTime": 1, - "DestroyEffect": "Elixir Storage Destroyed", - "ExportNameDamaged": "elixir_destructed_state3", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "elixir_storage_lvl5_base", - "PickUpEffect": "Elixir Storage Pickup", - "PlacingEffect": "Elixir Storage Placing", - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 200 - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_BUILDING_ELIXIR_STORAGE", - "InfoTID": "TID_ELIXIR_STORAGE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "elixir_storage_level6_v2", - "ExportNameConstruction": "elixir_storage_const", - "ExportNameLocked": "alliance_castle_lvl1_broken", - "BuildTimeD": 1, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 1000000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredElixir2": 800000, - "Hitpoints": 1600, - "RegenTime": 1, - "DestroyEffect": "Elixir Storage Destroyed", - "ExportNameDamaged": "elixir_destructed_state3", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "elixir_storage_lvl6_base", - "PickUpEffect": "Elixir Storage Pickup", - "PlacingEffect": "Elixir Storage Placing", - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 200 - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_BUILDING_ELIXIR_STORAGE", - "InfoTID": "TID_ELIXIR_STORAGE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "elixir_storage_level7_v2", - "ExportNameConstruction": "elixir_storage_const", - "ExportNameLocked": "alliance_castle_lvl1_broken", - "BuildTimeD": 2, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 1500000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredElixir2": 1200000, - "Hitpoints": 1850, - "RegenTime": 1, - "DestroyEffect": "Elixir Storage Destroyed", - "ExportNameDamaged": "elixir_destructed_state3", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "elixir_storage_lvl7_base", - "PickUpEffect": "Elixir Storage Pickup", - "PlacingEffect": "Elixir Storage Placing", - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 200 - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_BUILDING_ELIXIR_STORAGE", - "InfoTID": "TID_ELIXIR_STORAGE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "elixir_storage_level8_v2", - "ExportNameConstruction": "elixir_storage_const", - "ExportNameLocked": "alliance_castle_lvl1_broken", - "BuildTimeD": 3, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 2000000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredElixir2": 1600000, - "Hitpoints": 2150, - "RegenTime": 1, - "DestroyEffect": "Elixir Storage Destroyed", - "ExportNameDamaged": "elixir_destructed_state3", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "elixir_storage_lvl8_base", - "PickUpEffect": "Elixir Storage Pickup", - "PlacingEffect": "Elixir Storage Placing", - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 200 - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_BUILDING_ELIXIR_STORAGE", - "InfoTID": "TID_ELIXIR_STORAGE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "elixir_storage_level9_v2", - "ExportNameConstruction": "elixir_storage_const", - "ExportNameLocked": "alliance_castle_lvl1_broken", - "BuildTimeD": 4, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 2500000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredElixir2": 2000000, - "Hitpoints": 2450, - "RegenTime": 1, - "DestroyEffect": "Elixir Storage Destroyed", - "ExportNameDamaged": "elixir_destructed_state3", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "elixir_storage_lvl9_base", - "PickUpEffect": "Elixir Storage Pickup", - "PlacingEffect": "Elixir Storage Placing", - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 200 - }, - "10": { - "BuildingLevel": 10, - "TID": "TID_BUILDING_ELIXIR_STORAGE", - "InfoTID": "TID_ELIXIR_STORAGE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "elixir_storage_level10_v2", - "ExportNameConstruction": "elixir_storage_const", - "ExportNameLocked": "alliance_castle_lvl1_broken", - "BuildTimeD": 5, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 3200000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredElixir2": 2500000, - "Hitpoints": 2750, - "RegenTime": 1, - "DestroyEffect": "Elixir Storage Destroyed", - "ExportNameDamaged": "elixir_destructed_state3", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "elixir_storage_lvl9_base", - "PickUpEffect": "Elixir Storage Pickup", - "PlacingEffect": "Elixir Storage Placing", - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 200 - } - }, - "Gold Mine": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_GOLD_MINE", - "InfoTID": "TID_GOLD_MINE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "goldmine_lvl1", - "ExportNameConstruction": "goldmine_const", - "ExportNameLocked": "goldmine_broken", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 10, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 1000, - "TownHallLevel": 1, - "CapitalHallLevel": 1, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "ProducesResource": "Gold2", - "ResourcePer100Hours": 100000, - "ResourceMax": 24000, - "ResourceIconLimit": 30, - "Hitpoints": 300, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "goldmine_base", - "PickUpEffect": "Gold Mine Pickup", - "PlacingEffect": "Gold Mine Placing", - "StartingHomeCount": 1, - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 250 - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_GOLD_MINE", - "InfoTID": "TID_GOLD_MINE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "goldmine_lvl2", - "ExportNameConstruction": "goldmine_const", - "ExportNameLocked": "goldmine_broken", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 20, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 5000, - "TownHallLevel": 3, - "CapitalHallLevel": 3, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "ProducesResource": "Gold2", - "ResourcePer100Hours": 120000, - "ResourceMax": 28800, - "ResourceIconLimit": 40, - "Hitpoints": 350, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "goldmine_base", - "PickUpEffect": "Gold Mine Pickup", - "PlacingEffect": "Gold Mine Placing", - "StartingHomeCount": 1, - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 250 - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_GOLD_MINE", - "InfoTID": "TID_GOLD_MINE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "goldmine_lvl3", - "ExportNameConstruction": "goldmine_const", - "ExportNameLocked": "goldmine_broken", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 40, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 10000, - "TownHallLevel": 3, - "CapitalHallLevel": 3, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "ProducesResource": "Gold2", - "ResourcePer100Hours": 150000, - "ResourceMax": 36000, - "ResourceIconLimit": 50, - "Hitpoints": 400, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "goldmine_base", - "PickUpEffect": "Gold Mine Pickup", - "PlacingEffect": "Gold Mine Placing", - "StartingHomeCount": 1, - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 250 - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_GOLD_MINE", - "InfoTID": "TID_GOLD_MINE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "goldmine_lvl4", - "ExportNameConstruction": "goldmine_const", - "ExportNameLocked": "goldmine_broken", - "BuildTimeD": 0, - "BuildTimeH": 2, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 30000, - "TownHallLevel": 4, - "CapitalHallLevel": 4, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "ProducesResource": "Gold2", - "ResourcePer100Hours": 180000, - "ResourceMax": 43200, - "ResourceIconLimit": 60, - "Hitpoints": 460, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "goldmine_base", - "PickUpEffect": "Gold Mine Pickup", - "PlacingEffect": "Gold Mine Placing", - "StartingHomeCount": 1, - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 250 - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_GOLD_MINE", - "InfoTID": "TID_GOLD_MINE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "goldmine_lvl5", - "ExportNameConstruction": "goldmine_const", - "ExportNameLocked": "goldmine_broken", - "BuildTimeD": 0, - "BuildTimeH": 6, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 60000, - "TownHallLevel": 5, - "CapitalHallLevel": 5, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "ProducesResource": "Gold2", - "ResourcePer100Hours": 210000, - "ResourceMax": 50400, - "ResourceIconLimit": 70, - "Hitpoints": 550, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "goldmine_base", - "PickUpEffect": "Gold Mine Pickup", - "PlacingEffect": "Gold Mine Placing", - "StartingHomeCount": 1, - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 250 - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_BUILDING_GOLD_MINE", - "InfoTID": "TID_GOLD_MINE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "goldmine_lvl6", - "ExportNameConstruction": "goldmine_const", - "ExportNameLocked": "goldmine_broken", - "BuildTimeD": 1, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 100000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "ProducesResource": "Gold2", - "ResourcePer100Hours": 250000, - "ResourceMax": 60000, - "ResourceIconLimit": 80, - "Hitpoints": 650, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "goldmine_base", - "PickUpEffect": "Gold Mine Pickup", - "PlacingEffect": "Gold Mine Placing", - "StartingHomeCount": 1, - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 250 - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_BUILDING_GOLD_MINE", - "InfoTID": "TID_GOLD_MINE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "goldmine_lvl7", - "ExportNameConstruction": "goldmine_const", - "ExportNameLocked": "goldmine_broken", - "BuildTimeD": 1, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 200000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "ProducesResource": "Gold2", - "ResourcePer100Hours": 300000, - "ResourceMax": 72000, - "ResourceIconLimit": 100, - "Hitpoints": 750, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "goldmine_base", - "PickUpEffect": "Gold Mine Pickup", - "PlacingEffect": "Gold Mine Placing", - "StartingHomeCount": 1, - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 250 - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_BUILDING_GOLD_MINE", - "InfoTID": "TID_GOLD_MINE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "goldmine_lvl8", - "ExportNameConstruction": "goldmine_const", - "ExportNameLocked": "goldmine_broken", - "BuildTimeD": 2, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 300000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "ProducesResource": "Gold2", - "ResourcePer100Hours": 350000, - "ResourceMax": 84000, - "ResourceIconLimit": 120, - "Hitpoints": 850, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "goldmine_base", - "PickUpEffect": "Gold Mine Pickup", - "PlacingEffect": "Gold Mine Placing", - "StartingHomeCount": 1, - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 250 - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_BUILDING_GOLD_MINE", - "InfoTID": "TID_GOLD_MINE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "goldmine_lvl9", - "ExportNameConstruction": "goldmine_const", - "ExportNameLocked": "goldmine_broken", - "BuildTimeD": 2, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 400000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "ProducesResource": "Gold2", - "ResourcePer100Hours": 400000, - "ResourceMax": 96000, - "ResourceIconLimit": 140, - "Hitpoints": 1000, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "goldmine_base", - "PickUpEffect": "Gold Mine Pickup", - "PlacingEffect": "Gold Mine Placing", - "StartingHomeCount": 1, - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 250 - }, - "10": { - "BuildingLevel": 10, - "TID": "TID_BUILDING_GOLD_MINE", - "InfoTID": "TID_GOLD_MINE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "goldmine_lvl10", - "ExportNameConstruction": "goldmine_const", - "ExportNameLocked": "goldmine_broken", - "BuildTimeD": 3, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 800000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "ProducesResource": "Gold2", - "ResourcePer100Hours": 450000, - "ResourceMax": 108000, - "ResourceIconLimit": 160, - "Hitpoints": 1150, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "goldmine_base", - "PickUpEffect": "Gold Mine Pickup", - "PlacingEffect": "Gold Mine Placing", - "StartingHomeCount": 1, - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 250 - } - }, - "Gold Storage": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_GOLD_STORAGE", - "InfoTID": "TID_GOLD_STORAGE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "gold_storage_lvl1_v2", - "ExportNameConstruction": "gold_storage_const", - "ExportNameLocked": "alliance_castle_lvl1_broken", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 30, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 20000, - "TownHallLevel": 3, - "CapitalHallLevel": 3, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredGold2": 70000, - "Hitpoints": 650, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_base_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "gold_storage_lvl1_base", - "PickUpEffect": "Gold Storage Pickup", - "PlacingEffect": "Gold Storage Placing", - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 200 - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_GOLD_STORAGE", - "InfoTID": "TID_GOLD_STORAGE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "gold_storage_lvl2_v2", - "ExportNameConstruction": "gold_storage_const", - "ExportNameLocked": "alliance_castle_lvl1_broken", - "BuildTimeD": 0, - "BuildTimeH": 1, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 80000, - "TownHallLevel": 3, - "CapitalHallLevel": 3, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredGold2": 150000, - "Hitpoints": 800, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_base_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "gold_storage_lvl2_base", - "PickUpEffect": "Gold Storage Pickup", - "PlacingEffect": "Gold Storage Placing", - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 200 - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_GOLD_STORAGE", - "InfoTID": "TID_GOLD_STORAGE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "gold_storage_lvl3_v2", - "ExportNameConstruction": "gold_storage_const", - "ExportNameLocked": "alliance_castle_lvl1_broken", - "BuildTimeD": 0, - "BuildTimeH": 3, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 200000, - "TownHallLevel": 3, - "CapitalHallLevel": 3, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredGold2": 250000, - "Hitpoints": 975, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_base_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "gold_storage_lvl3_base", - "PickUpEffect": "Gold Storage Pickup", - "PlacingEffect": "Gold Storage Placing", - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 200 - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_GOLD_STORAGE", - "InfoTID": "TID_GOLD_STORAGE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "gold_storage_lvl4_v2", - "ExportNameConstruction": "gold_storage_const", - "ExportNameLocked": "alliance_castle_lvl1_broken", - "BuildTimeD": 0, - "BuildTimeH": 6, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 300000, - "TownHallLevel": 4, - "CapitalHallLevel": 4, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredGold2": 350000, - "Hitpoints": 1150, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_base_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "gold_storage_lvl4_base", - "PickUpEffect": "Gold Storage Pickup", - "PlacingEffect": "Gold Storage Placing", - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 200 - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_GOLD_STORAGE", - "InfoTID": "TID_GOLD_STORAGE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "gold_storage_lvl5_v2", - "ExportNameConstruction": "gold_storage_const", - "ExportNameLocked": "alliance_castle_lvl1_broken", - "BuildTimeD": 0, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 600000, - "TownHallLevel": 5, - "CapitalHallLevel": 5, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredGold2": 600000, - "Hitpoints": 1350, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_base_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "gold_storage_lvl5_base", - "PickUpEffect": "Gold Storage Pickup", - "PlacingEffect": "Gold Storage Placing", - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 200 - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_BUILDING_GOLD_STORAGE", - "InfoTID": "TID_GOLD_STORAGE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "gold_storage_lvl6_v2", - "ExportNameConstruction": "gold_storage_const", - "ExportNameLocked": "alliance_castle_lvl1_broken", - "BuildTimeD": 1, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 1000000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredGold2": 800000, - "Hitpoints": 1600, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_base_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "gold_storage_lvl6_base", - "PickUpEffect": "Gold Storage Pickup", - "PlacingEffect": "Gold Storage Placing", - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 200 - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_BUILDING_GOLD_STORAGE", - "InfoTID": "TID_GOLD_STORAGE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "gold_storage_lvl7_v2", - "ExportNameConstruction": "gold_storage_const", - "ExportNameLocked": "alliance_castle_lvl1_broken", - "BuildTimeD": 2, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 1500000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredGold2": 1200000, - "Hitpoints": 1850, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_base_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "gold_storage_lvl7_base", - "PickUpEffect": "Gold Storage Pickup", - "PlacingEffect": "Gold Storage Placing", - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 200 - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_BUILDING_GOLD_STORAGE", - "InfoTID": "TID_GOLD_STORAGE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "gold_storage_lvl8_v2", - "ExportNameConstruction": "gold_storage_const", - "ExportNameLocked": "alliance_castle_lvl1_broken", - "BuildTimeD": 3, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 2000000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredGold2": 1600000, - "Hitpoints": 2150, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_base_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "gold_storage_lvl8_base", - "PickUpEffect": "Gold Storage Pickup", - "PlacingEffect": "Gold Storage Placing", - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 200 - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_BUILDING_GOLD_STORAGE", - "InfoTID": "TID_GOLD_STORAGE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "gold_storage_lvl9_v2", - "ExportNameConstruction": "gold_storage_const", - "ExportNameLocked": "alliance_castle_lvl1_broken", - "BuildTimeD": 4, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 2500000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredGold2": 2000000, - "Hitpoints": 2450, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_base_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "gold_storage_lvl9_base", - "PickUpEffect": "Gold Storage Pickup", - "PlacingEffect": "Gold Storage Placing", - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 200 - }, - "10": { - "BuildingLevel": 10, - "TID": "TID_BUILDING_GOLD_STORAGE", - "InfoTID": "TID_GOLD_STORAGE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "gold_storage_lvl10_v2", - "ExportNameConstruction": "gold_storage_const", - "ExportNameLocked": "alliance_castle_lvl1_broken", - "BuildTimeD": 5, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 3200000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredGold2": 2500000, - "Hitpoints": 2750, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_base_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "gold_storage_lvl9_base", - "PickUpEffect": "Gold Storage Pickup", - "PlacingEffect": "Gold Storage Placing", - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 200 - } - }, - "Barracks": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_BARRACK", - "InfoTID": "TID_BARRACK_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "barracks_lvl1", - "ExportNameConstruction": "barracks_const", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 10, - "BuildResource": "Elixir", - "BuildCost": 100, - "TownHallLevel": 1, - "CapitalHallLevel": 1, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "UnitProduction": 20, - "ProducesUnitsOfType": 1, - "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", - "BoostCost": 5, - "Hitpoints": 250, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 400, - "PreviewScenario": "NoCombatBuilding" - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_BARRACK", - "InfoTID": "TID_BARRACK_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "barracks_lvl2", - "ExportNameConstruction": "barracks_const", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 1, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 500, - "TownHallLevel": 2, - "CapitalHallLevel": 1, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "UnitProduction": 25, - "ProducesUnitsOfType": 1, - "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", - "BoostCost": 5, - "Hitpoints": 290, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 400, - "PreviewScenario": "NoCombatBuilding" - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_BARRACK", - "InfoTID": "TID_BARRACK_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "barracks_lvl3", - "ExportNameConstruction": "barracks_const", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 10, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 2500, - "TownHallLevel": 2, - "CapitalHallLevel": 1, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "UnitProduction": 30, - "ProducesUnitsOfType": 1, - "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", - "BoostCost": 5, - "Hitpoints": 330, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 400, - "PreviewScenario": "NoCombatBuilding" - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_BARRACK", - "InfoTID": "TID_BARRACK_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "barracks_lvl4", - "ExportNameConstruction": "barracks_const", - "BuildTimeD": 0, - "BuildTimeH": 1, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 5000, - "TownHallLevel": 2, - "CapitalHallLevel": 2, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "UnitProduction": 35, - "ProducesUnitsOfType": 1, - "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", - "BoostCost": 5, - "Hitpoints": 370, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 400, - "PreviewScenario": "NoCombatBuilding" - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_BARRACK", - "InfoTID": "TID_BARRACK_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "barracks_lvl5", - "ExportNameConstruction": "barracks_const", - "BuildTimeD": 0, - "BuildTimeH": 8, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 20000, - "TownHallLevel": 3, - "CapitalHallLevel": 3, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "UnitProduction": 40, - "ProducesUnitsOfType": 1, - "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", - "BoostCost": 5, - "Hitpoints": 420, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 400, - "PreviewScenario": "NoCombatBuilding" - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_BUILDING_BARRACK", - "InfoTID": "TID_BARRACK_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "barracks_lvl6", - "ExportNameConstruction": "barracks_const", - "BuildTimeD": 0, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 120000, - "TownHallLevel": 4, - "CapitalHallLevel": 4, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "UnitProduction": 45, - "ProducesUnitsOfType": 1, - "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", - "BoostCost": 5, - "Hitpoints": 470, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 400, - "PreviewScenario": "NoCombatBuilding" - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_BUILDING_BARRACK", - "InfoTID": "TID_BARRACK_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "barracks_lvl7", - "ExportNameConstruction": "barracks_const", - "BuildTimeD": 0, - "BuildTimeH": 18, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 270000, - "TownHallLevel": 5, - "CapitalHallLevel": 5, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "UnitProduction": 50, - "ProducesUnitsOfType": 1, - "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", - "BoostCost": 5, - "Hitpoints": 520, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 400, - "PreviewScenario": "NoCombatBuilding" - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_BUILDING_BARRACK", - "InfoTID": "TID_BARRACK_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "barracks_lvl8", - "ExportNameConstruction": "barracks_const", - "BuildTimeD": 1, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 800000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "UnitProduction": 55, - "ProducesUnitsOfType": 1, - "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", - "BoostCost": 5, - "Hitpoints": 580, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 400, - "PreviewScenario": "NoCombatBuilding" - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_BUILDING_BARRACK", - "InfoTID": "TID_BARRACK_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "barracks_lvl9", - "ExportNameConstruction": "barracks_const", - "BuildTimeD": 1, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 1000000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "UnitProduction": 60, - "ProducesUnitsOfType": 1, - "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", - "BoostCost": 5, - "Hitpoints": 650, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 400, - "PreviewScenario": "NoCombatBuilding" - }, - "10": { - "BuildingLevel": 10, - "TID": "TID_BUILDING_BARRACK", - "InfoTID": "TID_BARRACK_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "barracks_lvl10", - "ExportNameConstruction": "barracks_const", - "BuildTimeD": 2, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 1400000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "UnitProduction": 75, - "ProducesUnitsOfType": 1, - "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", - "BoostCost": 5, - "Hitpoints": 730, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 400, - "PreviewScenario": "NoCombatBuilding" - }, - "11": { - "BuildingLevel": 11, - "TID": "TID_BUILDING_BARRACK", - "InfoTID": "TID_BARRACK_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "barracks_lvl11", - "ExportNameConstruction": "barracks_const", - "BuildTimeD": 4, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 2600000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "UnitProduction": 80, - "ProducesUnitsOfType": 1, - "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", - "BoostCost": 5, - "Hitpoints": 810, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 400, - "PreviewScenario": "NoCombatBuilding" - }, - "12": { - "BuildingLevel": 12, - "TID": "TID_BUILDING_BARRACK", - "InfoTID": "TID_BARRACK_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "barracks_lvl12", - "ExportNameConstruction": "barracks_const", - "BuildTimeD": 5, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 3700000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "UnitProduction": 85, - "ProducesUnitsOfType": 1, - "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", - "BoostCost": 5, - "Hitpoints": 900, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 400, - "PreviewScenario": "NoCombatBuilding" - }, - "13": { - "BuildingLevel": 13, - "TID": "TID_BUILDING_BARRACK", - "InfoTID": "TID_BARRACK_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "barracks_lvl13", - "ExportNameConstruction": "barracks_const", - "BuildTimeD": 7, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 6500000, - "TownHallLevel": 11, - "CapitalHallLevel": 11, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "UnitProduction": 90, - "ProducesUnitsOfType": 1, - "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", - "BoostCost": 5, - "Hitpoints": 980, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 400, - "PreviewScenario": "NoCombatBuilding" - }, - "14": { - "BuildingLevel": 14, - "TID": "TID_BUILDING_BARRACK", - "InfoTID": "TID_BARRACK_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "barracks_lvl14", - "ExportNameConstruction": "barracks_const", - "BuildTimeD": 9, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 8000000, - "TownHallLevel": 12, - "CapitalHallLevel": 12, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "UnitProduction": 95, - "ProducesUnitsOfType": 1, - "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", - "BoostCost": 5, - "Hitpoints": 1050, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 400, - "PreviewScenario": "NoCombatBuilding" - }, - "15": { - "BuildingLevel": 15, - "TID": "TID_BUILDING_BARRACK", - "InfoTID": "TID_BARRACK_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "barracks_lvl15", - "ExportNameConstruction": "barracks_const", - "BuildTimeD": 9, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 10000000, - "TownHallLevel": 13, - "CapitalHallLevel": 13, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "UnitProduction": 100, - "ProducesUnitsOfType": 1, - "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", - "Hitpoints": 1150, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 400, - "PreviewScenario": "NoCombatBuilding" - }, - "16": { - "BuildingLevel": 16, - "TID": "TID_BUILDING_BARRACK", - "InfoTID": "TID_BARRACK_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "barracks_lvl16", - "ExportNameConstruction": "barracks_const", - "BuildTimeD": 12, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 12000000, - "TownHallLevel": 14, - "CapitalHallLevel": 14, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "UnitProduction": 105, - "ProducesUnitsOfType": 1, - "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", - "Hitpoints": 1250, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 400, - "PreviewScenario": "NoCombatBuilding" - }, - "17": { - "BuildingLevel": 17, - "TID": "TID_BUILDING_BARRACK", - "InfoTID": "TID_BARRACK_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "barracks_lvl17", - "ExportNameConstruction": "barracks_const", - "BuildTimeD": 14, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 16000000, - "TownHallLevel": 15, - "CapitalHallLevel": 15, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "UnitProduction": 110, - "ProducesUnitsOfType": 1, - "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", - "Hitpoints": 1350, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 400, - "PreviewScenario": "NoCombatBuilding" - } - }, - "Laboratory": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_LABORATORY", - "InfoTID": "TID_LABORATORY_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "laboratory_lvl1", - "ExportNameConstruction": "laboratory_const", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 1, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 5000, - "TownHallLevel": 3, - "CapitalHallLevel": 3, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "laboratory_upg", - "UpgradesUnitType": "UNIT", - "Hitpoints": 500, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "laboratory_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 1000, - "PreviewScenario": "NoCombatBuilding" - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_LABORATORY", - "InfoTID": "TID_LABORATORY_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "laboratory_lvl2", - "ExportNameConstruction": "laboratory_const", - "BuildTimeD": 0, - "BuildTimeH": 1, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 25000, - "TownHallLevel": 4, - "CapitalHallLevel": 4, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "laboratory_upg", - "UpgradesUnitType": "UNIT", - "Hitpoints": 550, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_round_rock", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "laboratory_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 1000, - "PreviewScenario": "NoCombatBuilding" - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_LABORATORY", - "InfoTID": "TID_LABORATORY_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "laboratory_lvl3", - "ExportNameConstruction": "laboratory_const", - "BuildTimeD": 0, - "BuildTimeH": 2, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 50000, - "TownHallLevel": 5, - "CapitalHallLevel": 5, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "laboratory_upg", - "UpgradesUnitType": "UNIT", - "Hitpoints": 600, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_round_rock", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "laboratory_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 1000, - "PreviewScenario": "NoCombatBuilding" - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_LABORATORY", - "InfoTID": "TID_LABORATORY_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "laboratory_lvl4", - "ExportNameConstruction": "laboratory_const", - "BuildTimeD": 0, - "BuildTimeH": 4, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 100000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "laboratory_upg", - "UpgradesUnitType": "UNIT", - "Hitpoints": 650, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_round_rock", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "laboratory_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 1000, - "PreviewScenario": "NoCombatBuilding" - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_LABORATORY", - "InfoTID": "TID_LABORATORY_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "laboratory_lvl5", - "ExportNameConstruction": "laboratory_const", - "BuildTimeD": 0, - "BuildTimeH": 8, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 200000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "laboratory_upg", - "UpgradesUnitType": "UNIT", - "Hitpoints": 700, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_round_rock", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "laboratory_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 1000, - "PreviewScenario": "NoCombatBuilding" - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_BUILDING_LABORATORY", - "InfoTID": "TID_LABORATORY_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "laboratory_lvl6", - "ExportNameConstruction": "laboratory_const", - "BuildTimeD": 0, - "BuildTimeH": 16, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 400000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "laboratory_upg", - "UpgradesUnitType": "UNIT", - "Hitpoints": 750, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_round_rock", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "laboratory_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 1000, - "PreviewScenario": "NoCombatBuilding" - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_BUILDING_LABORATORY", - "InfoTID": "TID_LABORATORY_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "laboratory_lvl7", - "ExportNameConstruction": "laboratory_const", - "BuildTimeD": 1, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 800000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "laboratory_upg", - "UpgradesUnitType": "UNIT", - "Hitpoints": 830, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_round_rock", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "laboratory_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 1000, - "PreviewScenario": "NoCombatBuilding" - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_BUILDING_LABORATORY", - "InfoTID": "TID_LABORATORY_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "laboratory_lvl8", - "ExportNameConstruction": "laboratory_const", - "BuildTimeD": 1, - "BuildTimeH": 18, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 1300000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "laboratory_upg", - "UpgradesUnitType": "UNIT", - "Hitpoints": 950, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_round_rock", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "laboratory_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 1000, - "PreviewScenario": "NoCombatBuilding" - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_BUILDING_LABORATORY", - "InfoTID": "TID_LABORATORY_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "laboratory_lvl9", - "ExportNameConstruction": "laboratory_const", - "BuildTimeD": 2, - "BuildTimeH": 18, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 2100000, - "TownHallLevel": 11, - "CapitalHallLevel": 11, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "laboratory_upg", - "UpgradesUnitType": "UNIT", - "Hitpoints": 1070, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_round_rock", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "laboratory_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 1000, - "PreviewScenario": "NoCombatBuilding" - }, - "10": { - "BuildingLevel": 10, - "TID": "TID_BUILDING_LABORATORY", - "InfoTID": "TID_LABORATORY_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "laboratory_lvl10", - "ExportNameConstruction": "laboratory_const", - "BuildTimeD": 4, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 3800000, - "TownHallLevel": 12, - "CapitalHallLevel": 12, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "laboratory_upg", - "UpgradesUnitType": "UNIT", - "Hitpoints": 1140, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_round_rock", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "laboratory_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 1000, - "PreviewScenario": "NoCombatBuilding" - }, - "11": { - "BuildingLevel": 11, - "TID": "TID_BUILDING_LABORATORY", - "InfoTID": "TID_LABORATORY_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "laboratory_lvl11", - "ExportNameConstruction": "laboratory_const", - "BuildTimeD": 6, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 5500000, - "TownHallLevel": 13, - "CapitalHallLevel": 13, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "laboratory_upg", - "UpgradesUnitType": "UNIT", - "Hitpoints": 1210, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_round_rock", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "laboratory_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 1000, - "PreviewScenario": "NoCombatBuilding" - }, - "12": { - "BuildingLevel": 12, - "TID": "TID_BUILDING_LABORATORY", - "InfoTID": "TID_LABORATORY_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "laboratory_lvl12", - "ExportNameConstruction": "laboratory_const", - "BuildTimeD": 11, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 8100000, - "TownHallLevel": 14, - "CapitalHallLevel": 14, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "laboratory_upg", - "UpgradesUnitType": "UNIT", - "Hitpoints": 1280, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_round_rock", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "laboratory_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 1000, - "PreviewScenario": "NoCombatBuilding" - }, - "13": { - "BuildingLevel": 13, - "TID": "TID_BUILDING_LABORATORY", - "InfoTID": "TID_LABORATORY_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "laboratory_lvl13", - "ExportNameConstruction": "laboratory_const", - "BuildTimeD": 12, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 12500000, - "TownHallLevel": 15, - "CapitalHallLevel": 15, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "laboratory_upg", - "UpgradesUnitType": "UNIT", - "Hitpoints": 1350, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_round_rock", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "laboratory_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 1000, - "PreviewScenario": "NoCombatBuilding" - }, - "14": { - "BuildingLevel": 14, - "TID": "TID_BUILDING_LABORATORY", - "InfoTID": "TID_LABORATORY_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "laboratory_lvl14", - "ExportNameConstruction": "laboratory_const", - "BuildTimeD": 16, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 13500000, - "TownHallLevel": 16, - "CapitalHallLevel": 16, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "laboratory_upg", - "UpgradesUnitType": "UNIT", - "Hitpoints": 1400, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_round_rock", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "laboratory_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 1000, - "PreviewScenario": "NoCombatBuilding" - } - }, - "Cannon": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_CANNON", - "InfoTID": "TID_BASIC_TURRET_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "basic_turret_lvl1", - "ExportNameConstruction": "basic_turret_const", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 10, - "BuildResource": "Gold", - "BuildCost": 250, - "TownHallLevel": 1000, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "basic_turret_upg", - "Hitpoints": 420, - "RegenTime": 15, - "AttackRange": 900, - "AttackSpeed": 800, - "DPS": 9, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Cannon Attack", - "HitEffect": "Generic Hit", - "Projectile": "Cannonball", - "AltProjectile": "Cannonball", - "ExportNameDamaged": "destroyedBuilding_3s_pit_none", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "basic_cannon_lvl1_base", - "AirTargets": false, - "GroundTargets": true, - "PickUpEffect": "Basic Turret Pickup", - "PlacingEffect": "Basic Turret Placing", - "AnimateTurret": true - } - }, - "Archer Tower": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_ARCHER_TOWER2", - "InfoTID": "TID_ARCHER_TOWER2_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "adv_archer_tower_lvl1", - "ExportNameConstruction": "tower_turret_const", - "ExportNameLocked": "adv_archer_tower_broken", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 5, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 12000, - "TownHallLevel": 2, - "CapitalHallLevel": 2, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 500, - "RegenTime": 1, - "AttackRange": 1000, - "AltAttackMode": true, - "AltAttackRange": 700, - "AttackSpeed": 1000, - "AltAttackSpeed": 450, - "DPS": 40, - "AltDPS": 89, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Archer Attack", - "HitEffect": "Generic Hit", - "Projectile": "Tower Arrow HIGH", - "AltProjectile": "Tower Arrow LOW", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "defense_tower_turret_base", - "AirTargets": true, - "GroundTargets": true, - "AltAirTargets": true, - "AltGroundTargets": true, - "ToggleAttackModeEffect": "Bow Target", - "PickUpEffect": "Tower Turret Pickup", - "PlacingEffect": "Tower Turret Placing", - "DefenderCharacter": "Archer", - "DefenderCount": 1, - "DefenderZ": 150, - "AltDefenderZ": 58, - "StrengthWeight": 254, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "AirAndGroundDefense2" - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_ARCHER_TOWER2", - "InfoTID": "TID_ARCHER_TOWER2_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "adv_archer_tower_lvl2", - "ExportNameConstruction": "tower_turret_const", - "ExportNameLocked": "adv_archer_tower_broken", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 15, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 30000, - "TownHallLevel": 3, - "CapitalHallLevel": 3, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 575, - "RegenTime": 1, - "AttackRange": 1000, - "AltAttackMode": true, - "AltAttackRange": 700, - "AttackSpeed": 1000, - "AltAttackSpeed": 450, - "DPS": 44, - "AltDPS": 98, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Archer Attack", - "HitEffect": "Generic Hit", - "Projectile": "Tower Arrow HIGH", - "AltProjectile": "Tower Arrow LOW", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "defense_tower_turret_base", - "AirTargets": true, - "GroundTargets": true, - "AltAirTargets": true, - "AltGroundTargets": true, - "ToggleAttackModeEffect": "Bow Target", - "PickUpEffect": "Tower Turret Pickup", - "PlacingEffect": "Tower Turret Placing", - "DefenderCharacter": "Archer", - "DefenderCount": 1, - "DefenderZ": 150, - "AltDefenderZ": 58, - "StrengthWeight": 260, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "AirAndGroundDefense2" - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_ARCHER_TOWER2", - "InfoTID": "TID_ARCHER_TOWER2_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "adv_archer_tower_lvl3", - "ExportNameConstruction": "tower_turret_const", - "ExportNameLocked": "adv_archer_tower_broken", - "BuildTimeD": 0, - "BuildTimeH": 2, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 60000, - "TownHallLevel": 3, - "CapitalHallLevel": 3, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 660, - "RegenTime": 1, - "AttackRange": 1000, - "AltAttackMode": true, - "AltAttackRange": 700, - "AttackSpeed": 1000, - "AltAttackSpeed": 450, - "DPS": 48, - "AltDPS": 107, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Archer Attack", - "HitEffect": "Generic Hit", - "Projectile": "Tower Arrow HIGH", - "AltProjectile": "Tower Arrow LOW", - "ExportNameDamaged": "destroyedBuilding_3m_base_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "defense_tower_turret_base", - "AirTargets": true, - "GroundTargets": true, - "AltAirTargets": true, - "AltGroundTargets": true, - "ToggleAttackModeEffect": "Bow Target", - "PickUpEffect": "Tower Turret Pickup", - "PlacingEffect": "Tower Turret Placing", - "DefenderCharacter": "Archer", - "DefenderCount": 1, - "DefenderZ": 150, - "AltDefenderZ": 58, - "StrengthWeight": 266, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "AirAndGroundDefense2" - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_ARCHER_TOWER2", - "InfoTID": "TID_ARCHER_TOWER2_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "adv_archer_tower_lvl4", - "ExportNameConstruction": "tower_turret_const", - "ExportNameLocked": "adv_archer_tower_broken", - "BuildTimeD": 0, - "BuildTimeH": 8, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 250000, - "TownHallLevel": 4, - "CapitalHallLevel": 4, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 760, - "RegenTime": 1, - "AttackRange": 1000, - "AltAttackMode": true, - "AltAttackRange": 700, - "AttackSpeed": 1000, - "AltAttackSpeed": 450, - "DPS": 53, - "AltDPS": 118, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Archer Attack", - "HitEffect": "Generic Hit", - "Projectile": "Tower Arrow HIGH", - "AltProjectile": "Tower Arrow LOW", - "ExportNameDamaged": "destroyedBuilding_3m_base_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "defense_tower_turret_base", - "AirTargets": true, - "GroundTargets": true, - "AltAirTargets": true, - "AltGroundTargets": true, - "ToggleAttackModeEffect": "Bow Target", - "PickUpEffect": "Tower Turret Pickup", - "PlacingEffect": "Tower Turret Placing", - "DefenderCharacter": "Archer2", - "DefenderCount": 1, - "DefenderZ": 150, - "AltDefenderZ": 58, - "StrengthWeight": 272, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "AirAndGroundDefense2" - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_ARCHER_TOWER2", - "InfoTID": "TID_ARCHER_TOWER2_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "adv_archer_tower_lvl5", - "ExportNameConstruction": "tower_turret_const", - "ExportNameLocked": "adv_archer_tower_broken", - "BuildTimeD": 1, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 800000, - "TownHallLevel": 5, - "CapitalHallLevel": 5, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 875, - "RegenTime": 1, - "AttackRange": 1000, - "AltAttackMode": true, - "AltAttackRange": 700, - "AttackSpeed": 1000, - "AltAttackSpeed": 450, - "DPS": 59, - "AltDPS": 131, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Archer Attack", - "HitEffect": "Generic Hit", - "Projectile": "Tower Arrow HIGH", - "AltProjectile": "Tower Arrow LOW", - "ExportNameDamaged": "destroyedBuilding_3m_base_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "defense_tower_turret_base", - "AirTargets": true, - "GroundTargets": true, - "AltAirTargets": true, - "AltGroundTargets": true, - "ToggleAttackModeEffect": "Bow Target", - "PickUpEffect": "Tower Turret Pickup", - "PlacingEffect": "Tower Turret Placing", - "DefenderCharacter": "Archer2", - "DefenderCount": 1, - "DefenderZ": 150, - "AltDefenderZ": 58, - "StrengthWeight": 280, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "AirAndGroundDefense2" - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_BUILDING_ARCHER_TOWER2", - "InfoTID": "TID_ARCHER_TOWER2_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "adv_archer_tower_lvl6", - "ExportNameConstruction": "tower_turret_const", - "ExportNameLocked": "adv_archer_tower_broken", - "BuildTimeD": 2, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 1200000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 1050, - "RegenTime": 1, - "AttackRange": 1000, - "AltAttackMode": true, - "AltAttackRange": 700, - "AttackSpeed": 1000, - "AltAttackSpeed": 450, - "DPS": 64, - "AltDPS": 142, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Archer Attack", - "HitEffect": "Generic Hit", - "Projectile": "Tower Arrow HIGH", - "AltProjectile": "Tower Arrow LOW", - "ExportNameDamaged": "destroyedBuilding_3m_base_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "defense_tower_turret_base", - "AirTargets": true, - "GroundTargets": true, - "AltAirTargets": true, - "AltGroundTargets": true, - "ToggleAttackModeEffect": "Bow Target", - "PickUpEffect": "Tower Turret Pickup", - "PlacingEffect": "Tower Turret Placing", - "DefenderCharacter": "Archer3", - "DefenderCount": 1, - "DefenderZ": 150, - "AltDefenderZ": 58, - "StrengthWeight": 288, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "AirAndGroundDefense2" - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_BUILDING_ARCHER_TOWER2", - "InfoTID": "TID_ARCHER_TOWER2_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "adv_archer_tower_lvl7", - "ExportNameConstruction": "tower_turret_const", - "ExportNameLocked": "adv_archer_tower_broken", - "BuildTimeD": 4, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 2000000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 1250, - "RegenTime": 1, - "AttackRange": 1000, - "AltAttackMode": true, - "AltAttackRange": 700, - "AttackSpeed": 1000, - "AltAttackSpeed": 450, - "DPS": 71, - "AltDPS": 158, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Archer Attack", - "HitEffect": "Explosive Arrow", - "Projectile": "Tower Arrow HIGH", - "AltProjectile": "Tower Arrow LOW", - "ExportNameDamaged": "destroyedBuilding_3m_base_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "defense_tower_turret_base", - "AirTargets": true, - "GroundTargets": true, - "AltAirTargets": true, - "AltGroundTargets": true, - "ToggleAttackModeEffect": "Bow Target", - "PickUpEffect": "Tower Turret Pickup", - "PlacingEffect": "Tower Turret Placing", - "DefenderCharacter": "Archer3", - "DefenderCount": 1, - "DefenderZ": 160, - "AltDefenderZ": 68, - "StrengthWeight": 296, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "AirAndGroundDefense2" - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_BUILDING_ARCHER_TOWER2", - "InfoTID": "TID_ARCHER_TOWER2_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "adv_archer_tower_lvl8", - "ExportNameConstruction": "tower_turret_const", - "ExportNameLocked": "adv_archer_tower_broken", - "BuildTimeD": 6, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 2800000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 1450, - "RegenTime": 1, - "AttackRange": 1000, - "AltAttackMode": true, - "AltAttackRange": 700, - "AttackSpeed": 1000, - "AltAttackSpeed": 450, - "DPS": 78, - "AltDPS": 173, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Archer Attack", - "HitEffect": "Explosive Arrow", - "Projectile": "Tower Arrow HIGH", - "AltProjectile": "Tower Arrow LOW", - "ExportNameDamaged": "destroyedBuilding_3m_base_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "defense_tower_turret_base", - "AirTargets": true, - "GroundTargets": true, - "AltAirTargets": true, - "AltGroundTargets": true, - "ToggleAttackModeEffect": "Bow Target", - "PickUpEffect": "Tower Turret Pickup", - "PlacingEffect": "Tower Turret Placing", - "DefenderCharacter": "Archer6", - "DefenderCount": 1, - "DefenderZ": 160, - "AltDefenderZ": 68, - "StrengthWeight": 304, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "AirAndGroundDefense2" - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_BUILDING_ARCHER_TOWER2", - "InfoTID": "TID_ARCHER_TOWER2_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "adv_archer_tower_lvl9", - "ExportNameConstruction": "tower_turret_const", - "ExportNameLocked": "adv_archer_tower_broken", - "BuildTimeD": 8, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 3600000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 1650, - "RegenTime": 1, - "AttackRange": 1000, - "AltAttackMode": true, - "AltAttackRange": 700, - "AttackSpeed": 1000, - "AltAttackSpeed": 450, - "DPS": 86, - "AltDPS": 191, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Archer Attack", - "HitEffect": "Explosive Arrow", - "Projectile": "Tower Arrow HIGH", - "AltProjectile": "Tower Arrow LOW", - "ExportNameDamaged": "destroyedBuilding_3m_base_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "defense_tower_turret_base", - "AirTargets": true, - "GroundTargets": true, - "AltAirTargets": true, - "AltGroundTargets": true, - "ToggleAttackModeEffect": "Bow Target", - "PickUpEffect": "Tower Turret Pickup", - "PlacingEffect": "Tower Turret Placing", - "DefenderCharacter": "Archer6", - "DefenderCount": 1, - "DefenderZ": 160, - "AltDefenderZ": 68, - "StrengthWeight": 312, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "AirAndGroundDefense2" - }, - "10": { - "BuildingLevel": 10, - "TID": "TID_BUILDING_ARCHER_TOWER2", - "InfoTID": "TID_ARCHER_TOWER2_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "adv_archer_tower_lvl10", - "ExportNameConstruction": "tower_turret_const", - "ExportNameLocked": "adv_archer_tower_broken", - "BuildTimeD": 9, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 4600000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 1850, - "RegenTime": 1, - "AttackRange": 1000, - "AltAttackMode": true, - "AltAttackRange": 700, - "AttackSpeed": 1000, - "AltAttackSpeed": 450, - "DPS": 94, - "AltDPS": 209, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Archer Attack", - "HitEffect": "Explosive Arrow", - "Projectile": "Tower Arrow HIGH", - "AltProjectile": "Tower Arrow LOW", - "ExportNameDamaged": "destroyedBuilding_3m_base_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "defense_tower_turret_base", - "AirTargets": true, - "GroundTargets": true, - "AltAirTargets": true, - "AltGroundTargets": true, - "ToggleAttackModeEffect": "Bow Target", - "PickUpEffect": "Tower Turret Pickup", - "PlacingEffect": "Tower Turret Placing", - "DefenderCharacter": "Archer6", - "DefenderCount": 1, - "DefenderZ": 160, - "AltDefenderZ": 68, - "StrengthWeight": 320, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "AirAndGroundDefense2" - } - }, - "Wall": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_WALL", - "InfoTID": "TID_WALL_INFO", - "BuildingClass": "Wall", - "SWF": "sc/buildings2.sc", - "ExportName": "secondVillage_wall_lvl1", - "ExportNameConstruction": "generic_construction_state1", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 1000, - "TownHallLevel": 2, - "CapitalHallLevel": 2, - "Width": 1, - "Height": 1, - "ExportNameBuildAnim": "dummy_particle", - "Hitpoints": 900, - "RegenTime": 1, - "DestroyEffect": "wall_lvl1_destroyed", - "ExportNameDamaged": "wall_destructed_lvl1", - "WallCornerPieces": "Looping", - "StartingHomeCount": 10, - "StrengthWeight": 100, - "AltBuildResource": "Elixir2", - "VillageType": 1, - "StartUpgradeBoosterCost": 1, - "HintPriority": 50 - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_WALL", - "InfoTID": "TID_WALL_INFO", - "BuildingClass": "Wall", - "SWF": "sc/buildings2.sc", - "ExportName": "secondVillage_wall_lvl2", - "ExportNameConstruction": "generic_construction_state1", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 2000, - "TownHallLevel": 3, - "CapitalHallLevel": 2, - "Width": 1, - "Height": 1, - "ExportNameBuildAnim": "dummy_particle", - "Hitpoints": 1100, - "RegenTime": 1, - "DestroyEffect": "wall_lvl2_destroyed", - "ExportNameDamaged": "wall_destructed_lvl2", - "WallCornerPieces": "Looping", - "StartingHomeCount": 10, - "StrengthWeight": 100, - "AltBuildResource": "Elixir2", - "VillageType": 1, - "StartUpgradeBoosterCost": 1, - "HintPriority": 50 - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_WALL", - "InfoTID": "TID_WALL_INFO", - "BuildingClass": "Wall", - "SWF": "sc/buildings2.sc", - "ExportName": "secondVillage_wall_lvl3", - "ExportNameConstruction": "generic_construction_state1", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 10000, - "TownHallLevel": 3, - "CapitalHallLevel": 3, - "Width": 1, - "Height": 1, - "ExportNameBuildAnim": "dummy_particle", - "Hitpoints": 1300, - "RegenTime": 1, - "DestroyEffect": "wall_lvl2_destroyed", - "ExportNameDamaged": "wall_destructed_lvl2", - "WallCornerPieces": "Looping", - "StartingHomeCount": 10, - "StrengthWeight": 100, - "AltBuildResource": "Elixir2", - "VillageType": 1, - "StartUpgradeBoosterCost": 1, - "HintPriority": 50 - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_WALL", - "InfoTID": "TID_WALL_INFO", - "BuildingClass": "Wall", - "SWF": "sc/buildings2.sc", - "ExportName": "secondVillage_wall_lvl4", - "ExportNameConstruction": "generic_construction_state1", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 50000, - "TownHallLevel": 4, - "CapitalHallLevel": 4, - "Width": 1, - "Height": 1, - "ExportNameBuildAnim": "dummy_particle", - "Hitpoints": 1600, - "RegenTime": 1, - "DestroyEffect": "wall_lvl2_destroyed", - "ExportNameDamaged": "wall_destructed_lvl2", - "WallCornerPieces": "Looping", - "StartingHomeCount": 10, - "StrengthWeight": 100, - "AltBuildResource": "Elixir2", - "VillageType": 1, - "StartUpgradeBoosterCost": 1, - "HintPriority": 50 - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_WALL", - "InfoTID": "TID_WALL_INFO", - "BuildingClass": "Wall", - "SWF": "sc/buildings2.sc", - "ExportName": "secondVillage_wall_lvl5", - "ExportNameConstruction": "generic_construction_state1", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 150000, - "TownHallLevel": 5, - "CapitalHallLevel": 5, - "Width": 1, - "Height": 1, - "ExportNameBuildAnim": "dummy_particle", - "Hitpoints": 1900, - "RegenTime": 1, - "DestroyEffect": "wall_lvl2_destroyed", - "ExportNameDamaged": "wall_destructed_lvl2", - "WallCornerPieces": "Looping", - "StartingHomeCount": 10, - "StrengthWeight": 100, - "VillageType": 1, - "StartUpgradeBoosterCost": 1, - "HintPriority": 50 - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_BUILDING_WALL", - "InfoTID": "TID_WALL_INFO", - "BuildingClass": "Wall", - "SWF": "sc/buildings2.sc", - "ExportName": "secondVillage_wall_lvl6", - "ExportNameConstruction": "generic_construction_state1", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 240000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 1, - "Height": 1, - "ExportNameBuildAnim": "dummy_particle", - "Hitpoints": 2200, - "RegenTime": 1, - "DestroyEffect": "wall_lvl2_destroyed", - "ExportNameDamaged": "wall_destructed_lvl2", - "WallCornerPieces": "Looping", - "StartingHomeCount": 10, - "StrengthWeight": 100, - "VillageType": 1, - "StartUpgradeBoosterCost": 1, - "HintPriority": 50 - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_BUILDING_WALL", - "InfoTID": "TID_WALL_INFO", - "BuildingClass": "Wall", - "SWF": "sc/buildings2.sc", - "ExportName": "secondVillage_wall_lvl7", - "ExportNameConstruction": "generic_construction_state1", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 400000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 1, - "Height": 1, - "ExportNameBuildAnim": "dummy_particle", - "Hitpoints": 2500, - "RegenTime": 1, - "DestroyEffect": "wall_lvl2_destroyed", - "ExportNameDamaged": "wall_destructed_lvl2", - "WallCornerPieces": "Looping", - "StartingHomeCount": 10, - "StrengthWeight": 100, - "VillageType": 1, - "StartUpgradeBoosterCost": 1, - "HintPriority": 50 - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_BUILDING_WALL", - "InfoTID": "TID_WALL_INFO", - "BuildingClass": "Wall", - "SWF": "sc/buildings2.sc", - "ExportName": "secondVillage_wall_lvl8", - "ExportNameConstruction": "generic_construction_state1", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 600000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 1, - "Height": 1, - "ExportNameBuildAnim": "dummy_particle", - "Hitpoints": 2750, - "RegenTime": 1, - "DestroyEffect": "wall_lvl2_destroyed", - "ExportNameDamaged": "wall_destructed_lvl2", - "WallCornerPieces": "Looping", - "StartingHomeCount": 10, - "StrengthWeight": 100, - "VillageType": 1, - "StartUpgradeBoosterCost": 2, - "HintPriority": 50 - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_BUILDING_WALL", - "InfoTID": "TID_WALL_INFO", - "BuildingClass": "Wall", - "SWF": "sc/buildings2.sc", - "ExportName": "secondVillage_wall_lvl9", - "ExportNameConstruction": "generic_construction_state1", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 800000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 1, - "Height": 1, - "ExportNameBuildAnim": "dummy_particle", - "Hitpoints": 3050, - "RegenTime": 1, - "DestroyEffect": "wall_lvl2_destroyed", - "ExportNameDamaged": "wall_destructed_lvl2", - "WallCornerPieces": "Looping", - "StartingHomeCount": 10, - "StrengthWeight": 100, - "VillageType": 1, - "StartUpgradeBoosterCost": 2, - "HintPriority": 50 - }, - "10": { - "BuildingLevel": 10, - "TID": "TID_BUILDING_WALL", - "InfoTID": "TID_WALL_INFO", - "BuildingClass": "Wall", - "SWF": "sc/buildings2.sc", - "ExportName": "secondVillage_wall_lvl10", - "ExportNameConstruction": "generic_construction_state1", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 1000000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 1, - "Height": 1, - "ExportNameBuildAnim": "dummy_particle", - "Hitpoints": 3350, - "RegenTime": 1, - "DestroyEffect": "wall_lvl2_destroyed", - "ExportNameDamaged": "wall_destructed_lvl2", - "WallCornerPieces": "Synced", - "StartingHomeCount": 10, - "StrengthWeight": 100, - "VillageType": 1, - "StartUpgradeBoosterCost": 2, - "HintPriority": 50 - } - }, - "Wizard Tower": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_WIZARD_TOWER", - "InfoTID": "TID_WIZARD_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "wizard_tower_lvl1", - "ExportNameConstruction": "wizard_tower_const", - "BuildTimeD": 0, - "BuildTimeH": 3, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 120000, - "TownHallLevel": 5, - "CapitalHallLevel": 5, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "wizard_tower_upg", - "Hitpoints": 620, - "RegenTime": 15, - "AttackRange": 700, - "AttackSpeed": 1300, - "DPS": 11, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "WizardTower_attack", - "HitEffect": "Wizard Tower hit", - "Projectile": "wizardTower_projectile", - "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "wizard_tower_base", - "AirTargets": true, - "GroundTargets": true, - "DamageRadius": 100, - "PickUpEffect": "Wizard Tower Pickup", - "PlacingEffect": "Wizard Tower Placing", - "DefenderCharacter": "Wizard", - "DefenderCount": 1, - "DefenderZ": 155, - "StrengthWeight": 450, - "HintPriority": 150, - "PreviewScenario": "Defense" - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_WIZARD_TOWER", - "InfoTID": "TID_WIZARD_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "wizard_tower_lvl4", - "ExportNameConstruction": "wizard_tower_const", - "BuildTimeD": 0, - "BuildTimeH": 3, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 220000, - "TownHallLevel": 5, - "CapitalHallLevel": 5, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "wizard_tower_upg", - "Hitpoints": 650, - "RegenTime": 16, - "AttackRange": 700, - "AttackSpeed": 1300, - "DPS": 13, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "WizardTower_attack", - "HitEffect": "Wizard Tower hit", - "Projectile": "wizardTower_projectile", - "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "wizard_tower_base", - "AirTargets": true, - "GroundTargets": true, - "DamageRadius": 100, - "PickUpEffect": "Wizard Tower Pickup", - "PlacingEffect": "Wizard Tower Placing", - "DefenderCharacter": "Wizard", - "DefenderCount": 1, - "DefenderZ": 155, - "StrengthWeight": 420, - "HintPriority": 150, - "PreviewScenario": "Defense" - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_WIZARD_TOWER", - "InfoTID": "TID_WIZARD_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "wizard_tower_lvl7", - "ExportNameConstruction": "wizard_tower_const", - "BuildTimeD": 0, - "BuildTimeH": 8, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 400000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "wizard_tower_upg", - "Hitpoints": 680, - "RegenTime": 17, - "AttackRange": 700, - "AttackSpeed": 1300, - "DPS": 16, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "WizardTower_attack", - "HitEffect": "Wizard Tower hit", - "Projectile": "wizardTower_projectile", - "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "wizard_tower_base", - "AirTargets": true, - "GroundTargets": true, - "DamageRadius": 100, - "PickUpEffect": "Wizard Tower Pickup", - "PlacingEffect": "Wizard Tower Placing", - "DefenderCharacter": "Wizard2", - "DefenderCount": 1, - "DefenderZ": 155, - "StrengthWeight": 390, - "HintPriority": 150, - "PreviewScenario": "Defense" - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_WIZARD_TOWER", - "InfoTID": "TID_WIZARD_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "wizard_tower_lvl8", - "ExportNameConstruction": "wizard_tower_const", - "BuildTimeD": 0, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 540000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "wizard_tower_upg", - "Hitpoints": 730, - "RegenTime": 18, - "AttackRange": 700, - "AttackSpeed": 1300, - "DPS": 20, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "WizardTower_attack", - "HitEffect": "Wizard Tower hit", - "Projectile": "wizardTower_projectile", - "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "wizard_tower_base", - "AirTargets": true, - "GroundTargets": true, - "DamageRadius": 100, - "PickUpEffect": "Wizard Tower Pickup", - "PlacingEffect": "Wizard Tower Placing", - "DefenderCharacter": "Wizard2", - "DefenderCount": 1, - "DefenderZ": 155, - "StrengthWeight": 360, - "HintPriority": 150, - "PreviewScenario": "Defense" - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_WIZARD_TOWER", - "InfoTID": "TID_WIZARD_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "wizard_tower_lvl9", - "ExportNameConstruction": "wizard_tower_const", - "BuildTimeD": 0, - "BuildTimeH": 18, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 700000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "wizard_tower_upg", - "Hitpoints": 840, - "RegenTime": 19, - "AttackRange": 700, - "AttackSpeed": 1300, - "DPS": 24, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "WizardTower_attack2", - "HitEffect": "Wizard Tower hit", - "Projectile": "wizardTower_projectile2", - "ExportNameDamaged": "destroyedBuilding_3l_round_pit_crystal", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "wizard_tower_base", - "AirTargets": true, - "GroundTargets": true, - "DamageRadius": 100, - "PickUpEffect": "Wizard Tower Pickup", - "PlacingEffect": "Wizard Tower Placing", - "DefenderCharacter": "Wizard3", - "DefenderCount": 1, - "DefenderZ": 155, - "StrengthWeight": 330, - "HintPriority": 150, - "PreviewScenario": "Defense" - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_BUILDING_WIZARD_TOWER", - "InfoTID": "TID_WIZARD_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "wizard_tower_lvl10", - "ExportNameConstruction": "wizard_tower_const", - "BuildTimeD": 1, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 1000000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "wizard_tower_upg", - "Hitpoints": 960, - "RegenTime": 20, - "AttackRange": 700, - "AttackSpeed": 1300, - "DPS": 32, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "WizardTower_attack2", - "HitEffect": "Wizard Tower hit", - "Projectile": "wizardTower_projectile2", - "ExportNameDamaged": "destroyedBuilding_3l_round_pit_crystal", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "wizard_tower_base", - "AirTargets": true, - "GroundTargets": true, - "DamageRadius": 100, - "PickUpEffect": "Wizard Tower Pickup", - "PlacingEffect": "Wizard Tower Placing", - "DefenderCharacter": "Wizard3", - "DefenderCount": 1, - "DefenderZ": 155, - "StrengthWeight": 300, - "HintPriority": 150, - "PreviewScenario": "Defense" - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_BUILDING_WIZARD_TOWER", - "InfoTID": "TID_WIZARD_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "wizard_tower_lvl11", - "ExportNameConstruction": "wizard_tower_const", - "BuildTimeD": 1, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 2000000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "wizard_tower_upg", - "Hitpoints": 1200, - "RegenTime": 21, - "AttackRange": 700, - "AttackSpeed": 1300, - "DPS": 40, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "WizardTower_attack2", - "HitEffect": "Wizard Tower hit", - "Projectile": "wizardTower_projectile2", - "ExportNameDamaged": "destroyedBuilding_3l_round_pit_crystaldark", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "wizard_tower_base", - "AirTargets": true, - "GroundTargets": true, - "DamageRadius": 100, - "PickUpEffect": "Wizard Tower Pickup", - "PlacingEffect": "Wizard Tower Placing", - "DefenderCharacter": "Wizard6", - "DefenderCount": 1, - "DefenderZ": 155, - "StrengthWeight": 270, - "HintPriority": 150, - "PreviewScenario": "Defense" - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_BUILDING_WIZARD_TOWER", - "InfoTID": "TID_WIZARD_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "wizard_tower_lvl12", - "ExportNameConstruction": "wizard_tower_const", - "BuildTimeD": 2, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 2200000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "wizard_tower_upg", - "Hitpoints": 1440, - "RegenTime": 21, - "AttackRange": 700, - "AttackSpeed": 1300, - "DPS": 45, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "WizardTower_attack3", - "HitEffect": "Wizard Tower hit", - "Projectile": "wizardTower_projectile3", - "ExportNameDamaged": "destroyedBuilding_3l_round_pit_crystaldark", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "wizard_tower_base", - "AirTargets": true, - "GroundTargets": true, - "DamageRadius": 100, - "PickUpEffect": "Wizard Tower Pickup", - "PlacingEffect": "Wizard Tower Placing", - "DefenderCharacter": "Wizard6", - "DefenderCount": 1, - "DefenderZ": 135, - "StrengthWeight": 240, - "HintPriority": 150, - "PreviewScenario": "Defense" - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_BUILDING_WIZARD_TOWER", - "InfoTID": "TID_WIZARD_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "wizard_tower_lvl13", - "ExportNameConstruction": "wizard_tower_const", - "BuildTimeD": 2, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 2800000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "wizard_tower_upg", - "Hitpoints": 1680, - "RegenTime": 21, - "AttackRange": 700, - "AttackSpeed": 1300, - "DPS": 50, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "WizardTower_attack3", - "HitEffect": "Wizard Tower hit", - "Projectile": "wizardTower_projectile3", - "ExportNameDamaged": "destroyedBuilding_3l_round_pit_crystaldark", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "wizard_tower_base", - "AirTargets": true, - "GroundTargets": true, - "DamageRadius": 100, - "PickUpEffect": "Wizard Tower Pickup", - "PlacingEffect": "Wizard Tower Placing", - "DefenderCharacter": "Wizard7", - "DefenderCount": 1, - "DefenderZ": 135, - "StrengthWeight": 240, - "HintPriority": 150, - "PreviewScenario": "Defense" - }, - "10": { - "BuildingLevel": 10, - "TID": "TID_BUILDING_WIZARD_TOWER", - "InfoTID": "TID_WIZARD_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "wizard_tower_lvl14", - "ExportNameConstruction": "wizard_tower_const", - "BuildTimeD": 3, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 4000000, - "TownHallLevel": 11, - "CapitalHallLevel": 11, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "wizard_tower_upg", - "Hitpoints": 2000, - "RegenTime": 21, - "AttackRange": 700, - "AttackSpeed": 1300, - "DPS": 62, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "WizardTower_attack3", - "HitEffect": "Wizard Tower hit", - "Projectile": "wizardTower_projectile4", - "ExportNameDamaged": "destroyedBuilding_3l_round_pit_crystaldark", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "wizard_tower_base", - "AirTargets": true, - "GroundTargets": true, - "DamageRadius": 100, - "PickUpEffect": "Wizard Tower Pickup", - "PlacingEffect": "Wizard Tower Placing", - "DefenderCharacter": "Wizard7", - "DefenderCount": 1, - "DefenderZ": 135, - "StrengthWeight": 240, - "HintPriority": 150, - "PreviewScenario": "Defense" - }, - "11": { - "BuildingLevel": 11, - "TID": "TID_BUILDING_WIZARD_TOWER", - "InfoTID": "TID_WIZARD_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "wizard_tower_lvl15", - "ExportNameConstruction": "wizard_tower_const", - "BuildTimeD": 7, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 7200000, - "TownHallLevel": 12, - "CapitalHallLevel": 12, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "wizard_tower_upg", - "Hitpoints": 2240, - "RegenTime": 21, - "AttackRange": 700, - "AttackSpeed": 1300, - "DPS": 70, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "WizardTower_attack3", - "HitEffect": "Wizard Tower hit", - "Projectile": "wizardTower_projectile4", - "ExportNameDamaged": "destroyedBuilding_3l_round_pit_crystaldark", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "wizard_tower_base", - "AirTargets": true, - "GroundTargets": true, - "DamageRadius": 100, - "PickUpEffect": "Wizard Tower Pickup", - "PlacingEffect": "Wizard Tower Placing", - "DefenderCharacter": "Wizard8", - "DefenderCount": 1, - "DefenderZ": 135, - "StrengthWeight": 240, - "HintPriority": 150, - "PreviewScenario": "Defense" - }, - "12": { - "BuildingLevel": 12, - "TID": "TID_BUILDING_WIZARD_TOWER", - "InfoTID": "TID_WIZARD_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "wizard_tower_lvl16", - "ExportNameConstruction": "wizard_tower_const", - "BuildTimeD": 8, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 9200000, - "TownHallLevel": 13, - "CapitalHallLevel": 13, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "wizard_tower_upg", - "Hitpoints": 2480, - "RegenTime": 21, - "AttackRange": 700, - "AttackSpeed": 1300, - "DPS": 78, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "WizardTower_attack3", - "HitEffect": "Wizard Tower hit", - "Projectile": "wizardTower_projectile4", - "ExportNameDamaged": "destroyedBuilding_3l_round_pit_crystaldark", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "wizard_tower_base", - "AirTargets": true, - "GroundTargets": true, - "DamageRadius": 100, - "PickUpEffect": "Wizard Tower Pickup", - "PlacingEffect": "Wizard Tower Placing", - "DefenderCharacter": "Wizard8", - "DefenderCount": 1, - "DefenderZ": 135, - "StrengthWeight": 240, - "HintPriority": 150, - "PreviewScenario": "Defense" - }, - "13": { - "BuildingLevel": 13, - "TID": "TID_BUILDING_WIZARD_TOWER", - "InfoTID": "TID_WIZARD_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "wizard_tower_lvl17", - "ExportNameConstruction": "wizard_tower_const", - "BuildTimeD": 9, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 10200000, - "TownHallLevel": 13, - "CapitalHallLevel": 13, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "wizard_tower_upg", - "Hitpoints": 2700, - "RegenTime": 21, - "AttackRange": 700, - "AttackSpeed": 1300, - "DPS": 84, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "WizardTower_attack3", - "HitEffect": "Wizard Tower hit", - "Projectile": "wizardTower_projectile4", - "ExportNameDamaged": "destroyedBuilding_3l_round_pit_crystaldark", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "wizard_tower_base", - "AirTargets": true, - "GroundTargets": true, - "DamageRadius": 100, - "PickUpEffect": "Wizard Tower Pickup", - "PlacingEffect": "Wizard Tower Placing", - "DefenderCharacter": "Wizard9", - "DefenderCount": 1, - "DefenderZ": 135, - "StrengthWeight": 240, - "HintPriority": 150, - "PreviewScenario": "Defense" - }, - "14": { - "BuildingLevel": 14, - "TID": "TID_BUILDING_WIZARD_TOWER", - "InfoTID": "TID_WIZARD_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "wizard_tower_lvl18", - "ExportNameConstruction": "wizard_tower_const", - "BuildTimeD": 13, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 12000000, - "TownHallLevel": 14, - "CapitalHallLevel": 14, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "wizard_tower_upg", - "Hitpoints": 2900, - "RegenTime": 21, - "AttackRange": 700, - "AttackSpeed": 1300, - "DPS": 90, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "WizardTower_attack3", - "HitEffect": "Wizard Tower hit", - "Projectile": "wizardTower_projectile4", - "ExportNameDamaged": "destroyedBuilding_3l_round_pit_crystaldark", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "wizard_tower_base", - "AirTargets": true, - "GroundTargets": true, - "DamageRadius": 100, - "PickUpEffect": "Wizard Tower Pickup", - "PlacingEffect": "Wizard Tower Placing", - "DefenderCharacter": "Wizard10", - "DefenderCount": 1, - "DefenderZ": 135, - "StrengthWeight": 240, - "HintPriority": 150, - "PreviewScenario": "Defense" - }, - "15": { - "BuildingLevel": 15, - "TID": "TID_BUILDING_WIZARD_TOWER", - "InfoTID": "TID_WIZARD_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "wizard_tower_lvl19", - "ExportNameConstruction": "wizard_tower_const", - "BuildTimeD": 13, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 19200000, - "TownHallLevel": 15, - "CapitalHallLevel": 15, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "wizard_tower_upg", - "Hitpoints": 3000, - "RegenTime": 21, - "AttackRange": 700, - "AttackSpeed": 1300, - "DPS": 95, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "WizardTower_attack3", - "HitEffect": "Wizard Tower hit", - "Projectile": "wizardTower_projectile4", - "ExportNameDamaged": "destroyedBuilding_3l_round_pit_crystaldark", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "wizard_tower_base", - "AirTargets": true, - "GroundTargets": true, - "DamageRadius": 100, - "PickUpEffect": "Wizard Tower Pickup", - "PlacingEffect": "Wizard Tower Placing", - "DefenderCharacter": "Wizard11", - "DefenderCount": 1, - "DefenderZ": 135, - "StrengthWeight": 250, - "HintPriority": 150, - "PreviewScenario": "Defense" - }, - "16": { - "BuildingLevel": 16, - "TID": "TID_BUILDING_WIZARD_TOWER", - "InfoTID": "TID_WIZARD_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "wizard_tower_lvl20", - "ExportNameConstruction": "wizard_tower_const", - "BuildTimeD": 14, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 20200000, - "TownHallLevel": 16, - "CapitalHallLevel": 16, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "wizard_tower_upg", - "Hitpoints": 3150, - "RegenTime": 21, - "AttackRange": 700, - "AttackSpeed": 1300, - "DPS": 102, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "WizardTower_attack3", - "HitEffect": "Wizard Tower hit", - "Projectile": "wizardTower_projectile4", - "ExportNameDamaged": "destroyedBuilding_3l_round_pit_crystaldark", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "wizard_tower_base", - "AirTargets": true, - "GroundTargets": true, - "DamageRadius": 100, - "PickUpEffect": "Wizard Tower Pickup", - "PlacingEffect": "Wizard Tower Placing", - "DefenderCharacter": "Wizard12", - "DefenderCount": 1, - "DefenderZ": 135, - "StrengthWeight": 250, - "HintPriority": 150, - "PreviewScenario": "Defense" - } - }, - "Air Defense": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_AIR_DEFENSE", - "InfoTID": "TID_AIR_DEFENSE_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "fireworks_tower_lvl1", - "ExportNameConstruction": "basic_turret_const", - "BuildTimeD": 0, - "BuildTimeH": 3, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 22000, - "TownHallLevel": 4, - "CapitalHallLevel": 4, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "fireworks_tower_upg", - "ExportNameUpgradeAnim": "fireworks_tower_lvl1_upgrade", - "Hitpoints": 800, - "RegenTime": 15, - "AttackRange": 1000, - "AttackSpeed": 1000, - "DPS": 80, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Air Defence Attack", - "HitEffect": "Air Defence hit1", - "Projectile": "Firework", - "ExportNameDamaged": "destroyedBuilding_3s_pit_wood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "airdefence_tower_base", - "AirTargets": true, - "GroundTargets": false, - "PickUpEffect": "Air Defence Pickup", - "PlacingEffect": "Air Defence Placing", - "StrengthWeight": 50, - "HintPriority": 150, - "PreviewScenario": "AirDefense" - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_AIR_DEFENSE", - "InfoTID": "TID_AIR_DEFENSE_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "fireworks_tower_lvl2", - "ExportNameConstruction": "basic_turret_const", - "BuildTimeD": 0, - "BuildTimeH": 8, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 90000, - "TownHallLevel": 4, - "CapitalHallLevel": 4, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "fireworks_tower_upg", - "ExportNameUpgradeAnim": "fireworks_tower_lvl2_upgrade", - "Hitpoints": 850, - "RegenTime": 16, - "AttackRange": 1000, - "AttackSpeed": 1000, - "DPS": 110, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Air Defence Attack", - "HitEffect": "Air Defence hit1", - "Projectile": "Firework2", - "ExportNameDamaged": "destroyedBuilding_3s_pit_wood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "airdefence_tower_base", - "AirTargets": true, - "GroundTargets": false, - "PickUpEffect": "Air Defence Pickup", - "PlacingEffect": "Air Defence Placing", - "StrengthWeight": 50, - "HintPriority": 150, - "PreviewScenario": "AirDefense" - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_AIR_DEFENSE", - "InfoTID": "TID_AIR_DEFENSE_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "fireworks_tower_lvl3", - "ExportNameConstruction": "basic_turret_const", - "BuildTimeD": 0, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 270000, - "TownHallLevel": 5, - "CapitalHallLevel": 5, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "fireworks_tower_upg", - "ExportNameUpgradeAnim": "fireworks_tower_lvl3_upgrade", - "Hitpoints": 900, - "RegenTime": 17, - "AttackRange": 1000, - "AttackSpeed": 1000, - "DPS": 140, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Air Defence Attack", - "HitEffect": "Air Defence hit2", - "Projectile": "Firework3", - "ExportNameDamaged": "destroyedBuilding_3s_pit_wood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "airdefence_tower_base", - "AirTargets": true, - "GroundTargets": false, - "PickUpEffect": "Air Defence Pickup", - "PlacingEffect": "Air Defence Placing", - "StrengthWeight": 50, - "HintPriority": 150, - "PreviewScenario": "AirDefense" - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_AIR_DEFENSE", - "InfoTID": "TID_AIR_DEFENSE_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "fireworks_tower_lvl4", - "ExportNameConstruction": "basic_turret_const", - "BuildTimeD": 0, - "BuildTimeH": 18, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 500000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "fireworks_tower_upg", - "ExportNameUpgradeAnim": "fireworks_tower_lvl4_upgrade", - "Hitpoints": 950, - "RegenTime": 18, - "AttackRange": 1000, - "AttackSpeed": 1000, - "DPS": 160, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Air Defence Attack", - "HitEffect": "Air Defence hit2", - "Projectile": "Firework4", - "ExportNameDamaged": "destroyedBuilding_3s_pit_wood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "airdefence_tower_base", - "AirTargets": true, - "GroundTargets": false, - "PickUpEffect": "Air Defence Pickup", - "PlacingEffect": "Air Defence Placing", - "StrengthWeight": 50, - "HintPriority": 150, - "PreviewScenario": "AirDefense" - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_AIR_DEFENSE", - "InfoTID": "TID_AIR_DEFENSE_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "fireworks_tower_lvl5", - "ExportNameConstruction": "basic_turret_const", - "BuildTimeD": 1, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 800000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "fireworks_tower_upg", - "ExportNameUpgradeAnim": "fireworks_tower_lvl5_upgrade", - "Hitpoints": 1000, - "RegenTime": 19, - "AttackRange": 1000, - "AttackSpeed": 1000, - "DPS": 190, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Air Defence Attack", - "HitEffect": "Air Defence hit3", - "Projectile": "Firework5", - "ExportNameDamaged": "destroyedBuilding_3s_pit_wood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "airdefence_tower_base", - "AirTargets": true, - "GroundTargets": false, - "PickUpEffect": "Air Defence Pickup", - "PlacingEffect": "Air Defence Placing", - "StrengthWeight": 50, - "HintPriority": 150, - "PreviewScenario": "AirDefense" - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_BUILDING_AIR_DEFENSE", - "InfoTID": "TID_AIR_DEFENSE_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "fireworks_tower_lvl6", - "ExportNameConstruction": "basic_turret_const", - "BuildTimeD": 1, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 1000000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "fireworks_tower_upg", - "ExportNameUpgradeAnim": "fireworks_tower_lvl6_upgrade", - "Hitpoints": 1050, - "RegenTime": 20, - "AttackRange": 1000, - "AttackSpeed": 1000, - "DPS": 230, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Air Defence Attack", - "HitEffect": "Air Defence hit3", - "Projectile": "Firework6", - "ExportNameDamaged": "destroyedBuilding_3s_pit_wood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "airdefence_tower_base", - "AirTargets": true, - "GroundTargets": false, - "PickUpEffect": "Air Defence Pickup", - "PlacingEffect": "Air Defence Placing", - "StrengthWeight": 50, - "HintPriority": 150, - "PreviewScenario": "AirDefense" - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_BUILDING_AIR_DEFENSE", - "InfoTID": "TID_AIR_DEFENSE_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "fireworks_tower_lvl7", - "ExportNameConstruction": "basic_turret_const", - "BuildTimeD": 2, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 1750000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "ExportNameUpgradeAnim": "fireworks_tower_lvl7_upgrade", - "Hitpoints": 1100, - "RegenTime": 21, - "AttackRange": 1000, - "AttackSpeed": 1000, - "DPS": 280, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Air Defence Attack", - "HitEffect": "Air Defence hit3", - "Projectile": "Firework7", - "ExportNameDamaged": "destroyedBuilding_3s_pit_wood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "airdefence_tower_base", - "AirTargets": true, - "GroundTargets": false, - "PickUpEffect": "Air Defence Pickup", - "PlacingEffect": "Air Defence Placing", - "StrengthWeight": 50, - "HintPriority": 150, - "PreviewScenario": "AirDefense" - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_BUILDING_AIR_DEFENSE", - "InfoTID": "TID_AIR_DEFENSE_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "fireworks_tower_lvl8", - "ExportNameConstruction": "basic_turret_const", - "BuildTimeD": 2, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 2300000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "ExportNameUpgradeAnim": "fireworks_tower_lvl8_upgrade", - "Hitpoints": 1210, - "RegenTime": 21, - "AttackRange": 1000, - "AttackSpeed": 1000, - "DPS": 320, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Air Defence Attack", - "HitEffect": "Air Defence hit3", - "Projectile": "Firework8", - "ExportNameDamaged": "destroyedBuilding_3s_pit_wood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "airdefence_tower_base", - "AirTargets": true, - "GroundTargets": false, - "PickUpEffect": "Air Defence Pickup", - "PlacingEffect": "Air Defence Placing", - "StrengthWeight": 50, - "HintPriority": 150, - "PreviewScenario": "AirDefense" - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_BUILDING_AIR_DEFENSE", - "InfoTID": "TID_AIR_DEFENSE_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "fireworks_tower_lvl9", - "ExportNameConstruction": "basic_turret_const", - "BuildTimeD": 3, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 3400000, - "TownHallLevel": 11, - "CapitalHallLevel": 11, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "ExportNameUpgradeAnim": "fireworks_tower_lvl9_upgrade", - "Hitpoints": 1300, - "RegenTime": 21, - "AttackRange": 1000, - "AttackSpeed": 1000, - "DPS": 360, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Air Defence Attack", - "HitEffect": "Air Defence hit3", - "Projectile": "Firework9", - "ExportNameDamaged": "destroyedBuilding_3s_pit_wood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "airdefence_tower_base", - "AirTargets": true, - "GroundTargets": false, - "PickUpEffect": "Air Defence Pickup", - "PlacingEffect": "Air Defence Placing", - "StrengthWeight": 50, - "HintPriority": 150, - "PreviewScenario": "AirDefense" - }, - "10": { - "BuildingLevel": 10, - "TID": "TID_BUILDING_AIR_DEFENSE", - "InfoTID": "TID_AIR_DEFENSE_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "fireworks_tower_lvl10", - "ExportNameConstruction": "basic_turret_const", - "BuildTimeD": 8, - "BuildTimeH": 18, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 5800000, - "TownHallLevel": 12, - "CapitalHallLevel": 12, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "ExportNameUpgradeAnim": "fireworks_tower_lvl10_upgrade", - "Hitpoints": 1400, - "RegenTime": 21, - "AttackRange": 1000, - "AttackSpeed": 1000, - "DPS": 400, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Air Defence Attack", - "HitEffect": "Air Defence hit3", - "Projectile": "Firework9", - "ExportNameDamaged": "destroyedBuilding_3s_pit_wood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "airdefence_tower_base", - "AirTargets": true, - "GroundTargets": false, - "PickUpEffect": "Air Defence Pickup", - "PlacingEffect": "Air Defence Placing", - "StrengthWeight": 50, - "HintPriority": 150, - "PreviewScenario": "AirDefense" - }, - "11": { - "BuildingLevel": 11, - "TID": "TID_BUILDING_AIR_DEFENSE", - "InfoTID": "TID_AIR_DEFENSE_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "fireworks_tower_lvl11", - "ExportNameConstruction": "basic_turret_const", - "BuildTimeD": 9, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 8400000, - "TownHallLevel": 13, - "CapitalHallLevel": 13, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "ExportNameUpgradeAnim": "fireworks_tower_lvl11_upgrade", - "Hitpoints": 1500, - "RegenTime": 21, - "AttackRange": 1000, - "AttackSpeed": 1000, - "DPS": 440, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Air Defence Attack", - "HitEffect": "Air Defence hit3", - "Projectile": "Firework9", - "ExportNameDamaged": "destroyedBuilding_3s_pit_wood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "airdefence_tower_base", - "AirTargets": true, - "GroundTargets": false, - "PickUpEffect": "Air Defence Pickup", - "PlacingEffect": "Air Defence Placing", - "StrengthWeight": 50, - "HintPriority": 150, - "PreviewScenario": "AirDefense" - }, - "12": { - "BuildingLevel": 12, - "TID": "TID_BUILDING_AIR_DEFENSE", - "InfoTID": "TID_AIR_DEFENSE_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "fireworks_tower_lvl12", - "ExportNameConstruction": "basic_turret_const", - "BuildTimeD": 12, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 11900000, - "TownHallLevel": 14, - "CapitalHallLevel": 14, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "ExportNameUpgradeAnim": "fireworks_tower_lvl12_upgrade", - "Hitpoints": 1650, - "RegenTime": 21, - "AttackRange": 1000, - "AttackSpeed": 1000, - "DPS": 500, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Air Defence Attack", - "HitEffect": "Air Defence hit3", - "Projectile": "Firework9", - "ExportNameDamaged": "destroyedBuilding_3s_pit_wood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "airdefence_tower_base", - "AirTargets": true, - "GroundTargets": false, - "PickUpEffect": "Air Defence Pickup", - "PlacingEffect": "Air Defence Placing", - "StrengthWeight": 50, - "HintPriority": 150, - "PreviewScenario": "AirDefense" - }, - "13": { - "BuildingLevel": 13, - "TID": "TID_BUILDING_AIR_DEFENSE", - "InfoTID": "TID_AIR_DEFENSE_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "fireworks_tower_lvl13", - "ExportNameConstruction": "basic_turret_const", - "BuildTimeD": 13, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 19500000, - "TownHallLevel": 15, - "CapitalHallLevel": 15, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "ExportNameUpgradeAnim": "fireworks_tower_lvl13_upgrade", - "Hitpoints": 1750, - "RegenTime": 21, - "AttackRange": 1000, - "AttackSpeed": 1000, - "DPS": 540, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Air Defence Attack", - "HitEffect": "Air Defence hit3", - "Projectile": "Firework9", - "ExportNameDamaged": "destroyedBuilding_3s_pit_wood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "airdefence_tower_base", - "AirTargets": true, - "GroundTargets": false, - "PickUpEffect": "Air Defence Pickup", - "PlacingEffect": "Air Defence Placing", - "StrengthWeight": 50, - "HintPriority": 150, - "PreviewScenario": "AirDefense" - }, - "14": { - "BuildingLevel": 14, - "TID": "TID_BUILDING_AIR_DEFENSE", - "InfoTID": "TID_AIR_DEFENSE_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "fireworks_tower_lvl14", - "ExportNameConstruction": "basic_turret_const", - "BuildTimeD": 15, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 20500000, - "TownHallLevel": 16, - "CapitalHallLevel": 16, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "ExportNameUpgradeAnim": "fireworks_tower_lvl14_upgrade", - "Hitpoints": 1850, - "RegenTime": 21, - "AttackRange": 1000, - "AttackSpeed": 1000, - "DPS": 600, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Air Defence Attack", - "HitEffect": "Air Defence hit3", - "Projectile": "Firework9", - "ExportNameDamaged": "destroyedBuilding_3s_pit_wood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "airdefence_tower_base", - "AirTargets": true, - "GroundTargets": false, - "PickUpEffect": "Air Defence Pickup", - "PlacingEffect": "Air Defence Placing", - "StrengthWeight": 50, - "HintPriority": 150, - "PreviewScenario": "AirDefense" - } - }, - "Mortar": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_MORTAR", - "InfoTID": "TID_MORTAR_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "mortar_lvl1", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 0, - "BuildTimeH": 3, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 5000, - "TownHallLevel": 3, - "CapitalHallLevel": 3, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 400, - "RegenTime": 20, - "AttackRange": 1100, - "AltAttackMode": true, - "AltAttackRange": 1100, - "AttackSpeed": 5000, - "AltAttackSpeed": 1000, - "DPS": 4, - "AltDPS": 8, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Mortar Attack", - "HitEffect": "Mortar Hit", - "Projectile": "Mortar Ammo1", - "AltProjectile": "Mortar Ammo1", - "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "AltAirTargets": false, - "AltGroundTargets": true, - "MinAttackRange": 400, - "DamageRadius": 150, - "PushBack": 100, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "AnimateTurret": true, - "StrengthWeight": 450, - "AltBurstCount": 3, - "AltBurstDelay": 500, - "GearUpBuilding": "Multi Mortar", - "GearUpLevelRequirement": 7, - "GearUpResource": "Gold", - "GearUpCost": 8000000, - "GearUpTime": 20160, - "GearUpTID": "TID_GEAR_UP_MORTAR", - "HintPriority": 150, - "PreviewScenario": "DefenseLongRange", - "AltPreviewScenario": "DefenseLongRange" - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_MORTAR", - "InfoTID": "TID_MORTAR_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "mortar_lvl2", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 0, - "BuildTimeH": 6, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 25000, - "TownHallLevel": 4, - "CapitalHallLevel": 4, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 450, - "RegenTime": 21, - "AttackRange": 1100, - "AltAttackMode": true, - "AltAttackRange": 1100, - "AttackSpeed": 5000, - "AltAttackSpeed": 1000, - "DPS": 5, - "AltDPS": 9, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Mortar Attack", - "HitEffect": "Mortar Hit", - "Projectile": "Mortar Ammo2", - "AltProjectile": "Mortar Ammo2", - "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "AltAirTargets": false, - "AltGroundTargets": true, - "MinAttackRange": 400, - "DamageRadius": 150, - "PushBack": 100, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "AnimateTurret": true, - "StrengthWeight": 440, - "AltBurstCount": 3, - "AltBurstDelay": 500, - "GearUpBuilding": "Multi Mortar", - "GearUpLevelRequirement": 7, - "GearUpResource": "Gold", - "GearUpCost": 8000000, - "GearUpTime": 20160, - "GearUpTID": "TID_GEAR_UP_MORTAR", - "HintPriority": 150, - "PreviewScenario": "DefenseLongRange", - "AltPreviewScenario": "DefenseLongRange" - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_MORTAR", - "InfoTID": "TID_MORTAR_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "mortar_lvl3", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 0, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 100000, - "TownHallLevel": 5, - "CapitalHallLevel": 5, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 500, - "RegenTime": 22, - "AttackRange": 1100, - "AltAttackMode": true, - "AltAttackRange": 1100, - "AttackSpeed": 5000, - "AltAttackSpeed": 1000, - "DPS": 6, - "AltDPS": 11, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Mortar Attack", - "HitEffect": "Mortar Hit", - "Projectile": "Mortar Ammo3", - "AltProjectile": "Mortar Ammo3", - "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "AltAirTargets": false, - "AltGroundTargets": true, - "MinAttackRange": 400, - "DamageRadius": 150, - "PushBack": 100, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "AnimateTurret": true, - "StrengthWeight": 430, - "AltBurstCount": 3, - "AltBurstDelay": 500, - "GearUpBuilding": "Multi Mortar", - "GearUpLevelRequirement": 7, - "GearUpResource": "Gold", - "GearUpCost": 8000000, - "GearUpTime": 20160, - "GearUpTID": "TID_GEAR_UP_MORTAR", - "HintPriority": 150, - "PreviewScenario": "DefenseLongRange", - "AltPreviewScenario": "DefenseLongRange" - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_MORTAR", - "InfoTID": "TID_MORTAR_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "mortar_lvl4", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 0, - "BuildTimeH": 18, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 200000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 550, - "RegenTime": 23, - "AttackRange": 1100, - "AltAttackMode": true, - "AltAttackRange": 1100, - "AttackSpeed": 5000, - "AltAttackSpeed": 1000, - "DPS": 7, - "AltDPS": 13, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Mortar Attack", - "HitEffect": "Mortar Hit", - "Projectile": "Mortar Ammo4", - "AltProjectile": "Mortar Ammo4", - "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "AltAirTargets": false, - "AltGroundTargets": true, - "MinAttackRange": 400, - "DamageRadius": 150, - "PushBack": 100, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "AnimateTurret": true, - "StrengthWeight": 420, - "AltBurstCount": 3, - "AltBurstDelay": 500, - "GearUpBuilding": "Multi Mortar", - "GearUpLevelRequirement": 7, - "GearUpResource": "Gold", - "GearUpCost": 8000000, - "GearUpTime": 20160, - "GearUpTID": "TID_GEAR_UP_MORTAR", - "HintPriority": 150, - "PreviewScenario": "DefenseLongRange", - "AltPreviewScenario": "DefenseLongRange" - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_MORTAR", - "InfoTID": "TID_MORTAR_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "mortar_lvl5", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 1, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 300000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 600, - "RegenTime": 24, - "AttackRange": 1100, - "AltAttackMode": true, - "AltAttackRange": 1100, - "AttackSpeed": 5000, - "AltAttackSpeed": 1000, - "DPS": 9, - "AltDPS": 17, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Mortar Attack", - "HitEffect": "Mortar Hit", - "Projectile": "Mortar Ammo5", - "AltProjectile": "Mortar Ammo5", - "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "AltAirTargets": false, - "AltGroundTargets": true, - "MinAttackRange": 400, - "DamageRadius": 150, - "PushBack": 100, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "AnimateTurret": true, - "StrengthWeight": 410, - "AltBurstCount": 3, - "AltBurstDelay": 500, - "GearUpBuilding": "Multi Mortar", - "GearUpLevelRequirement": 7, - "GearUpResource": "Gold", - "GearUpCost": 8000000, - "GearUpTime": 20160, - "GearUpTID": "TID_GEAR_UP_MORTAR", - "HintPriority": 150, - "PreviewScenario": "DefenseLongRange", - "AltPreviewScenario": "DefenseLongRange" - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_BUILDING_MORTAR", - "InfoTID": "TID_MORTAR_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "mortar_lvl6", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 2, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 560000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 650, - "RegenTime": 25, - "AttackRange": 1100, - "AltAttackMode": true, - "AltAttackRange": 1100, - "AttackSpeed": 5000, - "AltAttackSpeed": 1000, - "DPS": 11, - "AltDPS": 20, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Mortar Attack", - "HitEffect": "Mortar Hit lvl6", - "Projectile": "Mortar Ammo6", - "AltProjectile": "Mortar Ammo6", - "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "AltAirTargets": false, - "AltGroundTargets": true, - "MinAttackRange": 400, - "DamageRadius": 150, - "PushBack": 100, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "AnimateTurret": true, - "StrengthWeight": 400, - "AltBurstCount": 3, - "AltBurstDelay": 500, - "GearUpBuilding": "Multi Mortar", - "GearUpLevelRequirement": 7, - "GearUpResource": "Gold", - "GearUpCost": 8000000, - "GearUpTime": 20160, - "GearUpTID": "TID_GEAR_UP_MORTAR", - "HintPriority": 150, - "PreviewScenario": "DefenseLongRange", - "AltPreviewScenario": "DefenseLongRange" - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_BUILDING_MORTAR", - "InfoTID": "TID_MORTAR_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "mortar_lvl7", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 2, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 1300000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 700, - "RegenTime": 26, - "AttackRange": 1100, - "AltAttackMode": true, - "AltAttackRange": 1100, - "AttackSpeed": 5000, - "AltAttackSpeed": 1000, - "DPS": 15, - "AltDPS": 27, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Mortar Attack", - "HitEffect": "Mortar Hit lvl6", - "Projectile": "Mortar Ammo6", - "AltProjectile": "Mortar Ammo6", - "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "AltAirTargets": false, - "AltGroundTargets": true, - "MinAttackRange": 400, - "DamageRadius": 150, - "PushBack": 100, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "AnimateTurret": true, - "StrengthWeight": 390, - "AltBurstCount": 3, - "AltBurstDelay": 500, - "GearUpBuilding": "Multi Mortar", - "GearUpLevelRequirement": 7, - "GearUpResource": "Gold", - "GearUpCost": 8000000, - "GearUpTime": 20160, - "GearUpTID": "TID_GEAR_UP_MORTAR", - "HintPriority": 150, - "PreviewScenario": "DefenseLongRange", - "AltPreviewScenario": "DefenseLongRange" - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_BUILDING_MORTAR", - "InfoTID": "TID_MORTAR_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "mortar_lvl8", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 2, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 1900000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 800, - "RegenTime": 26, - "AttackRange": 1100, - "AltAttackMode": true, - "AltAttackRange": 1100, - "AttackSpeed": 5000, - "AltAttackSpeed": 1000, - "DPS": 20, - "AltDPS": 37, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Mortar Attack", - "HitEffect": "Mortar Hit lvl8", - "Projectile": "Mortar Ammo8", - "AltProjectile": "Mortar Ammo8", - "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "AltAirTargets": false, - "AltGroundTargets": true, - "MinAttackRange": 400, - "DamageRadius": 150, - "PushBack": 100, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "AnimateTurret": true, - "StrengthWeight": 380, - "AltBurstCount": 3, - "AltBurstDelay": 500, - "GearUpBuilding": "Multi Mortar", - "GearUpLevelRequirement": 7, - "GearUpResource": "Gold", - "GearUpCost": 8000000, - "GearUpTime": 20160, - "GearUpTID": "TID_GEAR_UP_MORTAR", - "HintPriority": 150, - "PreviewScenario": "DefenseLongRange", - "AltPreviewScenario": "DefenseLongRange" - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_BUILDING_MORTAR", - "InfoTID": "TID_MORTAR_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "mortar_lvl9", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 3, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 2500000, - "TownHallLevel": 11, - "CapitalHallLevel": 11, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 950, - "RegenTime": 27, - "AttackRange": 1100, - "AltAttackMode": true, - "AltAttackRange": 1100, - "AttackSpeed": 5000, - "AltAttackSpeed": 1000, - "DPS": 25, - "AltDPS": 47, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Mortar Attack", - "HitEffect": "Mortar Hit lvl8", - "Projectile": "Mortar Ammo9", - "AltProjectile": "Mortar Ammo9", - "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "AltAirTargets": false, - "AltGroundTargets": true, - "MinAttackRange": 400, - "DamageRadius": 150, - "PushBack": 100, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "AnimateTurret": true, - "StrengthWeight": 370, - "AltBurstCount": 3, - "AltBurstDelay": 500, - "GearUpBuilding": "Multi Mortar", - "GearUpLevelRequirement": 7, - "GearUpResource": "Gold", - "GearUpCost": 8000000, - "GearUpTime": 20160, - "GearUpTID": "TID_GEAR_UP_MORTAR", - "HintPriority": 150, - "PreviewScenario": "DefenseLongRange", - "AltPreviewScenario": "DefenseLongRange" - }, - "10": { - "BuildingLevel": 10, - "TID": "TID_BUILDING_MORTAR", - "InfoTID": "TID_MORTAR_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "mortar_lvl10", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 3, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 3500000, - "TownHallLevel": 11, - "CapitalHallLevel": 11, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 1100, - "RegenTime": 27, - "AttackRange": 1100, - "AltAttackMode": true, - "AltAttackRange": 1100, - "AttackSpeed": 5000, - "AltAttackSpeed": 1000, - "DPS": 30, - "AltDPS": 56, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Mortar Attack", - "HitEffect": "Mortar Hit lvl8", - "Projectile": "Mortar Ammo10", - "AltProjectile": "Mortar Ammo10", - "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "AltAirTargets": false, - "AltGroundTargets": true, - "MinAttackRange": 400, - "DamageRadius": 150, - "PushBack": 100, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "AnimateTurret": true, - "StrengthWeight": 360, - "AltBurstCount": 3, - "AltBurstDelay": 500, - "GearUpBuilding": "Multi Mortar", - "GearUpLevelRequirement": 7, - "GearUpResource": "Gold", - "GearUpTID": "TID_GEAR_UP_MORTAR", - "HintPriority": 150, - "PreviewScenario": "DefenseLongRange", - "AltPreviewScenario": "DefenseLongRange" - }, - "11": { - "BuildingLevel": 11, - "TID": "TID_BUILDING_MORTAR", - "InfoTID": "TID_MORTAR_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "mortar_lvl11", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 7, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 5800000, - "TownHallLevel": 12, - "CapitalHallLevel": 12, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 1300, - "RegenTime": 27, - "AttackRange": 1100, - "AltAttackMode": true, - "AltAttackRange": 1100, - "AttackSpeed": 5000, - "AltAttackSpeed": 1000, - "DPS": 35, - "AltDPS": 64, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Mortar Attack", - "HitEffect": "Mortar Hit lvl8", - "Projectile": "Mortar Ammo10", - "AltProjectile": "Mortar Ammo10", - "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "AltAirTargets": false, - "AltGroundTargets": true, - "MinAttackRange": 400, - "DamageRadius": 150, - "PushBack": 100, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "AnimateTurret": true, - "StrengthWeight": 350, - "AltBurstCount": 3, - "AltBurstDelay": 500, - "GearUpBuilding": "Multi Mortar", - "GearUpLevelRequirement": 7, - "GearUpResource": "Gold", - "GearUpTID": "TID_GEAR_UP_MORTAR", - "HintPriority": 150, - "PreviewScenario": "DefenseLongRange", - "AltPreviewScenario": "DefenseLongRange" - }, - "12": { - "BuildingLevel": 12, - "TID": "TID_BUILDING_MORTAR", - "InfoTID": "TID_MORTAR_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "mortar_lvl12", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 7, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 6500000, - "TownHallLevel": 12, - "CapitalHallLevel": 12, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 1500, - "RegenTime": 27, - "AttackRange": 1100, - "AltAttackMode": true, - "AltAttackRange": 1100, - "AttackSpeed": 5000, - "AltAttackSpeed": 1000, - "DPS": 38, - "AltDPS": 70, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Mortar Attack", - "HitEffect": "Mortar Hit lvl8", - "Projectile": "Mortar Ammo10", - "AltProjectile": "Mortar Ammo10", - "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "AltAirTargets": false, - "AltGroundTargets": true, - "MinAttackRange": 400, - "DamageRadius": 150, - "PushBack": 100, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "AnimateTurret": true, - "StrengthWeight": 350, - "AltBurstCount": 3, - "AltBurstDelay": 500, - "GearUpBuilding": "Multi Mortar", - "GearUpLevelRequirement": 7, - "GearUpResource": "Gold", - "GearUpTID": "TID_GEAR_UP_MORTAR", - "HintPriority": 150, - "PreviewScenario": "DefenseLongRange", - "AltPreviewScenario": "DefenseLongRange" - }, - "13": { - "BuildingLevel": 13, - "TID": "TID_BUILDING_MORTAR", - "InfoTID": "TID_MORTAR_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "mortar_lvl13", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 7, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 8200000, - "TownHallLevel": 13, - "CapitalHallLevel": 13, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 1700, - "RegenTime": 27, - "AttackRange": 1100, - "AltAttackMode": true, - "AltAttackRange": 1100, - "AttackSpeed": 5000, - "AltAttackSpeed": 1000, - "DPS": 42, - "AltDPS": 77, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Mortar Attack", - "HitEffect": "Mortar Hit lvl8", - "Projectile": "Mortar Ammo11", - "AltProjectile": "Mortar Ammo11", - "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "AltAirTargets": false, - "AltGroundTargets": true, - "MinAttackRange": 400, - "DamageRadius": 150, - "PushBack": 100, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "AnimateTurret": true, - "StrengthWeight": 340, - "AltBurstCount": 3, - "AltBurstDelay": 500, - "GearUpBuilding": "Multi Mortar", - "GearUpLevelRequirement": 7, - "GearUpResource": "Gold", - "GearUpTID": "TID_GEAR_UP_MORTAR", - "HintPriority": 150, - "PreviewScenario": "DefenseLongRange", - "AltPreviewScenario": "DefenseLongRange" - }, - "14": { - "BuildingLevel": 14, - "TID": "TID_BUILDING_MORTAR", - "InfoTID": "TID_MORTAR_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "mortar_lvl14", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 12, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 15000000, - "TownHallLevel": 14, - "CapitalHallLevel": 14, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 1950, - "RegenTime": 27, - "AttackRange": 1100, - "AltAttackMode": true, - "AltAttackRange": 1100, - "AttackSpeed": 5000, - "AltAttackSpeed": 1000, - "DPS": 48, - "AltDPS": 88, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Mortar Attack", - "HitEffect": "Mortar Hit lvl8", - "Projectile": "Mortar Ammo11", - "AltProjectile": "Mortar Ammo11", - "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "AltAirTargets": false, - "AltGroundTargets": true, - "MinAttackRange": 400, - "DamageRadius": 150, - "PushBack": 100, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "AnimateTurret": true, - "StrengthWeight": 340, - "AltBurstCount": 3, - "AltBurstDelay": 500, - "GearUpBuilding": "Multi Mortar", - "GearUpLevelRequirement": 7, - "GearUpResource": "Gold", - "GearUpTID": "TID_GEAR_UP_MORTAR", - "HintPriority": 150, - "PreviewScenario": "DefenseLongRange", - "AltPreviewScenario": "DefenseLongRange" - }, - "15": { - "BuildingLevel": 15, - "TID": "TID_BUILDING_MORTAR", - "InfoTID": "TID_MORTAR_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "mortar_lvl15", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 13, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 19000000, - "TownHallLevel": 15, - "CapitalHallLevel": 15, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 2150, - "RegenTime": 27, - "AttackRange": 1100, - "AltAttackMode": true, - "AltAttackRange": 1100, - "AttackSpeed": 5000, - "AltAttackSpeed": 1000, - "DPS": 54, - "AltDPS": 99, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Mortar Attack", - "HitEffect": "Mortar Hit lvl8", - "Projectile": "Mortar Ammo11", - "AltProjectile": "Mortar Ammo11", - "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "AltAirTargets": false, - "AltGroundTargets": true, - "MinAttackRange": 400, - "DamageRadius": 150, - "PushBack": 100, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "AnimateTurret": true, - "StrengthWeight": 340, - "AltBurstCount": 3, - "AltBurstDelay": 500, - "GearUpBuilding": "Multi Mortar", - "GearUpLevelRequirement": 7, - "GearUpResource": "Gold", - "GearUpTID": "TID_GEAR_UP_MORTAR", - "HintPriority": 150, - "PreviewScenario": "DefenseLongRange", - "AltPreviewScenario": "DefenseLongRange" - }, - "16": { - "BuildingLevel": 16, - "TID": "TID_BUILDING_MORTAR", - "InfoTID": "TID_MORTAR_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "mortar_lvl16", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 14, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 19500000, - "TownHallLevel": 16, - "CapitalHallLevel": 16, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 2300, - "RegenTime": 27, - "AttackRange": 1100, - "AltAttackMode": true, - "AltAttackRange": 1100, - "AttackSpeed": 5000, - "AltAttackSpeed": 1000, - "DPS": 60, - "AltDPS": 110, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Mortar Attack", - "HitEffect": "Mortar Hit lvl8", - "Projectile": "Mortar Ammo lvl16", - "AltProjectile": "Mortar Ammo lvl16", - "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "AltAirTargets": false, - "AltGroundTargets": true, - "MinAttackRange": 400, - "DamageRadius": 150, - "PushBack": 100, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "AnimateTurret": true, - "StrengthWeight": 340, - "AltBurstCount": 3, - "AltBurstDelay": 500, - "GearUpBuilding": "Multi Mortar", - "GearUpLevelRequirement": 7, - "GearUpResource": "Gold", - "GearUpTID": "TID_GEAR_UP_MORTAR", - "HintPriority": 150, - "PreviewScenario": "DefenseLongRange", - "AltPreviewScenario": "DefenseLongRange" - } - }, - "Clan Castle": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_ALLIANCE_CASTLE", - "InfoTID": "TID_ALLIANCE_CASTLE_INFO", - "BuildingClass": "Army", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "alliance_castle_lvl1", - "ExportNameConstruction": "generic_construction_state3", - "ExportNameLocked": "alliance_castle_lvl1_broken", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 10000, - "TownHallLevel": 3, - "CapitalHallLevel": 3, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredWarGold": 75000, - "MaxStoredWarElixir": 75000, - "MaxStoredWarDarkElixir": 500, - "LootOnDestruction": true, - "Bunker": true, - "HousingSpace": 10, - "HousingSpaceAlt": 0, - "HousingSpaceSiege": 0, - "Hitpoints": 1000, - "RegenTime": 27, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "alliance_castle_lvl1_broken", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "alliance_castle_base", - "PickUpEffect": "Alliance Castle Pickup", - "PlacingEffect": "Alliance Castle Placing", - "Locked": true, - "StartingHomeCount": 1, - "HintPriority": 900, - "PreviewScenario": "ClanCastle" - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_ALLIANCE_CASTLE", - "InfoTID": "TID_ALLIANCE_CASTLE_INFO", - "BuildingClass": "Army", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "alliance_castle_lvl2", - "ExportNameConstruction": "generic_construction_state3", - "ExportNameLocked": "alliance_castle_lvl1_broken", - "BuildTimeD": 0, - "BuildTimeH": 8, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 100000, - "TownHallLevel": 4, - "CapitalHallLevel": 4, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredWarGold": 250000, - "MaxStoredWarElixir": 250000, - "MaxStoredWarDarkElixir": 1000, - "LootOnDestruction": true, - "Bunker": true, - "HousingSpace": 15, - "HousingSpaceAlt": 0, - "HousingSpaceSiege": 0, - "Hitpoints": 1400, - "RegenTime": 28, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "alliance_castle_lvl1_broken", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "alliance_castle_base", - "PickUpEffect": "Alliance Castle Pickup", - "PlacingEffect": "Alliance Castle Placing", - "Locked": true, - "StartingHomeCount": 1, - "HintPriority": 900, - "PreviewScenario": "ClanCastle" - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_ALLIANCE_CASTLE", - "InfoTID": "TID_ALLIANCE_CASTLE_INFO", - "BuildingClass": "Army", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "alliance_castle_lvl3", - "ExportNameConstruction": "generic_construction_state3", - "ExportNameLocked": "alliance_castle_lvl1_broken", - "BuildTimeD": 0, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 800000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredWarGold": 700000, - "MaxStoredWarElixir": 700000, - "MaxStoredWarDarkElixir": 2500, - "LootOnDestruction": true, - "Bunker": true, - "HousingSpace": 20, - "HousingSpaceAlt": 0, - "HousingSpaceSiege": 0, - "Hitpoints": 2000, - "RegenTime": 29, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "alliance_castle_lvl1_broken", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "alliance_castle_base", - "PickUpEffect": "Alliance Castle Pickup", - "PlacingEffect": "Alliance Castle Placing", - "Locked": true, - "StartingHomeCount": 1, - "HintPriority": 900, - "PreviewScenario": "ClanCastleTH7" - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_ALLIANCE_CASTLE", - "InfoTID": "TID_ALLIANCE_CASTLE_INFO", - "BuildingClass": "Army", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "alliance_castle_lvl4", - "ExportNameConstruction": "generic_construction_state3", - "ExportNameLocked": "alliance_castle_lvl1_broken", - "BuildTimeD": 1, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 1200000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredWarGold": 1000000, - "MaxStoredWarElixir": 1000000, - "MaxStoredWarDarkElixir": 4000, - "LootOnDestruction": true, - "Bunker": true, - "HousingSpace": 25, - "HousingSpaceAlt": 1, - "HousingSpaceSiege": 0, - "Hitpoints": 2600, - "RegenTime": 30, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "alliance_castle_lvl1_broken", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "alliance_castle_base", - "PickUpEffect": "Alliance Castle Pickup", - "PlacingEffect": "Alliance Castle Placing", - "Locked": true, - "StartingHomeCount": 1, - "HintPriority": 900, - "PreviewScenario": "ClanCastleTH7" - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_ALLIANCE_CASTLE", - "InfoTID": "TID_ALLIANCE_CASTLE_INFO", - "BuildingClass": "Army", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "alliance_castle_lvl5", - "ExportNameConstruction": "generic_construction_state3", - "ExportNameLocked": "alliance_castle_lvl1_broken", - "BuildTimeD": 2, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 2500000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredWarGold": 1600000, - "MaxStoredWarElixir": 1600000, - "MaxStoredWarDarkElixir": 8000, - "LootOnDestruction": true, - "Bunker": true, - "HousingSpace": 30, - "HousingSpaceAlt": 1, - "HousingSpaceSiege": 0, - "Hitpoints": 3000, - "RegenTime": 30, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "alliance_castle_lvl1_broken", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "alliance_castle_base", - "PickUpEffect": "Alliance Castle Pickup", - "PlacingEffect": "Alliance Castle Placing", - "Locked": true, - "StartingHomeCount": 1, - "HintPriority": 900, - "PreviewScenario": "ClanCastleTH7" - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_BUILDING_ALLIANCE_CASTLE", - "InfoTID": "TID_ALLIANCE_CASTLE_INFO", - "BuildingClass": "Army", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "alliance_castle_lvl6", - "ExportNameConstruction": "generic_construction_state3", - "ExportNameLocked": "alliance_castle_lvl1_broken", - "BuildTimeD": 5, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 4200000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredWarGold": 2000000, - "MaxStoredWarElixir": 2000000, - "MaxStoredWarDarkElixir": 10000, - "LootOnDestruction": true, - "Bunker": true, - "HousingSpace": 35, - "HousingSpaceAlt": 1, - "HousingSpaceSiege": 1, - "Hitpoints": 3400, - "RegenTime": 30, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "alliance_castle_lvl1_broken", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "alliance_castle_base", - "PickUpEffect": "Alliance Castle Pickup", - "PlacingEffect": "Alliance Castle Placing", - "Locked": true, - "StartingHomeCount": 1, - "HintPriority": 900, - "PreviewScenario": "ClanCastleTH7" - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_BUILDING_ALLIANCE_CASTLE", - "InfoTID": "TID_ALLIANCE_CASTLE_INFO", - "BuildingClass": "Army", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "alliance_castle_lvl7", - "ExportNameConstruction": "generic_construction_state3", - "ExportNameLocked": "alliance_castle_lvl1_broken", - "BuildTimeD": 6, - "BuildTimeH": 6, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 5500000, - "TownHallLevel": 11, - "CapitalHallLevel": 11, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredWarGold": 2400000, - "MaxStoredWarElixir": 2400000, - "MaxStoredWarDarkElixir": 12000, - "LootOnDestruction": true, - "Bunker": true, - "HousingSpace": 35, - "HousingSpaceAlt": 2, - "HousingSpaceSiege": 1, - "Hitpoints": 4000, - "RegenTime": 30, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "alliance_castle_lvl1_broken", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "alliance_castle_base", - "PickUpEffect": "Alliance Castle Pickup", - "PlacingEffect": "Alliance Castle Placing", - "Locked": true, - "StartingHomeCount": 1, - "HintPriority": 900, - "PreviewScenario": "ClanCastleTH11" - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_BUILDING_ALLIANCE_CASTLE", - "InfoTID": "TID_ALLIANCE_CASTLE_INFO", - "BuildingClass": "Army", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "alliance_castle_lvl8", - "ExportNameConstruction": "generic_construction_state3", - "ExportNameLocked": "alliance_castle_lvl1_broken", - "BuildTimeD": 9, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 8000000, - "TownHallLevel": 12, - "CapitalHallLevel": 12, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredWarGold": 2800000, - "MaxStoredWarElixir": 2800000, - "MaxStoredWarDarkElixir": 14000, - "LootOnDestruction": true, - "Bunker": true, - "HousingSpace": 40, - "HousingSpaceAlt": 2, - "HousingSpaceSiege": 1, - "Hitpoints": 4400, - "RegenTime": 30, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "alliance_castle_lvl1_broken", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "alliance_castle_base", - "PickUpEffect": "Alliance Castle Pickup", - "PlacingEffect": "Alliance Castle Placing", - "Locked": true, - "StartingHomeCount": 1, - "HintPriority": 900, - "PreviewScenario": "ClanCastleTH11" - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_BUILDING_ALLIANCE_CASTLE", - "InfoTID": "TID_ALLIANCE_CASTLE_INFO", - "BuildingClass": "Army", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "alliance_castle_lvl9", - "ExportNameConstruction": "generic_construction_state3", - "ExportNameLocked": "alliance_castle_lvl1_broken", - "BuildTimeD": 11, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 10000000, - "TownHallLevel": 13, - "CapitalHallLevel": 13, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredWarGold": 3200000, - "MaxStoredWarElixir": 3200000, - "MaxStoredWarDarkElixir": 16000, - "LootOnDestruction": true, - "Bunker": true, - "HousingSpace": 45, - "HousingSpaceAlt": 2, - "HousingSpaceSiege": 1, - "Hitpoints": 4800, - "RegenTime": 30, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "alliance_castle_lvl1_broken", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "alliance_castle_base", - "PickUpEffect": "Alliance Castle Pickup", - "PlacingEffect": "Alliance Castle Placing", - "Locked": true, - "StartingHomeCount": 1, - "HintPriority": 900, - "PreviewScenario": "ClanCastleTH11" - }, - "10": { - "BuildingLevel": 10, - "TID": "TID_BUILDING_ALLIANCE_CASTLE", - "InfoTID": "TID_ALLIANCE_CASTLE_INFO", - "BuildingClass": "Army", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "alliance_castle_lvl10", - "ExportNameConstruction": "generic_construction_state3", - "ExportNameLocked": "alliance_castle_lvl1_broken", - "BuildTimeD": 13, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 12600000, - "TownHallLevel": 14, - "CapitalHallLevel": 14, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredWarGold": 3600000, - "MaxStoredWarElixir": 3600000, - "MaxStoredWarDarkElixir": 18000, - "LootOnDestruction": true, - "Bunker": true, - "HousingSpace": 45, - "HousingSpaceAlt": 3, - "HousingSpaceSiege": 1, - "Hitpoints": 5200, - "RegenTime": 30, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "alliance_castle_lvl1_broken", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "alliance_castle_base", - "PickUpEffect": "Alliance Castle Pickup", - "PlacingEffect": "Alliance Castle Placing", - "Locked": true, - "StartingHomeCount": 1, - "HintPriority": 900, - "PreviewScenario": "ClanCastleTH11" - }, - "11": { - "BuildingLevel": 11, - "TID": "TID_BUILDING_ALLIANCE_CASTLE", - "InfoTID": "TID_ALLIANCE_CASTLE_INFO", - "BuildingClass": "Army", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "alliance_castle_lvl11", - "ExportNameConstruction": "generic_construction_state3", - "ExportNameLocked": "alliance_castle_lvl1_broken", - "BuildTimeD": 14, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 20000000, - "TownHallLevel": 15, - "CapitalHallLevel": 15, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredWarGold": 4000000, - "MaxStoredWarElixir": 4000000, - "MaxStoredWarDarkElixir": 20000, - "LootOnDestruction": true, - "Bunker": true, - "HousingSpace": 50, - "HousingSpaceAlt": 3, - "HousingSpaceSiege": 1, - "Hitpoints": 5400, - "RegenTime": 30, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "alliance_castle_lvl1_broken", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "alliance_castle_base", - "PickUpEffect": "Alliance Castle Pickup", - "PlacingEffect": "Alliance Castle Placing", - "Locked": true, - "StartingHomeCount": 1, - "HintPriority": 900, - "PreviewScenario": "ClanCastleTH11" - } - }, - "Builder's Hut": { - "1": { - "BuildingLevel": 1, - "TID": "TID_WORKER_BUILDING", - "InfoTID": "TID_WORKER_INFO", - "BuildingClass": "Worker", - "SWF": "sc/buildings.sc", - "ExportName": "worker_building", - "ExportNameConstruction": "worker_building_const", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Diamonds", - "BuildCost": 0, - "TownHallLevel": 1, - "CapitalHallLevel": 1, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "worker_building_upg", - "BoostCost": 500, - "Hitpoints": 250, - "RegenTime": 20, - "AttackRange": 700, - "AttackSpeed": 400, - "DPS": 80, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Nailgun Attack FX", - "HitEffect": "Generic Hit", - "Projectile": "Nail Ammo", - "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_darkbrown", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "worker_building_base", - "AirTargets": true, - "GroundTargets": true, - "PickUpEffect": "Worker Building Pickup", - "PlacingEffect": "Worker Building Placing", - "AnimateTurret": true, - "StartingHomeCount": 1, - "StrengthWeight": 400, - "WakeUpSpeed": 1600, - "WakeUpSpace": 1, - "DefenceTroopCount": 1, - "DefenceTroopCharacter": "Defending Builder", - "DefenceTroopLevel": 1, - "ActivatedCombatAddBuildingClass": "Defense", - "HintPriority": 200, - "PreviewScenario": "NoCombatBuilding" - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_WORKER_BUILDING", - "InfoTID": "TID_WORKER_INFO", - "BuildingClass": "Worker", - "SWF": "sc/buildings.sc", - "ExportName": "worker_building_armed_lvl1", - "ExportNameConstruction": "worker_building_const", - "BuildTimeD": 9, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 8000000, - "TownHallLevel": 14, - "CapitalHallLevel": 14, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "worker_building_upg", - "BoostCost": 500, - "Hitpoints": 1000, - "RegenTime": 20, - "AttackRange": 700, - "AttackSpeed": 400, - "DPS": 100, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Nailgun Attack FX", - "HitEffect": "Generic Hit", - "Projectile": "Nail Ammo", - "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_darkbrown", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "worker_building_base", - "AirTargets": true, - "GroundTargets": true, - "PickUpEffect": "Worker Building Pickup", - "PlacingEffect": "Worker Building Placing", - "AnimateTurret": true, - "StartingHomeCount": 1, - "StrengthWeight": 380, - "WakeUpSpeed": 1600, - "WakeUpSpace": 1, - "DefenceTroopCount": 1, - "DefenceTroopCharacter": "Defending Builder", - "DefenceTroopLevel": 2, - "ActivatedCombatAddBuildingClass": "Defense", - "HintPriority": 200, - "PreviewScenario": "DefensiveBuilder" - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_WORKER_BUILDING", - "InfoTID": "TID_WORKER_INFO", - "BuildingClass": "Worker", - "SWF": "sc/buildings.sc", - "ExportName": "worker_building_armed_lvl2", - "ExportNameConstruction": "worker_building_const", - "BuildTimeD": 11, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 10000000, - "TownHallLevel": 14, - "CapitalHallLevel": 14, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "worker_building_upg", - "BoostCost": 500, - "Hitpoints": 1300, - "RegenTime": 20, - "AttackRange": 700, - "AttackSpeed": 400, - "DPS": 120, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Nailgun Attack FX", - "HitEffect": "Generic Hit", - "Projectile": "Nail Ammo 2", - "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_darkbrown", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "worker_building_base", - "AirTargets": true, - "GroundTargets": true, - "PickUpEffect": "Worker Building Pickup", - "PlacingEffect": "Worker Building Placing", - "AnimateTurret": true, - "StartingHomeCount": 1, - "StrengthWeight": 360, - "WakeUpSpeed": 1600, - "WakeUpSpace": 1, - "DefenceTroopCount": 1, - "DefenceTroopCharacter": "Defending Builder", - "DefenceTroopLevel": 3, - "ActivatedCombatAddBuildingClass": "Defense", - "HintPriority": 200, - "PreviewScenario": "DefensiveBuilder" - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_WORKER_BUILDING", - "InfoTID": "TID_WORKER_INFO", - "BuildingClass": "Worker", - "SWF": "sc/buildings.sc", - "ExportName": "worker_building_armed_lvl3", - "ExportNameConstruction": "worker_building_const", - "BuildTimeD": 13, - "BuildTimeH": 6, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 12000000, - "TownHallLevel": 14, - "CapitalHallLevel": 14, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "worker_building_upg", - "BoostCost": 500, - "Hitpoints": 1600, - "RegenTime": 20, - "AttackRange": 700, - "AttackSpeed": 400, - "DPS": 135, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Nailgun Attack FX", - "HitEffect": "Generic Hit", - "Projectile": "Nail Ammo 2", - "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_darkgreen", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "worker_building_base", - "AirTargets": true, - "GroundTargets": true, - "PickUpEffect": "Worker Building Pickup", - "PlacingEffect": "Worker Building Placing", - "AnimateTurret": true, - "StartingHomeCount": 1, - "StrengthWeight": 340, - "WakeUpSpeed": 1600, - "WakeUpSpace": 1, - "DefenceTroopCount": 1, - "DefenceTroopCharacter": "Defending Builder", - "DefenceTroopLevel": 4, - "ActivatedCombatAddBuildingClass": "Defense", - "HintPriority": 200, - "PreviewScenario": "DefensiveBuilder" - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_WORKER_BUILDING", - "InfoTID": "TID_WORKER_INFO", - "BuildingClass": "Worker", - "SWF": "sc/buildings.sc", - "ExportName": "worker_building_armed_lvl4", - "ExportNameConstruction": "worker_building_const", - "BuildTimeD": 14, - "BuildTimeH": 6, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 17000000, - "TownHallLevel": 15, - "CapitalHallLevel": 15, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "worker_building_upg", - "BoostCost": 500, - "Hitpoints": 1800, - "RegenTime": 20, - "AttackRange": 700, - "AttackSpeed": 400, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Nailgun Attack FX", - "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_darkpurple", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "worker_building_base", - "AirTargets": true, - "GroundTargets": true, - "PickUpEffect": "Worker Building Pickup", - "PlacingEffect": "Worker Building Placing", - "AnimateTurret": true, - "StartingHomeCount": 1, - "WakeUpSpeed": 1600, - "ActivatedCombatAddBuildingClass": "Defense", - "HintPriority": 200, - "PreviewScenario": "DefensiveBuilder" - } - }, - "Radio Tower": { - "1": { - "BuildingLevel": 1, - "TID": "TID_COMM_MAST", - "InfoTID": "TID_COMM_MAST", - "BuildingClass": "Npc", - "SWF": "sc/buildings.sc", - "ExportName": "comm_mast_lvl1", - "ExportNameConstruction": "generic_construction_state3", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 1000, - "TownHallLevel": 1, - "CapitalHallLevel": 1, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "comm_mast_upg", - "Hitpoints": 250, - "RegenTime": 30, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_2s_pit_wood", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "comm_mast_base" - } - }, - "Hidden Tesla": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_TESLA_TOWER2", - "InfoTID": "TID_TESLA_TOWER2_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "teslatower_lvl1_setup", - "ExportNameConstruction": "teslatower_const", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 30, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 50000, - "TownHallLevel": 3, - "CapitalHallLevel": 3, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "teslatower_upg", - "Hitpoints": 300, - "RegenTime": 1, - "AttackRange": 700, - "AttackSpeed": 600, - "Damage": 36, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Tesla Attack_1", - "AttackEffect2": "Tesla Attack_4_Secondary", - "HitEffect": "Tesla Hit", - "ExportNameDamaged": "destroyedBuilding_2s_pit_wood", - "BuildingW": 1, - "BuildingH": 1, - "BaseGfx": "-1", - "AirTargets": true, - "GroundTargets": true, - "PickUpEffect": "Tesla Pickup", - "PlacingEffect": "Tesla Placing", - "Hidden": true, - "TriggerRadius": 600, - "ExportNameTriggered": "teslatower_lvl1", - "AppearEffect": "Tesla Appear", - "StrengthWeight": 248, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_TESLA_TOWER2", - "InfoTID": "TID_TESLA_TOWER2_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "teslatower_lvl2_setup", - "ExportNameConstruction": "teslatower_const", - "BuildTimeD": 0, - "BuildTimeH": 3, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 100000, - "TownHallLevel": 3, - "CapitalHallLevel": 3, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "teslatower_upg", - "Hitpoints": 350, - "RegenTime": 1, - "AttackRange": 700, - "AttackSpeed": 600, - "Damage": 40, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Tesla Attack_1", - "AttackEffect2": "Tesla Attack_8_Secondary", - "HitEffect": "Tesla Hit", - "ExportNameDamaged": "destroyedBuilding_2s_pit_wood", - "BuildingW": 1, - "BuildingH": 1, - "BaseGfx": "-1", - "AirTargets": true, - "GroundTargets": true, - "PickUpEffect": "Tesla Pickup", - "PlacingEffect": "Tesla Placing", - "Hidden": true, - "TriggerRadius": 600, - "ExportNameTriggered": "teslatower_lvl2", - "AppearEffect": "Tesla Appear", - "StrengthWeight": 254, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_TESLA_TOWER2", - "InfoTID": "TID_TESLA_TOWER2_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "teslatower_lvl3_setup", - "ExportNameConstruction": "teslatower_const", - "BuildTimeD": 0, - "BuildTimeH": 5, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 150000, - "TownHallLevel": 3, - "CapitalHallLevel": 3, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "teslatower_upg", - "Hitpoints": 400, - "RegenTime": 1, - "AttackRange": 700, - "AttackSpeed": 600, - "Damage": 44, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Tesla Attack_1", - "AttackEffect2": "Tesla Attack_8_Secondary", - "HitEffect": "Tesla Hit", - "ExportNameDamaged": "destroyedBuilding_2s_pit_wood", - "BuildingW": 1, - "BuildingH": 1, - "BaseGfx": "-1", - "AirTargets": true, - "GroundTargets": true, - "PickUpEffect": "Tesla Pickup", - "PlacingEffect": "Tesla Placing", - "Hidden": true, - "TriggerRadius": 600, - "ExportNameTriggered": "teslatower_lvl3", - "AppearEffect": "Tesla Appear", - "StrengthWeight": 261, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_TESLA_TOWER2", - "InfoTID": "TID_TESLA_TOWER2_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "teslatower_lvl4_setup", - "ExportNameConstruction": "teslatower_const", - "BuildTimeD": 0, - "BuildTimeH": 10, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 280000, - "TownHallLevel": 4, - "CapitalHallLevel": 4, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "teslatower_upg", - "Hitpoints": 460, - "RegenTime": 1, - "AttackRange": 700, - "AttackSpeed": 600, - "Damage": 48, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Tesla Attack_2", - "AttackEffect2": "Tesla Attack_8_Secondary", - "HitEffect": "Tesla Hit", - "ExportNameDamaged": "destroyedBuilding_2s_pit_wood", - "BuildingW": 1, - "BuildingH": 1, - "BaseGfx": "-1", - "AirTargets": true, - "GroundTargets": true, - "PickUpEffect": "Tesla Pickup", - "PlacingEffect": "Tesla Placing", - "Hidden": true, - "TriggerRadius": 600, - "ExportNameTriggered": "teslatower_lvl4", - "AppearEffect": "Tesla Appear", - "StrengthWeight": 269, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_TESLA_TOWER2", - "InfoTID": "TID_TESLA_TOWER2_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "teslatower_lvl5_setup", - "ExportNameConstruction": "teslatower_const", - "BuildTimeD": 1, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 700000, - "TownHallLevel": 5, - "CapitalHallLevel": 5, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "teslatower_upg", - "Hitpoints": 550, - "RegenTime": 1, - "AttackRange": 700, - "AttackSpeed": 600, - "Damage": 53, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Tesla Attack_2", - "HitEffect": "Tesla Hit", - "ExportNameDamaged": "destroyedBuilding_2s_pit_wood", - "BuildingW": 1, - "BuildingH": 1, - "BaseGfx": "-1", - "AirTargets": true, - "GroundTargets": true, - "PickUpEffect": "Tesla Pickup", - "PlacingEffect": "Tesla Placing", - "Hidden": true, - "TriggerRadius": 600, - "ExportNameTriggered": "teslatower_lvl5", - "AppearEffect": "Tesla Appear", - "StrengthWeight": 276, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_BUILDING_TESLA_TOWER2", - "InfoTID": "TID_TESLA_TOWER2_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "teslatower_lvl6_setup", - "ExportNameConstruction": "teslatower_const", - "BuildTimeD": 2, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 1300000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "teslatower_upg", - "Hitpoints": 650, - "RegenTime": 1, - "AttackRange": 700, - "AttackSpeed": 600, - "Damage": 58, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Tesla Attack_3", - "HitEffect": "Tesla Hit", - "ExportNameDamaged": "destroyedBuilding_2s_pit_wood", - "BuildingW": 1, - "BuildingH": 1, - "BaseGfx": "-1", - "AirTargets": true, - "GroundTargets": true, - "PickUpEffect": "Tesla Pickup", - "PlacingEffect": "Tesla Placing", - "Hidden": true, - "TriggerRadius": 600, - "ExportNameTriggered": "teslatower_lvl6", - "AppearEffect": "Tesla Appear", - "StrengthWeight": 284, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_BUILDING_TESLA_TOWER2", - "InfoTID": "TID_TESLA_TOWER2_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "teslatower_lvl7_setup", - "ExportNameConstruction": "teslatower_const", - "BuildTimeD": 4, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 2100000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "teslatower_upg", - "Hitpoints": 750, - "RegenTime": 1, - "AttackRange": 700, - "AttackSpeed": 600, - "Damage": 64, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Tesla Attack_4", - "HitEffect": "Tesla Hit", - "ExportNameDamaged": "destroyedBuilding_2s_pit_wood", - "BuildingW": 1, - "BuildingH": 1, - "BaseGfx": "-1", - "AirTargets": true, - "GroundTargets": true, - "PickUpEffect": "Tesla Pickup", - "PlacingEffect": "Tesla Placing", - "Hidden": true, - "TriggerRadius": 600, - "ExportNameTriggered": "teslatower_lvl7", - "AppearEffect": "Tesla Appear", - "StrengthWeight": 291, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_BUILDING_TESLA_TOWER2", - "InfoTID": "TID_TESLA_TOWER2_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "teslatower_lvl8_setup", - "ExportNameConstruction": "teslatower_const", - "BuildTimeD": 6, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 3100000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "teslatower_upg", - "Hitpoints": 850, - "RegenTime": 1, - "AttackRange": 700, - "AttackSpeed": 600, - "Damage": 70, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Tesla Attack_4", - "HitEffect": "Tesla Hit", - "ExportNameDamaged": "destroyedBuilding_2s_pit_wood", - "BuildingW": 1, - "BuildingH": 1, - "BaseGfx": "-1", - "AirTargets": true, - "GroundTargets": true, - "PickUpEffect": "Tesla Pickup", - "PlacingEffect": "Tesla Placing", - "Hidden": true, - "TriggerRadius": 600, - "ExportNameTriggered": "teslatower_lvl8", - "AppearEffect": "Tesla Appear", - "StrengthWeight": 299, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_BUILDING_TESLA_TOWER2", - "InfoTID": "TID_TESLA_TOWER2_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "teslatower_lvl9_setup", - "ExportNameConstruction": "teslatower_const", - "BuildTimeD": 8, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 4100000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "teslatower_upg", - "Hitpoints": 1000, - "RegenTime": 1, - "AttackRange": 700, - "AttackSpeed": 600, - "Damage": 77, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Tesla Attack_4", - "HitEffect": "Tesla Hit", - "ExportNameDamaged": "destroyedBuilding_2s_pit_wood", - "BuildingW": 1, - "BuildingH": 1, - "BaseGfx": "-1", - "AirTargets": true, - "GroundTargets": true, - "PickUpEffect": "Tesla Pickup", - "PlacingEffect": "Tesla Placing", - "Hidden": true, - "TriggerRadius": 600, - "ExportNameTriggered": "teslatower_lvl9", - "AppearEffect": "Tesla Appear", - "StrengthWeight": 308, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "10": { - "BuildingLevel": 10, - "TID": "TID_BUILDING_TESLA_TOWER2", - "InfoTID": "TID_TESLA_TOWER2_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "teslatower_lvl10_setup", - "ExportNameConstruction": "teslatower_const", - "BuildTimeD": 10, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 5100000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "teslatower_upg", - "Hitpoints": 1150, - "RegenTime": 1, - "AttackRange": 700, - "AttackSpeed": 600, - "Damage": 85, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Tesla Attack_4", - "HitEffect": "Tesla Hit", - "ExportNameDamaged": "destroyedBuilding_2s_pit_wood", - "BuildingW": 1, - "BuildingH": 1, - "BaseGfx": "-1", - "AirTargets": true, - "GroundTargets": true, - "PickUpEffect": "Tesla Pickup", - "PlacingEffect": "Tesla Placing", - "Hidden": true, - "TriggerRadius": 600, - "ExportNameTriggered": "teslatower_lvl10", - "AppearEffect": "Tesla Appear", - "StrengthWeight": 320, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - } - }, - "Spell Factory": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_SPELL_FORGE", - "InfoTID": "TID_SPELL_FORGE_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "spell_factory_lvl1", - "ExportNameConstruction": "spell_factory_const", - "BuildTimeD": 0, - "BuildTimeH": 8, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 150000, - "TownHallLevel": 5, - "CapitalHallLevel": 5, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "spell_factory_upg", - "HousingSpaceAlt": 2, - "UnitProduction": 2, - "ProducesUnitsOfType": 1, - "LevelRequirementTID": "TID_REQUIRED_SPELL_FORGE_LEVEL", - "BoostCost": 5, - "Hitpoints": 425, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "goldmine_base", - "PickUpEffect": "Spell Factory Pickup", - "PlacingEffect": "Spell Factory Place", - "ForgesSpells": true, - "HintPriority": 600, - "PreviewScenario": "NoCombatBuilding" - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_SPELL_FORGE", - "InfoTID": "TID_SPELL_FORGE_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "spell_factory_lvl2", - "ExportNameConstruction": "spell_factory_const", - "BuildTimeD": 1, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 300000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "spell_factory_upg", - "HousingSpaceAlt": 4, - "UnitProduction": 4, - "ProducesUnitsOfType": 1, - "LevelRequirementTID": "TID_REQUIRED_SPELL_FORGE_LEVEL", - "BoostCost": 5, - "Hitpoints": 470, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "goldmine_base", - "PickUpEffect": "Spell Factory Pickup", - "PlacingEffect": "Spell Factory Place", - "ForgesSpells": true, - "HintPriority": 600, - "PreviewScenario": "NoCombatBuilding" - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_SPELL_FORGE", - "InfoTID": "TID_SPELL_FORGE_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "spell_factory_lvl3", - "ExportNameConstruction": "spell_factory_const", - "BuildTimeD": 2, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 600000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "spell_factory_upg", - "HousingSpaceAlt": 6, - "UnitProduction": 6, - "ProducesUnitsOfType": 1, - "LevelRequirementTID": "TID_REQUIRED_SPELL_FORGE_LEVEL", - "BoostCost": 5, - "Hitpoints": 520, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "goldmine_base", - "PickUpEffect": "Spell Factory Pickup", - "PlacingEffect": "Spell Factory Place", - "ForgesSpells": true, - "HintPriority": 600, - "PreviewScenario": "NoCombatBuilding" - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_SPELL_FORGE", - "InfoTID": "TID_SPELL_FORGE_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "spell_factory_lvl4", - "ExportNameConstruction": "spell_factory_const", - "BuildTimeD": 3, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 1200000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "spell_factory_upg", - "HousingSpaceAlt": 8, - "UnitProduction": 8, - "ProducesUnitsOfType": 1, - "LevelRequirementTID": "TID_REQUIRED_SPELL_FORGE_LEVEL", - "BoostCost": 5, - "Hitpoints": 600, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "spellforge_lvl4_base", - "PickUpEffect": "Spell Factory Pickup", - "PlacingEffect": "Spell Factory Place", - "ForgesSpells": true, - "HintPriority": 600, - "PreviewScenario": "NoCombatBuilding" - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_SPELL_FORGE", - "InfoTID": "TID_SPELL_FORGE_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "spell_factory_lvl5", - "ExportNameConstruction": "spell_factory_const", - "BuildTimeD": 4, - "BuildTimeH": 6, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 2000000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "spell_factory_upg", - "HousingSpaceAlt": 10, - "UnitProduction": 10, - "ProducesUnitsOfType": 1, - "LevelRequirementTID": "TID_REQUIRED_SPELL_FORGE_LEVEL", - "BoostCost": 5, - "Hitpoints": 720, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "spellforge_lvl4_base", - "PickUpEffect": "Spell Factory Pickup", - "PlacingEffect": "Spell Factory Place", - "ForgesSpells": true, - "HintPriority": 600, - "PreviewScenario": "NoCombatBuilding" - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_BUILDING_SPELL_FORGE", - "InfoTID": "TID_SPELL_FORGE_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "spell_factory_lvl6", - "ExportNameConstruction": "spell_factory_const", - "BuildTimeD": 5, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 3500000, - "TownHallLevel": 11, - "CapitalHallLevel": 11, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "spell_factory_upg", - "HousingSpaceAlt": 10, - "UnitProduction": 10, - "ProducesUnitsOfType": 1, - "LevelRequirementTID": "TID_REQUIRED_SPELL_FORGE_LEVEL", - "BoostCost": 5, - "Hitpoints": 840, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "spellforge_lvl4_base", - "PickUpEffect": "Spell Factory Pickup", - "PlacingEffect": "Spell Factory Place", - "ForgesSpells": true, - "HintPriority": 600, - "PreviewScenario": "NoCombatBuilding" - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_BUILDING_SPELL_FORGE", - "InfoTID": "TID_SPELL_FORGE_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "spell_factory_lvl7", - "ExportNameConstruction": "spell_factory_const", - "BuildTimeD": 8, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 9000000, - "TownHallLevel": 13, - "CapitalHallLevel": 13, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "spell_factory_upg", - "HousingSpaceAlt": 10, - "UnitProduction": 10, - "ProducesUnitsOfType": 1, - "LevelRequirementTID": "TID_REQUIRED_SPELL_FORGE_LEVEL", - "BoostCost": 5, - "Hitpoints": 960, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "spellforge_lvl4_base", - "PickUpEffect": "Spell Factory Pickup", - "PlacingEffect": "Spell Factory Place", - "ForgesSpells": true, - "HintPriority": 600, - "PreviewScenario": "NoCombatBuilding" - } - }, - "X-Bow": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_XBOW2", - "InfoTID": "TID_BUILDING_XBOW2_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "BB_xbow_lvl1", - "ExportNameConstruction": "tower_turret_const", - "BuildTimeD": 7, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 4400000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "ExportNameUpgradeAnim": "BB_xbow_upgrade_lvl1", - "Hitpoints": 1700, - "RegenTime": 1, - "AttackRange": 1200, - "AltAttackMode": true, - "AltAttackRange": 1200, - "AttackSpeed": 192, - "AltAttackSpeed": 192, - "DPS": 80, - "AltDPS": 80, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Rapidfire bow attack", - "HitEffect": "Generic Hit", - "Projectile": "Rapidfire arrow lvl6", - "AltProjectile": "Rapidfire arrow lvl6", - "ExportNameDamaged": "destroyedBuilding_3l_pit_wood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "rapidfire_base", - "AirTargets": false, - "GroundTargets": true, - "AltAirTargets": true, - "AltGroundTargets": false, - "ToggleAttackModeEffect": "Bow Target", - "PickUpEffect": "Bow Pickup", - "PlacingEffect": "Bow Placing", - "AnimateTurret": true, - "StrengthWeight": 2310, - "VillageType": 1, - "NewTargetAttackDelay": 500, - "HintPriority": 150, - "PreviewScenario": "Defense" - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_XBOW2", - "InfoTID": "TID_BUILDING_XBOW2_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "BB_xbow_lvl2", - "ExportNameConstruction": "tower_turret_const", - "BuildTimeD": 8, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 4800000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "ExportNameUpgradeAnim": "BB_xbow_upgrade_lvl2", - "Hitpoints": 1900, - "RegenTime": 1, - "AttackRange": 1200, - "AltAttackMode": true, - "AltAttackRange": 1200, - "AttackSpeed": 192, - "AltAttackSpeed": 192, - "DPS": 89, - "AltDPS": 89, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Rapidfire bow attack", - "HitEffect": "Generic Hit", - "Projectile": "Rapidfire arrow lvl6", - "AltProjectile": "Rapidfire arrow lvl6", - "ExportNameDamaged": "destroyedBuilding_3l_pit_wood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "rapidfire_base", - "AirTargets": false, - "GroundTargets": true, - "AltAirTargets": true, - "AltGroundTargets": false, - "ToggleAttackModeEffect": "Bow Target", - "PickUpEffect": "Bow Pickup", - "PlacingEffect": "Bow Placing", - "AnimateTurret": true, - "StrengthWeight": 2360, - "VillageType": 1, - "NewTargetAttackDelay": 500, - "HintPriority": 150, - "PreviewScenario": "Defense" - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_XBOW2", - "InfoTID": "TID_BUILDING_XBOW2_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "BB_xbow_lvl3", - "ExportNameConstruction": "tower_turret_const", - "BuildTimeD": 10, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 5200000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "ExportNameUpgradeAnim": "BB_xbow_upgrade_lvl3", - "Hitpoints": 2100, - "RegenTime": 1, - "AttackRange": 1200, - "AltAttackMode": true, - "AltAttackRange": 1200, - "AttackSpeed": 192, - "AltAttackSpeed": 192, - "DPS": 97, - "AltDPS": 97, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Rapidfire bow attack", - "HitEffect": "Generic Hit", - "Projectile": "Rapidfire arrow lvl6", - "AltProjectile": "Rapidfire arrow lvl6", - "ExportNameDamaged": "destroyedBuilding_3l_pit_wood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "rapidfire_base", - "AirTargets": false, - "GroundTargets": true, - "AltAirTargets": true, - "AltGroundTargets": false, - "ToggleAttackModeEffect": "Bow Target", - "PickUpEffect": "Bow Pickup", - "PlacingEffect": "Bow Placing", - "AnimateTurret": true, - "StrengthWeight": 2410, - "VillageType": 1, - "NewTargetAttackDelay": 500, - "HintPriority": 150, - "PreviewScenario": "Defense" - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_XBOW2", - "InfoTID": "TID_BUILDING_XBOW2_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "BB_xbow_lvl4", - "ExportNameConstruction": "tower_turret_const", - "BuildTimeD": 11, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 5600000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "ExportNameUpgradeAnim": "BB_xbow_upgrade_lvl4", - "Hitpoints": 2350, - "RegenTime": 1, - "AttackRange": 1200, - "AltAttackMode": true, - "AltAttackRange": 1200, - "AttackSpeed": 192, - "AltAttackSpeed": 192, - "DPS": 107, - "AltDPS": 107, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Rapidfire bow attack", - "HitEffect": "Generic Hit", - "Projectile": "Rapidfire arrow lvl6", - "AltProjectile": "Rapidfire arrow lvl6", - "ExportNameDamaged": "destroyedBuilding_3l_pit_wood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "rapidfire_base", - "AirTargets": false, - "GroundTargets": true, - "AltAirTargets": true, - "AltGroundTargets": false, - "ToggleAttackModeEffect": "Bow Target", - "PickUpEffect": "Bow Pickup", - "PlacingEffect": "Bow Placing", - "AnimateTurret": true, - "StrengthWeight": 2430, - "VillageType": 1, - "NewTargetAttackDelay": 500, - "HintPriority": 150, - "PreviewScenario": "Defense" - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_XBOW2", - "InfoTID": "TID_BUILDING_XBOW2_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "BB_xbow_lvl5", - "ExportNameConstruction": "tower_turret_const", - "BuildTimeD": 12, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 6000000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "ExportNameUpgradeAnim": "BB_xbow_upgrade_lvl5", - "Hitpoints": 2600, - "RegenTime": 1, - "AttackRange": 1200, - "AltAttackMode": true, - "AltAttackRange": 1200, - "AttackSpeed": 192, - "AltAttackSpeed": 192, - "DPS": 117, - "AltDPS": 117, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Rapidfire bow attack", - "HitEffect": "Generic Hit", - "Projectile": "Rapidfire arrow lvl6", - "AltProjectile": "Rapidfire arrow lvl6", - "ExportNameDamaged": "destroyedBuilding_3l_pit_wood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "rapidfire_base", - "AirTargets": false, - "GroundTargets": true, - "AltAirTargets": true, - "AltGroundTargets": false, - "ToggleAttackModeEffect": "Bow Target", - "PickUpEffect": "Bow Pickup", - "PlacingEffect": "Bow Placing", - "AnimateTurret": true, - "StrengthWeight": 2450, - "VillageType": 1, - "NewTargetAttackDelay": 500, - "HintPriority": 150, - "PreviewScenario": "Defense" - } - }, - "Barbarian King": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_BARBARIAN_KING_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "heroaltar_barbarian_king_lvl1", - "ExportNameConstruction": "heroaltar_barbarian_king_const", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "DarkElixir", - "BuildCost": 5000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "heroaltar_barbarian_king_upg", - "BoostCost": 5, - "Hitpoints": 250, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "heroaltar_base", - "PickUpEffect": "Hero Altar Pickup", - "PlacingEffect": "Hero Altar Place", - "IsHeroBarrack": true, - "HeroType": "Barbarian King", - "HintPriority": 700 - } - }, - "Dark Elixir Drill": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_DARK_ELIXIR_PUMP", - "InfoTID": "TID_DARK_ELIXIR_PUMP_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "darkelixir_pump_lvl1", - "ExportNameConstruction": "darkelixir_pump_const", - "BuildTimeD": 0, - "BuildTimeH": 6, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 500000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "darkelixir_pump_upg", - "ProducesResource": "DarkElixir", - "ResourcePer100Hours": 2000, - "ResourceMax": 160, - "ResourceIconLimit": 1, - "BoostCost": 7, - "Hitpoints": 800, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "dark_elixir_pump_base", - "PickUpEffect": "Dark Elixir Drill Pickup", - "PlacingEffect": "Dark Elixir Drill Place", - "HintPriority": 400, - "PreviewScenario": "NoCombatBuilding" - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_DARK_ELIXIR_PUMP", - "InfoTID": "TID_DARK_ELIXIR_PUMP_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "darkelixir_pump_lvl2", - "ExportNameConstruction": "darkelixir_pump_const", - "BuildTimeD": 0, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 700000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "darkelixir_pump_upg", - "ProducesResource": "DarkElixir", - "ResourcePer100Hours": 3000, - "ResourceMax": 300, - "ResourceIconLimit": 1, - "BoostCost": 10, - "Hitpoints": 860, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "dark_elixir_pump_base", - "PickUpEffect": "Dark Elixir Drill Pickup", - "PlacingEffect": "Dark Elixir Drill Place", - "HintPriority": 400, - "PreviewScenario": "NoCombatBuilding" - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_DARK_ELIXIR_PUMP", - "InfoTID": "TID_DARK_ELIXIR_PUMP_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "darkelixir_pump_lvl3", - "ExportNameConstruction": "darkelixir_pump_const", - "BuildTimeD": 0, - "BuildTimeH": 18, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 900000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "darkelixir_pump_upg", - "ProducesResource": "DarkElixir", - "ResourcePer100Hours": 4500, - "ResourceMax": 540, - "ResourceIconLimit": 1, - "BoostCost": 15, - "Hitpoints": 920, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "dark_elixir_pump_base", - "PickUpEffect": "Dark Elixir Drill Pickup", - "PlacingEffect": "Dark Elixir Drill Place", - "HintPriority": 400, - "PreviewScenario": "NoCombatBuilding" - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_DARK_ELIXIR_PUMP", - "InfoTID": "TID_DARK_ELIXIR_PUMP_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "darkelixir_pump_lvl4", - "ExportNameConstruction": "darkelixir_pump_const", - "BuildTimeD": 1, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 1200000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "darkelixir_pump_upg", - "ProducesResource": "DarkElixir", - "ResourcePer100Hours": 6000, - "ResourceMax": 840, - "ResourceIconLimit": 2, - "BoostCost": 20, - "Hitpoints": 980, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "dark_elixir_pump_base", - "PickUpEffect": "Dark Elixir Drill Pickup", - "PlacingEffect": "Dark Elixir Drill Place", - "HintPriority": 400, - "PreviewScenario": "NoCombatBuilding" - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_DARK_ELIXIR_PUMP", - "InfoTID": "TID_DARK_ELIXIR_PUMP_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "darkelixir_pump_lvl5", - "ExportNameConstruction": "darkelixir_pump_const", - "BuildTimeD": 1, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 1500000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "darkelixir_pump_upg", - "ProducesResource": "DarkElixir", - "ResourcePer100Hours": 8000, - "ResourceMax": 1280, - "ResourceIconLimit": 2, - "BoostCost": 25, - "Hitpoints": 1060, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "dark_elixir_pump_base", - "PickUpEffect": "Dark Elixir Drill Pickup", - "PlacingEffect": "Dark Elixir Drill Place", - "HintPriority": 400, - "PreviewScenario": "NoCombatBuilding" - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_BUILDING_DARK_ELIXIR_PUMP", - "InfoTID": "TID_DARK_ELIXIR_PUMP_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "darkelixir_pump_lvl6", - "ExportNameConstruction": "darkelixir_pump_const", - "BuildTimeD": 2, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 1800000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "darkelixir_pump_upg", - "ProducesResource": "DarkElixir", - "ResourcePer100Hours": 10000, - "ResourceMax": 1800, - "ResourceIconLimit": 3, - "BoostCost": 30, - "Hitpoints": 1160, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "dark_elixir_pump_base", - "PickUpEffect": "Dark Elixir Drill Pickup", - "PlacingEffect": "Dark Elixir Drill Place", - "HintPriority": 400, - "PreviewScenario": "NoCombatBuilding" - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_BUILDING_DARK_ELIXIR_PUMP", - "InfoTID": "TID_DARK_ELIXIR_PUMP_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "darkelixir_pump_lvl7", - "ExportNameConstruction": "darkelixir_pump_const", - "BuildTimeD": 3, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 2400000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "darkelixir_pump_upg", - "ProducesResource": "DarkElixir", - "ResourcePer100Hours": 12000, - "ResourceMax": 2400, - "ResourceIconLimit": 4, - "BoostCost": 35, - "Hitpoints": 1280, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "dark_elixir_pump_base", - "PickUpEffect": "Dark Elixir Drill Pickup", - "PlacingEffect": "Dark Elixir Drill Place", - "HintPriority": 400, - "PreviewScenario": "NoCombatBuilding" - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_BUILDING_DARK_ELIXIR_PUMP", - "InfoTID": "TID_DARK_ELIXIR_PUMP_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "darkelixir_pump_lvl8", - "ExportNameConstruction": "darkelixir_pump_const", - "BuildTimeD": 4, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 3000000, - "TownHallLevel": 11, - "CapitalHallLevel": 11, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "darkelixir_pump_upg", - "ProducesResource": "DarkElixir", - "ResourcePer100Hours": 14000, - "ResourceMax": 3000, - "ResourceIconLimit": 5, - "BoostCost": 40, - "Hitpoints": 1380, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "dark_elixir_pump_base", - "PickUpEffect": "Dark Elixir Drill Pickup", - "PlacingEffect": "Dark Elixir Drill Place", - "HintPriority": 400, - "PreviewScenario": "NoCombatBuilding" - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_BUILDING_DARK_ELIXIR_PUMP", - "InfoTID": "TID_DARK_ELIXIR_PUMP_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "darkelixir_pump_lvl9", - "ExportNameConstruction": "darkelixir_pump_const", - "BuildTimeD": 7, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 4000000, - "TownHallLevel": 12, - "CapitalHallLevel": 12, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "darkelixir_pump_upg", - "ProducesResource": "DarkElixir", - "ResourcePer100Hours": 16000, - "ResourceMax": 3600, - "ResourceIconLimit": 6, - "BoostCost": 45, - "Hitpoints": 1480, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "dark_elixir_pump_base", - "PickUpEffect": "Dark Elixir Drill Pickup", - "PlacingEffect": "Dark Elixir Drill Place", - "HintPriority": 400, - "PreviewScenario": "NoCombatBuilding" - } - }, - "Dark Elixir Storage": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_DARK_ELIXIR_STORAGE", - "InfoTID": "TID_DARK_ELIXIR_STORAGE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "darkelixir_storage_level1", - "ExportNameConstruction": "darkelixir_storage_const", - "BuildTimeD": 0, - "BuildTimeH": 8, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 250000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "darkelixir_storage_upg", - "MaxStoredDarkElixir": 10000, - "Hitpoints": 2000, - "RegenTime": 30, - "DestroyEffect": "Elixir Storage Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_glass", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "dark_elixir_storage_lvl1_base", - "PickUpEffect": "Dark Elixir Storage Pickup", - "PlacingEffect": "Dark Elixir Storage Place", - "HintPriority": 300, - "PreviewScenario": "NoCombatBuilding" - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_DARK_ELIXIR_STORAGE", - "InfoTID": "TID_DARK_ELIXIR_STORAGE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "darkelixir_storage_level2", - "ExportNameConstruction": "darkelixir_storage_const", - "BuildTimeD": 0, - "BuildTimeH": 16, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 500000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "darkelixir_storage_upg", - "MaxStoredDarkElixir": 17500, - "Hitpoints": 2200, - "RegenTime": 30, - "DestroyEffect": "Elixir Storage Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_glass", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "dark_elixir_storage_lvl2_base", - "PickUpEffect": "Dark Elixir Storage Pickup", - "PlacingEffect": "Dark Elixir Storage Place", - "HintPriority": 300, - "PreviewScenario": "NoCombatBuilding" - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_DARK_ELIXIR_STORAGE", - "InfoTID": "TID_DARK_ELIXIR_STORAGE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "darkelixir_storage_level3", - "ExportNameConstruction": "darkelixir_storage_const", - "BuildTimeD": 1, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 1000000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredDarkElixir": 40000, - "Hitpoints": 2400, - "RegenTime": 30, - "DestroyEffect": "Elixir Storage Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_glass", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "dark_elixir_storage_lvl3_base", - "PickUpEffect": "Dark Elixir Storage Pickup", - "PlacingEffect": "Dark Elixir Storage Place", - "HintPriority": 300, - "PreviewScenario": "NoCombatBuilding" - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_DARK_ELIXIR_STORAGE", - "InfoTID": "TID_DARK_ELIXIR_STORAGE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "darkelixir_storage_level4", - "ExportNameConstruction": "darkelixir_storage_const", - "BuildTimeD": 1, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 1500000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredDarkElixir": 75000, - "Hitpoints": 2600, - "RegenTime": 30, - "DestroyEffect": "Elixir Storage Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_glass", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "dark_elixir_storage_lvl4_base", - "PickUpEffect": "Dark Elixir Storage Pickup", - "PlacingEffect": "Dark Elixir Storage Place", - "HintPriority": 300, - "PreviewScenario": "NoCombatBuilding" - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_DARK_ELIXIR_STORAGE", - "InfoTID": "TID_DARK_ELIXIR_STORAGE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "darkelixir_storage_level5", - "ExportNameConstruction": "darkelixir_storage_const", - "BuildTimeD": 2, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 2000000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredDarkElixir": 140000, - "Hitpoints": 2900, - "RegenTime": 30, - "DestroyEffect": "Elixir Storage Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_glass", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "dark_elixir_storage_lvl5_base", - "PickUpEffect": "Dark Elixir Storage Pickup", - "PlacingEffect": "Dark Elixir Storage Place", - "HintPriority": 300, - "PreviewScenario": "NoCombatBuilding" - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_BUILDING_DARK_ELIXIR_STORAGE", - "InfoTID": "TID_DARK_ELIXIR_STORAGE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "darkelixir_storage_level6", - "ExportNameConstruction": "darkelixir_storage_const", - "BuildTimeD": 2, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 3000000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredDarkElixir": 180000, - "Hitpoints": 3200, - "RegenTime": 30, - "DestroyEffect": "Elixir Storage Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_glass", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "dark_elixir_storage_lvl6_base", - "PickUpEffect": "Dark Elixir Storage Pickup", - "PlacingEffect": "Dark Elixir Storage Place", - "HintPriority": 300, - "PreviewScenario": "NoCombatBuilding" - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_BUILDING_DARK_ELIXIR_STORAGE", - "InfoTID": "TID_DARK_ELIXIR_STORAGE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "darkelixir_storage_level7", - "ExportNameConstruction": "darkelixir_storage_const", - "BuildTimeD": 3, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 3800000, - "TownHallLevel": 12, - "CapitalHallLevel": 12, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredDarkElixir": 220000, - "Hitpoints": 3500, - "RegenTime": 30, - "DestroyEffect": "Elixir Storage Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_glass", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "dark_elixir_storage_lvl6_base", - "PickUpEffect": "Dark Elixir Storage Pickup", - "PlacingEffect": "Dark Elixir Storage Place", - "HintPriority": 300, - "PreviewScenario": "NoCombatBuilding" - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_BUILDING_DARK_ELIXIR_STORAGE", - "InfoTID": "TID_DARK_ELIXIR_STORAGE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "darkelixir_storage_level8", - "ExportNameConstruction": "darkelixir_storage_const", - "BuildTimeD": 6, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 5400000, - "TownHallLevel": 13, - "CapitalHallLevel": 13, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredDarkElixir": 280000, - "Hitpoints": 3800, - "RegenTime": 30, - "DestroyEffect": "Elixir Storage Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_glass", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "dark_elixir_storage_lvl6_base", - "PickUpEffect": "Dark Elixir Storage Pickup", - "PlacingEffect": "Dark Elixir Storage Place", - "HintPriority": 300, - "PreviewScenario": "NoCombatBuilding" - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_BUILDING_DARK_ELIXIR_STORAGE", - "InfoTID": "TID_DARK_ELIXIR_STORAGE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "darkelixir_storage_level9", - "ExportNameConstruction": "darkelixir_storage_const", - "BuildTimeD": 12, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 8100000, - "TownHallLevel": 14, - "CapitalHallLevel": 14, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredDarkElixir": 330000, - "Hitpoints": 4100, - "RegenTime": 30, - "DestroyEffect": "Elixir Storage Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_glass", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "dark_elixir_storage_lvl6_base", - "PickUpEffect": "Dark Elixir Storage Pickup", - "PlacingEffect": "Dark Elixir Storage Place", - "HintPriority": 300, - "PreviewScenario": "NoCombatBuilding" - }, - "10": { - "BuildingLevel": 10, - "TID": "TID_BUILDING_DARK_ELIXIR_STORAGE", - "InfoTID": "TID_DARK_ELIXIR_STORAGE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "darkelixir_storage_level10", - "ExportNameConstruction": "darkelixir_storage_const", - "BuildTimeD": 12, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 12500000, - "TownHallLevel": 15, - "CapitalHallLevel": 15, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredDarkElixir": 350000, - "Hitpoints": 4300, - "RegenTime": 30, - "DestroyEffect": "Elixir Storage Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_glass", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "dark_elixir_storage_lvl6_base", - "PickUpEffect": "Dark Elixir Storage Pickup", - "PlacingEffect": "Dark Elixir Storage Place", - "HintPriority": 300, - "PreviewScenario": "NoCombatBuilding" - }, - "11": { - "BuildingLevel": 11, - "TID": "TID_BUILDING_DARK_ELIXIR_STORAGE", - "InfoTID": "TID_DARK_ELIXIR_STORAGE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "darkelixir_storage_level11", - "ExportNameConstruction": "darkelixir_storage_const", - "BuildTimeD": 15, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 13500000, - "TownHallLevel": 16, - "CapitalHallLevel": 16, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredDarkElixir": 360000, - "Hitpoints": 4500, - "RegenTime": 30, - "DestroyEffect": "Elixir Storage Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_glass", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "dark_elixir_storage_lvl6_base", - "PickUpEffect": "Dark Elixir Storage Pickup", - "PlacingEffect": "Dark Elixir Storage Place", - "HintPriority": 300, - "PreviewScenario": "NoCombatBuilding" - } - }, - "Archer Queen": { - "1": { - "BuildingLevel": 1, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_ARCHER_QUEEN_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "heroaltar_archer_queen_lvl1", - "ExportNameConstruction": "heroaltar_archer_queen_const", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "DarkElixir", - "BuildCost": 10000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "heroaltar_archer_queen_upg", - "BoostCost": 5, - "Hitpoints": 250, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "heroaltar_base", - "PickUpEffect": "Hero Altar Pickup", - "PlacingEffect": "Hero Altar Place", - "IsHeroBarrack": true, - "HeroType": "Archer Queen", - "HintPriority": 700 - } - }, - "Dark Barracks": { - "1": { - "BuildingLevel": 1, - "TID": "TID_DARK_ELIXIR_BARRACK", - "InfoTID": "TID_DARK_ELIXIR_BARRACK_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "darkBarracks_lvl1", - "ExportNameConstruction": "darkBarracks_const", - "BuildTimeD": 0, - "BuildTimeH": 8, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 200000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "darkBarracks_upg", - "UnitProduction": 40, - "ProducesUnitsOfType": 2, - "LevelRequirementTID": "TID_REQUIRED_DARK_BARRACK_LEVEL", - "BoostCost": 5, - "Hitpoints": 500, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 400, - "PreviewScenario": "NoCombatBuilding" - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_DARK_ELIXIR_BARRACK", - "InfoTID": "TID_DARK_ELIXIR_BARRACK_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "darkBarracks_lvl2", - "ExportNameConstruction": "darkBarracks_const", - "BuildTimeD": 1, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 600000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "darkBarracks_upg", - "UnitProduction": 50, - "ProducesUnitsOfType": 2, - "LevelRequirementTID": "TID_REQUIRED_DARK_BARRACK_LEVEL", - "BoostCost": 5, - "Hitpoints": 550, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 400, - "PreviewScenario": "NoCombatBuilding" - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_DARK_ELIXIR_BARRACK", - "InfoTID": "TID_DARK_ELIXIR_BARRACK_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "darkBarracks_lvl3", - "ExportNameConstruction": "darkBarracks_const", - "BuildTimeD": 1, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 1000000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "darkBarracks_upg", - "UnitProduction": 60, - "ProducesUnitsOfType": 2, - "LevelRequirementTID": "TID_REQUIRED_DARK_BARRACK_LEVEL", - "BoostCost": 5, - "Hitpoints": 600, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 400, - "PreviewScenario": "NoCombatBuilding" - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_DARK_ELIXIR_BARRACK", - "InfoTID": "TID_DARK_ELIXIR_BARRACK_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "darkBarracks_lvl4", - "ExportNameConstruction": "darkBarracks_const", - "BuildTimeD": 2, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 1600000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "darkBarracks_upg", - "UnitProduction": 70, - "ProducesUnitsOfType": 2, - "LevelRequirementTID": "TID_REQUIRED_DARK_BARRACK_LEVEL", - "BoostCost": 5, - "Hitpoints": 650, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 400, - "PreviewScenario": "NoCombatBuilding" - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_DARK_ELIXIR_BARRACK", - "InfoTID": "TID_DARK_ELIXIR_BARRACK_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "darkBarracks_lvl5", - "ExportNameConstruction": "darkBarracks_const", - "BuildTimeD": 3, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 2200000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "darkBarracks_upg", - "UnitProduction": 80, - "ProducesUnitsOfType": 2, - "LevelRequirementTID": "TID_REQUIRED_DARK_BARRACK_LEVEL", - "BoostCost": 5, - "Hitpoints": 700, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 400, - "PreviewScenario": "NoCombatBuilding" - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_DARK_ELIXIR_BARRACK", - "InfoTID": "TID_DARK_ELIXIR_BARRACK_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "darkBarracks_lvl6", - "ExportNameConstruction": "darkBarracks_const", - "BuildTimeD": 4, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 2900000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "darkBarracks_upg", - "UnitProduction": 90, - "ProducesUnitsOfType": 2, - "LevelRequirementTID": "TID_REQUIRED_DARK_BARRACK_LEVEL", - "BoostCost": 5, - "Hitpoints": 750, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 400, - "PreviewScenario": "NoCombatBuilding" - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_DARK_ELIXIR_BARRACK", - "InfoTID": "TID_DARK_ELIXIR_BARRACK_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "darkBarracks_lvl7", - "ExportNameConstruction": "darkBarracks_const", - "BuildTimeD": 6, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 4000000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "darkBarracks_upg", - "UnitProduction": 100, - "ProducesUnitsOfType": 2, - "LevelRequirementTID": "TID_REQUIRED_DARK_BARRACK_LEVEL", - "BoostCost": 5, - "Hitpoints": 800, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 400, - "PreviewScenario": "NoCombatBuilding" - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_DARK_ELIXIR_BARRACK", - "InfoTID": "TID_DARK_ELIXIR_BARRACK_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "darkBarracks_lvl8", - "ExportNameConstruction": "darkBarracks_const", - "BuildTimeD": 8, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 7500000, - "TownHallLevel": 11, - "CapitalHallLevel": 11, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "darkBarracks_upg", - "UnitProduction": 110, - "ProducesUnitsOfType": 2, - "LevelRequirementTID": "TID_REQUIRED_DARK_BARRACK_LEVEL", - "BoostCost": 5, - "Hitpoints": 850, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 400, - "PreviewScenario": "NoCombatBuilding" - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_DARK_ELIXIR_BARRACK", - "InfoTID": "TID_DARK_ELIXIR_BARRACK_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "darkBarracks_lvl9", - "ExportNameConstruction": "darkBarracks_const", - "BuildTimeD": 10, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 9000000, - "TownHallLevel": 12, - "CapitalHallLevel": 12, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "darkBarracks_upg", - "UnitProduction": 120, - "ProducesUnitsOfType": 2, - "LevelRequirementTID": "TID_REQUIRED_DARK_BARRACK_LEVEL", - "BoostCost": 5, - "Hitpoints": 900, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 400, - "PreviewScenario": "NoCombatBuilding" - }, - "10": { - "BuildingLevel": 10, - "TID": "TID_DARK_ELIXIR_BARRACK", - "InfoTID": "TID_DARK_ELIXIR_BARRACK_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "darkBarracks_lvl10", - "ExportNameConstruction": "darkBarracks_const", - "BuildTimeD": 13, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 13000000, - "TownHallLevel": 13, - "CapitalHallLevel": 13, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "darkBarracks_upg", - "UnitProduction": 130, - "ProducesUnitsOfType": 2, - "LevelRequirementTID": "TID_REQUIRED_DARK_BARRACK_LEVEL", - "BoostCost": 5, - "Hitpoints": 950, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 400, - "PreviewScenario": "NoCombatBuilding" - } - }, - "Inferno Tower": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_DARK_TOWER", - "InfoTID": "TID_DARK_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "dark_tower_lvl1", - "ExportNameConstruction": "dark_tower_const", - "BuildTimeD": 2, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 1500000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "dark_tower_upg", - "ExportNameUpgradeAnim": "dark_tower_lvl1_upgrade", - "Hitpoints": 1500, - "RegenTime": 20, - "AttackRange": 900, - "AltAttackMode": true, - "AltAttackRange": 1000, - "AttackSpeed": 128, - "DPS": 30, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Dark Tower Attack 1", - "HitEffect": "Dark Tower Hit", - "ExportNameDamaged": "destroyedBuilding_2l_round_pit_rockwood", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "dark_tower_base", - "AirTargets": true, - "GroundTargets": true, - "AltAirTargets": true, - "AltGroundTargets": true, - "AltMultiTargets": true, - "AmmoCount": 1000, - "AmmoResource": "DarkElixir", - "AmmoCost": 500, - "LoadAmmoEffect": "Dark Tower Load", - "NoAmmoEffect": "Dark Tower No Ammo", - "ToggleAttackModeEffect": "Dark Tower Target", - "PickUpEffect": "Dark Tower Pickup", - "PlacingEffect": "Dark Tower Placing", - "IncreasingDamage": true, - "DPSLv2": 80, - "DPSLv3": 800, - "DPSMulti": 30, - "Lv2SwitchTime": 1500, - "Lv3SwitchTime": 5250, - "AttackEffectLv2": "Dark Tower Attack 2", - "AttackEffectLv3": "Dark Tower Attack 3", - "TransitionEffectLv2": "Dark Tower Up 2", - "TransitionEffectLv3": "Dark Tower Up 3", - "AltNumMultiTargets": 5, - "StrengthWeight": 2800, - "AlternatePickNewTargetDelay": 50, - "HintPriority": 150, - "PreviewScenario": "DefenseHeavy", - "AltPreviewScenario": "DefenseLongRange" - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_DARK_TOWER", - "InfoTID": "TID_DARK_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "dark_tower_lvl2", - "ExportNameConstruction": "dark_tower_const", - "BuildTimeD": 2, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 2000000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "dark_tower_upg", - "ExportNameUpgradeAnim": "dark_tower_lvl2_upgrade", - "Hitpoints": 1800, - "RegenTime": 21, - "AttackRange": 900, - "AltAttackMode": true, - "AltAttackRange": 1000, - "AttackSpeed": 128, - "DPS": 35, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Dark Tower Attack 1", - "HitEffect": "Dark Tower Hit", - "ExportNameDamaged": "destroyedBuilding_2l_round_pit_rockwood", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "dark_tower_base", - "AirTargets": true, - "GroundTargets": true, - "AltAirTargets": true, - "AltGroundTargets": true, - "AltMultiTargets": true, - "AmmoCount": 1000, - "AmmoResource": "DarkElixir", - "AmmoCost": 600, - "LoadAmmoEffect": "Dark Tower Load", - "NoAmmoEffect": "Dark Tower No Ammo", - "ToggleAttackModeEffect": "Dark Tower Target", - "PickUpEffect": "Dark Tower Pickup", - "PlacingEffect": "Dark Tower Placing", - "IncreasingDamage": true, - "DPSLv2": 100, - "DPSLv3": 1000, - "DPSMulti": 35, - "Lv2SwitchTime": 1500, - "Lv3SwitchTime": 5250, - "AttackEffectLv2": "Dark Tower Attack 2", - "AttackEffectLv3": "Dark Tower Attack 3", - "TransitionEffectLv2": "Dark Tower Up 2", - "TransitionEffectLv3": "Dark Tower Up 3", - "AltNumMultiTargets": 5, - "StrengthWeight": 2500, - "AlternatePickNewTargetDelay": 50, - "HintPriority": 150, - "PreviewScenario": "DefenseHeavy", - "AltPreviewScenario": "DefenseLongRange" - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_DARK_TOWER", - "InfoTID": "TID_DARK_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "dark_tower_lvl3", - "ExportNameConstruction": "dark_tower_const", - "BuildTimeD": 3, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 3000000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "dark_tower_upg", - "ExportNameUpgradeAnim": "dark_tower_lvl3_upgrade", - "Hitpoints": 2100, - "RegenTime": 22, - "AttackRange": 900, - "AltAttackMode": true, - "AltAttackRange": 1000, - "AttackSpeed": 128, - "DPS": 40, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Dark Tower lvl3 Attack 1", - "HitEffect": "Dark Tower Hit", - "ExportNameDamaged": "destroyedBuilding_2l_round_pit_rockwood", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "dark_tower_base", - "AirTargets": true, - "GroundTargets": true, - "AltAirTargets": true, - "AltGroundTargets": true, - "AltMultiTargets": true, - "AmmoCount": 1000, - "AmmoResource": "DarkElixir", - "AmmoCost": 700, - "LoadAmmoEffect": "Dark Tower Load", - "NoAmmoEffect": "Dark Tower No Ammo", - "ToggleAttackModeEffect": "Dark Tower Target", - "PickUpEffect": "Dark Tower Pickup", - "PlacingEffect": "Dark Tower Placing", - "IncreasingDamage": true, - "DPSLv2": 120, - "DPSLv3": 1200, - "DPSMulti": 40, - "Lv2SwitchTime": 1500, - "Lv3SwitchTime": 5250, - "AttackEffectLv2": "Dark Tower lvl3 Attack 2", - "AttackEffectLv3": "Dark Tower lvl3 Attack 3", - "TransitionEffectLv2": "Dark Tower Up 2", - "TransitionEffectLv3": "Dark Tower Up 3", - "AltNumMultiTargets": 5, - "StrengthWeight": 2250, - "AlternatePickNewTargetDelay": 50, - "HintPriority": 150, - "PreviewScenario": "DefenseHeavy", - "AltPreviewScenario": "DefenseLongRange" - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_DARK_TOWER", - "InfoTID": "TID_DARK_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "dark_tower_lvl4", - "ExportNameConstruction": "dark_tower_const", - "BuildTimeD": 4, - "BuildTimeH": 6, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 3400000, - "TownHallLevel": 11, - "CapitalHallLevel": 11, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "dark_tower_upg", - "ExportNameUpgradeAnim": "dark_tower_lvl4_upgrade", - "Hitpoints": 2400, - "RegenTime": 23, - "AttackRange": 900, - "AltAttackMode": true, - "AltAttackRange": 1000, - "AttackSpeed": 128, - "DPS": 50, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Dark Tower lvl3 Attack 1", - "HitEffect": "Dark Tower Hit", - "ExportNameDamaged": "destroyedBuilding_2l_round_pit_rockwood", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "dark_tower_base", - "AirTargets": true, - "GroundTargets": true, - "AltAirTargets": true, - "AltGroundTargets": true, - "AltMultiTargets": true, - "AmmoCount": 1000, - "AmmoResource": "DarkElixir", - "AmmoCost": 800, - "LoadAmmoEffect": "Dark Tower Load", - "NoAmmoEffect": "Dark Tower No Ammo", - "ToggleAttackModeEffect": "Dark Tower Target", - "PickUpEffect": "Dark Tower Pickup", - "PlacingEffect": "Dark Tower Placing", - "IncreasingDamage": true, - "DPSLv2": 140, - "DPSLv3": 1400, - "DPSMulti": 50, - "Lv2SwitchTime": 1500, - "Lv3SwitchTime": 5250, - "AttackEffectLv2": "Dark Tower lvl3 Attack 2", - "AttackEffectLv3": "Dark Tower lvl3 Attack 3", - "TransitionEffectLv2": "Dark Tower Up 2", - "TransitionEffectLv3": "Dark Tower Up 3", - "AltNumMultiTargets": 5, - "StrengthWeight": 2100, - "AlternatePickNewTargetDelay": 50, - "HintPriority": 150, - "PreviewScenario": "DefenseHeavy", - "AltPreviewScenario": "DefenseLongRange" - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_DARK_TOWER", - "InfoTID": "TID_DARK_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "dark_tower_lvl5", - "ExportNameConstruction": "dark_tower_const", - "BuildTimeD": 5, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 4200000, - "TownHallLevel": 11, - "CapitalHallLevel": 11, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "dark_tower_upg", - "ExportNameUpgradeAnim": "dark_tower_lvl5_upgrade", - "Hitpoints": 2700, - "RegenTime": 23, - "AttackRange": 900, - "AltAttackMode": true, - "AltAttackRange": 1000, - "AttackSpeed": 128, - "DPS": 60, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Dark Tower lvl3 Attack 1", - "HitEffect": "Dark Tower Hit", - "ExportNameDamaged": "destroyedBuilding_2l_round_pit_rockwood", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "dark_tower_base", - "AirTargets": true, - "GroundTargets": true, - "AltAirTargets": true, - "AltGroundTargets": true, - "AltMultiTargets": true, - "AmmoCount": 1000, - "AmmoResource": "DarkElixir", - "AmmoCost": 900, - "LoadAmmoEffect": "Dark Tower Load", - "NoAmmoEffect": "Dark Tower No Ammo", - "ToggleAttackModeEffect": "Dark Tower Target", - "PickUpEffect": "Dark Tower Pickup", - "PlacingEffect": "Dark Tower Placing", - "IncreasingDamage": true, - "DPSLv2": 160, - "DPSLv3": 1600, - "DPSMulti": 60, - "Lv2SwitchTime": 1500, - "Lv3SwitchTime": 5250, - "AttackEffectLv2": "Dark Tower lvl3 Attack 2", - "AttackEffectLv3": "Dark Tower lvl3 Attack 3", - "TransitionEffectLv2": "Dark Tower Up 2", - "TransitionEffectLv3": "Dark Tower Up 3", - "AltNumMultiTargets": 5, - "StrengthWeight": 2000, - "AlternatePickNewTargetDelay": 50, - "HintPriority": 150, - "PreviewScenario": "DefenseHeavy", - "AltPreviewScenario": "DefenseLongRange" - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_BUILDING_DARK_TOWER", - "InfoTID": "TID_DARK_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "dark_tower_lvl6", - "ExportNameConstruction": "dark_tower_const", - "BuildTimeD": 8, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 6500000, - "TownHallLevel": 12, - "CapitalHallLevel": 12, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "dark_tower_upg", - "ExportNameUpgradeAnim": "dark_tower_lvl6_upgrade", - "Hitpoints": 3000, - "RegenTime": 23, - "AttackRange": 900, - "AltAttackMode": true, - "AltAttackRange": 1000, - "AttackSpeed": 128, - "DPS": 70, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Dark Tower lvl3 Attack 1", - "HitEffect": "Dark Tower Hit", - "ExportNameDamaged": "destroyedBuilding_2l_round_pit_rockwood", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "dark_tower_base", - "AirTargets": true, - "GroundTargets": true, - "AltAirTargets": true, - "AltGroundTargets": true, - "AltMultiTargets": true, - "AmmoCount": 1000, - "AmmoResource": "DarkElixir", - "AmmoCost": 1000, - "LoadAmmoEffect": "Dark Tower Load", - "NoAmmoEffect": "Dark Tower No Ammo", - "ToggleAttackModeEffect": "Dark Tower Target", - "PickUpEffect": "Dark Tower Pickup", - "PlacingEffect": "Dark Tower Placing", - "IncreasingDamage": true, - "DPSLv2": 180, - "DPSLv3": 1800, - "DPSMulti": 70, - "Lv2SwitchTime": 1500, - "Lv3SwitchTime": 5250, - "AttackEffectLv2": "Dark Tower lvl3 Attack 2", - "AttackEffectLv3": "Dark Tower lvl3 Attack 3", - "TransitionEffectLv2": "Dark Tower Up 2", - "TransitionEffectLv3": "Dark Tower Up 3", - "AltNumMultiTargets": 5, - "StrengthWeight": 1900, - "AlternatePickNewTargetDelay": 50, - "HintPriority": 150, - "PreviewScenario": "DefenseHeavy", - "AltPreviewScenario": "DefenseLongRange" - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_BUILDING_DARK_TOWER", - "InfoTID": "TID_DARK_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "dark_tower_lvl7", - "ExportNameConstruction": "dark_tower_const", - "BuildTimeD": 9, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 10500000, - "TownHallLevel": 13, - "CapitalHallLevel": 13, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "dark_tower_upg", - "ExportNameUpgradeAnim": "dark_tower_lvl7_upgrade", - "Hitpoints": 3300, - "RegenTime": 23, - "AttackRange": 900, - "AltAttackMode": true, - "AltAttackRange": 1000, - "AttackSpeed": 128, - "DPS": 85, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Dark Tower lvl3 Attack 1", - "HitEffect": "Dark Tower Hit", - "ExportNameDamaged": "destroyedBuilding_2l_round_pit_rockwood", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "dark_tower_base", - "AirTargets": true, - "GroundTargets": true, - "AltAirTargets": true, - "AltGroundTargets": true, - "AltMultiTargets": true, - "AmmoCount": 1000, - "AmmoResource": "DarkElixir", - "AmmoCost": 1100, - "LoadAmmoEffect": "Dark Tower Load", - "NoAmmoEffect": "Dark Tower No Ammo", - "ToggleAttackModeEffect": "Dark Tower Target", - "PickUpEffect": "Dark Tower Pickup", - "PlacingEffect": "Dark Tower Placing", - "IncreasingDamage": true, - "DPSLv2": 200, - "DPSLv3": 2000, - "DPSMulti": 85, - "Lv2SwitchTime": 1500, - "Lv3SwitchTime": 5250, - "AttackEffectLv2": "Dark Tower lvl3 Attack 2", - "AttackEffectLv3": "Dark Tower lvl3 Attack 3", - "TransitionEffectLv2": "Dark Tower Up 2", - "TransitionEffectLv3": "Dark Tower Up 3", - "AltNumMultiTargets": 5, - "StrengthWeight": 1800, - "AlternatePickNewTargetDelay": 50, - "HintPriority": 150, - "PreviewScenario": "DefenseHeavy", - "AltPreviewScenario": "DefenseLongRange" - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_BUILDING_DARK_TOWER", - "InfoTID": "TID_DARK_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "dark_tower_lvl8", - "ExportNameConstruction": "dark_tower_const", - "BuildTimeD": 13, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 12600000, - "TownHallLevel": 14, - "CapitalHallLevel": 14, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "dark_tower_upg", - "ExportNameUpgradeAnim": "dark_tower_lvl8_upgrade", - "Hitpoints": 3700, - "RegenTime": 23, - "AttackRange": 900, - "AltAttackMode": true, - "AltAttackRange": 1000, - "AttackSpeed": 128, - "DPS": 100, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Dark Tower lvl3 Attack 1", - "HitEffect": "Dark Tower Hit", - "ExportNameDamaged": "destroyedBuilding_2l_round_pit_rockwood", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "dark_tower_base", - "AirTargets": true, - "GroundTargets": true, - "AltAirTargets": true, - "AltGroundTargets": true, - "AltMultiTargets": true, - "AmmoCount": 1000, - "AmmoResource": "DarkElixir", - "AmmoCost": 1200, - "LoadAmmoEffect": "Dark Tower Load", - "NoAmmoEffect": "Dark Tower No Ammo", - "ToggleAttackModeEffect": "Dark Tower Target", - "PickUpEffect": "Dark Tower Pickup", - "PlacingEffect": "Dark Tower Placing", - "IncreasingDamage": true, - "DPSLv2": 220, - "DPSLv3": 2200, - "DPSMulti": 100, - "Lv2SwitchTime": 1500, - "Lv3SwitchTime": 5250, - "AttackEffectLv2": "Dark Tower lvl3 Attack 2", - "AttackEffectLv3": "Dark Tower lvl3 Attack 3", - "TransitionEffectLv2": "Dark Tower Up 2", - "TransitionEffectLv3": "Dark Tower Up 3", - "AltNumMultiTargets": 6, - "StrengthWeight": 1700, - "AlternatePickNewTargetDelay": 50, - "HintPriority": 150, - "PreviewScenario": "DefenseHeavy", - "AltPreviewScenario": "DefenseLongRange" - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_BUILDING_DARK_TOWER", - "InfoTID": "TID_DARK_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "dark_tower_lvl9", - "ExportNameConstruction": "dark_tower_const", - "BuildTimeD": 13, - "BuildTimeH": 18, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 21000000, - "TownHallLevel": 15, - "CapitalHallLevel": 15, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "dark_tower_upg", - "ExportNameUpgradeAnim": "dark_tower_lvl8_upgrade", - "Hitpoints": 4000, - "RegenTime": 23, - "AttackRange": 900, - "AltAttackMode": true, - "AltAttackRange": 1000, - "AttackSpeed": 128, - "DPS": 110, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Dark Tower lvl3 Attack 1", - "HitEffect": "Dark Tower Hit", - "ExportNameDamaged": "destroyedBuilding_2l_round_pit_rockwood", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "dark_tower_base", - "AirTargets": true, - "GroundTargets": true, - "AltAirTargets": true, - "AltGroundTargets": true, - "AltMultiTargets": true, - "AmmoCount": 1000, - "AmmoResource": "DarkElixir", - "AmmoCost": 1300, - "LoadAmmoEffect": "Dark Tower Load", - "NoAmmoEffect": "Dark Tower No Ammo", - "ToggleAttackModeEffect": "Dark Tower Target", - "PickUpEffect": "Dark Tower Pickup", - "PlacingEffect": "Dark Tower Placing", - "IncreasingDamage": true, - "DPSLv2": 240, - "DPSLv3": 2400, - "DPSMulti": 110, - "Lv2SwitchTime": 1500, - "Lv3SwitchTime": 5250, - "AttackEffectLv2": "Dark Tower lvl3 Attack 2", - "AttackEffectLv3": "Dark Tower lvl3 Attack 3", - "TransitionEffectLv2": "Dark Tower Up 2", - "TransitionEffectLv3": "Dark Tower Up 3", - "AltNumMultiTargets": 6, - "StrengthWeight": 1650, - "AlternatePickNewTargetDelay": 50, - "HintPriority": 150, - "PreviewScenario": "DefenseHeavy", - "AltPreviewScenario": "DefenseLongRange" - } - }, - "Air Sweeper": { - "1": { - "BuildingLevel": 1, - "TID": "TID_AIR_BLASTER", - "InfoTID": "TID_AIR_BLASTER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "air_mortar_lvl1", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 0, - "BuildTimeH": 6, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 400000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "air_mortar_upg", - "ExportNameUpgradeAnim": "air_mortar_lvl1_upgrade", - "Hitpoints": 750, - "RegenTime": 20, - "AttackRange": 1500, - "PrepareSpeed": 600, - "AttackSpeed": 5000, - "CoolDownOverride": 4800, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Wind Machine Attack", - "Projectile": "Air Blaster Ammo1", - "ExportNameDamaged": "destroyedBuilding_2s_pit_wood", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "windmachine_base", - "AirTargets": true, - "MinAttackRange": 100, - "PickUpEffect": "Wind Machine Pickup", - "PlacingEffect": "Wind Machine Place", - "AnimateTurret": true, - "StrengthWeight": 20, - "ShockwavePushStrength": 160, - "ShockwaveArcLength": 700, - "ShockwaveExpandRadius": 250, - "TargetingConeAngle": 105, - "AimRotateStep": 45, - "HintPriority": 150, - "PreviewScenario": "AirBlaster1" - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_AIR_BLASTER", - "InfoTID": "TID_AIR_BLASTER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "air_mortar_lvl2", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 0, - "BuildTimeH": 8, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 600000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "air_mortar_upg", - "ExportNameUpgradeAnim": "air_mortar_lvl2_upgrade", - "Hitpoints": 800, - "RegenTime": 21, - "AttackRange": 1500, - "PrepareSpeed": 600, - "AttackSpeed": 5000, - "CoolDownOverride": 4800, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Wind Machine Attack", - "Projectile": "Air Blaster Ammo1", - "ExportNameDamaged": "destroyedBuilding_2s_pit_wood", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "windmachine_base", - "AirTargets": true, - "MinAttackRange": 100, - "PickUpEffect": "Wind Machine Pickup", - "PlacingEffect": "Wind Machine Place", - "AnimateTurret": true, - "StrengthWeight": 20, - "ShockwavePushStrength": 200, - "ShockwaveArcLength": 700, - "ShockwaveExpandRadius": 250, - "TargetingConeAngle": 105, - "AimRotateStep": 45, - "HintPriority": 150, - "PreviewScenario": "AirBlaster1" - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_AIR_BLASTER", - "InfoTID": "TID_AIR_BLASTER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "air_mortar_lvl3", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 0, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 900000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "air_mortar_upg", - "ExportNameUpgradeAnim": "air_mortar_lvl3_upgrade", - "Hitpoints": 850, - "RegenTime": 22, - "AttackRange": 1500, - "PrepareSpeed": 600, - "AttackSpeed": 5000, - "CoolDownOverride": 4800, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Wind Machine Attack", - "Projectile": "Air Blaster Ammo1", - "ExportNameDamaged": "destroyedBuilding_2s_pit_wood", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "windmachine_base", - "AirTargets": true, - "MinAttackRange": 100, - "PickUpEffect": "Wind Machine Pickup", - "PlacingEffect": "Wind Machine Place", - "AnimateTurret": true, - "StrengthWeight": 20, - "ShockwavePushStrength": 240, - "ShockwaveArcLength": 700, - "ShockwaveExpandRadius": 250, - "TargetingConeAngle": 105, - "AimRotateStep": 45, - "HintPriority": 150, - "PreviewScenario": "AirBlaster1" - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_AIR_BLASTER", - "InfoTID": "TID_AIR_BLASTER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "air_mortar_lvl4", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 0, - "BuildTimeH": 18, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 1200000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "air_mortar_upg", - "ExportNameUpgradeAnim": "air_mortar_lvl4_upgrade", - "Hitpoints": 900, - "RegenTime": 23, - "AttackRange": 1500, - "PrepareSpeed": 600, - "AttackSpeed": 5000, - "CoolDownOverride": 4800, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Wind Machine Attack", - "Projectile": "Air Blaster Ammo1", - "ExportNameDamaged": "destroyedBuilding_2s_pit_rockwood", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "windmachine_base", - "AirTargets": true, - "MinAttackRange": 100, - "PickUpEffect": "Wind Machine Pickup", - "PlacingEffect": "Wind Machine Place", - "AnimateTurret": true, - "StrengthWeight": 20, - "ShockwavePushStrength": 280, - "ShockwaveArcLength": 700, - "ShockwaveExpandRadius": 250, - "TargetingConeAngle": 105, - "AimRotateStep": 45, - "HintPriority": 150, - "PreviewScenario": "AirBlaster1" - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_AIR_BLASTER", - "InfoTID": "TID_AIR_BLASTER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "air_mortar_lvl5", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 1, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 1800000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "air_mortar_upg", - "ExportNameUpgradeAnim": "air_mortar_lvl5_upgrade", - "Hitpoints": 950, - "RegenTime": 24, - "AttackRange": 1500, - "PrepareSpeed": 600, - "AttackSpeed": 5000, - "CoolDownOverride": 4800, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Wind Machine Attack", - "Projectile": "Air Blaster Ammo1", - "ExportNameDamaged": "destroyedBuilding_2s_pit_rockwood", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "windmachine_base", - "AirTargets": true, - "MinAttackRange": 100, - "PickUpEffect": "Wind Machine Pickup", - "PlacingEffect": "Wind Machine Place", - "AnimateTurret": true, - "StrengthWeight": 20, - "ShockwavePushStrength": 320, - "ShockwaveArcLength": 700, - "ShockwaveExpandRadius": 250, - "TargetingConeAngle": 105, - "AimRotateStep": 45, - "HintPriority": 150, - "PreviewScenario": "AirBlaster1" - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_AIR_BLASTER", - "InfoTID": "TID_AIR_BLASTER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "air_mortar_lvl6", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 2, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 1900000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "air_mortar_upg", - "ExportNameUpgradeAnim": "air_mortar_lvl6_upgrade", - "Hitpoints": 1000, - "RegenTime": 25, - "AttackRange": 1500, - "PrepareSpeed": 600, - "AttackSpeed": 5000, - "CoolDownOverride": 4800, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Wind Machine Attack", - "Projectile": "Air Blaster Ammo1", - "ExportNameDamaged": "destroyedBuilding_2s_pit_rockwood", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "windmachine_base", - "AirTargets": true, - "MinAttackRange": 100, - "PickUpEffect": "Wind Machine Pickup", - "PlacingEffect": "Wind Machine Place", - "AnimateTurret": true, - "StrengthWeight": 20, - "ShockwavePushStrength": 360, - "ShockwaveArcLength": 700, - "ShockwaveExpandRadius": 250, - "TargetingConeAngle": 105, - "AimRotateStep": 45, - "HintPriority": 150, - "PreviewScenario": "AirBlaster1" - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_AIR_BLASTER", - "InfoTID": "TID_AIR_BLASTER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "air_mortar_lvl7", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 3, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 3400000, - "TownHallLevel": 11, - "CapitalHallLevel": 11, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "air_mortar_upg", - "ExportNameUpgradeAnim": "air_mortar_lvl7_upgrade", - "Hitpoints": 1050, - "RegenTime": 26, - "AttackRange": 1500, - "PrepareSpeed": 600, - "AttackSpeed": 5000, - "CoolDownOverride": 4800, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Wind Machine Attack", - "Projectile": "Air Blaster Ammo1", - "ExportNameDamaged": "destroyedBuilding_2s_pit_rockwood", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "windmachine_base", - "AirTargets": true, - "MinAttackRange": 100, - "PickUpEffect": "Wind Machine Pickup", - "PlacingEffect": "Wind Machine Place", - "AnimateTurret": true, - "StrengthWeight": 20, - "ShockwavePushStrength": 400, - "ShockwaveArcLength": 700, - "ShockwaveExpandRadius": 250, - "TargetingConeAngle": 105, - "AimRotateStep": 45, - "HintPriority": 150, - "PreviewScenario": "AirBlaster" - } - }, - "Dark Spell Factory": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_MINI_SPELL_FACTORY", - "InfoTID": "TID_MINI_SPELL_FACTORY_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "mini_spell_distillery_lvl1", - "ExportNameConstruction": "mini_spell_distillery_const", - "BuildTimeD": 0, - "BuildTimeH": 6, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 130000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mini_spell_distillery_upg", - "HousingSpaceAlt": 1, - "UnitProduction": 2, - "ProducesUnitsOfType": 2, - "LevelRequirementTID": "TID_REQUIRED_DARK_SPELL_FORGE_LEVEL", - "BoostCost": 5, - "Hitpoints": 600, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mini_spell_distillery_base", - "PickUpEffect": "Spell Factory Pickup", - "PlacingEffect": "Spell Factory Place", - "ForgesSpells": true, - "ForgesMiniSpells": true, - "HintPriority": 600, - "PreviewScenario": "NoCombatBuilding" - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_MINI_SPELL_FACTORY", - "InfoTID": "TID_MINI_SPELL_FACTORY_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "mini_spell_distillery_lvl2", - "ExportNameConstruction": "mini_spell_distillery_const", - "BuildTimeD": 0, - "BuildTimeH": 18, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 260000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mini_spell_distillery_upg", - "HousingSpaceAlt": 1, - "UnitProduction": 4, - "ProducesUnitsOfType": 2, - "LevelRequirementTID": "TID_REQUIRED_DARK_SPELL_FORGE_LEVEL", - "BoostCost": 5, - "Hitpoints": 660, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mini_spell_distillery_base", - "PickUpEffect": "Spell Factory Pickup", - "PlacingEffect": "Spell Factory Place", - "ForgesSpells": true, - "ForgesMiniSpells": true, - "HintPriority": 600, - "PreviewScenario": "NoCombatBuilding" - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_MINI_SPELL_FACTORY", - "InfoTID": "TID_MINI_SPELL_FACTORY_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "mini_spell_distillery_lvl3", - "ExportNameConstruction": "mini_spell_distillery_const", - "BuildTimeD": 2, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 600000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mini_spell_distillery_upg", - "HousingSpaceAlt": 1, - "UnitProduction": 6, - "ProducesUnitsOfType": 2, - "LevelRequirementTID": "TID_REQUIRED_DARK_SPELL_FORGE_LEVEL", - "BoostCost": 5, - "Hitpoints": 720, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mini_spell_distillery_base", - "PickUpEffect": "Spell Factory Pickup", - "PlacingEffect": "Spell Factory Place", - "ForgesSpells": true, - "ForgesMiniSpells": true, - "HintPriority": 600, - "PreviewScenario": "NoCombatBuilding" - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_MINI_SPELL_FACTORY", - "InfoTID": "TID_MINI_SPELL_FACTORY_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "mini_spell_distillery_lvl4", - "ExportNameConstruction": "mini_spell_distillery_const", - "BuildTimeD": 4, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 1200000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mini_spell_distillery_upg", - "HousingSpaceAlt": 1, - "UnitProduction": 8, - "ProducesUnitsOfType": 2, - "LevelRequirementTID": "TID_REQUIRED_DARK_SPELL_FORGE_LEVEL", - "BoostCost": 5, - "Hitpoints": 780, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mini_spell_distillery_base", - "PickUpEffect": "Spell Factory Pickup", - "PlacingEffect": "Spell Factory Place", - "ForgesSpells": true, - "ForgesMiniSpells": true, - "HintPriority": 600, - "PreviewScenario": "NoCombatBuilding" - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_MINI_SPELL_FACTORY", - "InfoTID": "TID_MINI_SPELL_FACTORY_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "mini_spell_distillery_lvl5", - "ExportNameConstruction": "mini_spell_distillery_const", - "BuildTimeD": 6, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 2500000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mini_spell_distillery_upg", - "HousingSpaceAlt": 1, - "UnitProduction": 10, - "ProducesUnitsOfType": 2, - "LevelRequirementTID": "TID_REQUIRED_DARK_SPELL_FORGE_LEVEL", - "BoostCost": 5, - "Hitpoints": 840, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mini_spell_distillery_base", - "PickUpEffect": "Spell Factory Pickup", - "PlacingEffect": "Spell Factory Place", - "ForgesSpells": true, - "ForgesMiniSpells": true, - "HintPriority": 600, - "PreviewScenario": "NoCombatBuilding" - } - }, - "Grand Warden": { - "1": { - "BuildingLevel": 1, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_GRAND_WARDEN_INFO", - "BuildingClass": "Defense", - "ShopBuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "heroaltar_elder_lvl1", - "ExportNameConstruction": "heroaltar_elder_const", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 1000000, - "TownHallLevel": 11, - "CapitalHallLevel": 11, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "heroaltar_elder_upg", - "BoostCost": 5, - "Hitpoints": 250, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "heroaltar_base", - "PickUpEffect": "Hero Altar Pickup", - "PlacingEffect": "Hero Altar Place", - "IsHeroBarrack": true, - "HeroType": "Grand Warden", - "ShareHeroCombatData": true, - "HintPriority": 700 - } - }, - "Eagle Artillery": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_ARTILLERY", - "InfoTID": "TID_ARTILLERY_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "doom_cannon_lvl1", - "ExportNameConstruction": "laboratory_const", - "BuildTimeD": 5, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 6000000, - "TownHallLevel": 11, - "CapitalHallLevel": 11, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "laboratory_upg", - "ExportNameUpgradeAnim": "doom_cannon_lvl1_upgrade", - "Hitpoints": 4000, - "RegenTime": 20, - "AttackRange": 5000, - "AttackSpeed": 10000, - "CoolDownOverride": 6992, - "DPS": 0, - "Damage": 20, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Artillery Attack", - "HitEffect": "Ancient Hit", - "Projectile": "Artillery Ammo1", - "ExportNameDamaged": "destroyedBuilding_4m_base_rock", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "laboratory_base", - "AirTargets": true, - "GroundTargets": true, - "AmmoCount": 30, - "AmmoResource": "Elixir", - "AmmoCost": 35000, - "MinAttackRange": 700, - "DamageRadius": 300, - "PushBack": 50, - "LoadAmmoEffect": "Artillery Load", - "NoAmmoEffect": "Artillery No Ammo", - "PickUpEffect": "Basic Turret Pickup", - "PlacingEffect": "Artillery Placing", - "StrengthWeight": 4900, - "TargetGroups": true, - "TargetGroupsRadius": 500, - "ExportNameBeamStart": "beam_up", - "ExportNameBeamEnd": "beam_down", - "WakeUpSpeed": 1125, - "WakeUpSpace": 200, - "PreAttackEffect": "Artillery PreAttack", - "BurstCount": 3, - "BurstDelay": 750, - "HintPriority": 150, - "PreviewScenario": "AncientArtillery" - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_ARTILLERY", - "InfoTID": "TID_ARTILLERY_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "doom_cannon_lvl2", - "ExportNameConstruction": "laboratory_const", - "BuildTimeD": 5, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 8000000, - "TownHallLevel": 11, - "CapitalHallLevel": 11, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "laboratory_upg", - "ExportNameUpgradeAnim": "doom_cannon_lvl2_upgrade", - "Hitpoints": 4400, - "RegenTime": 21, - "AttackRange": 5000, - "AttackSpeed": 10000, - "CoolDownOverride": 6992, - "DPS": 0, - "Damage": 25, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Artillery Attack", - "HitEffect": "Ancient Hit", - "Projectile": "Artillery Ammo2", - "ExportNameDamaged": "destroyedBuilding_4m_base_rock", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "laboratory_base", - "AirTargets": true, - "GroundTargets": true, - "AmmoCount": 30, - "AmmoResource": "Elixir", - "AmmoCost": 40000, - "MinAttackRange": 700, - "DamageRadius": 300, - "PushBack": 50, - "LoadAmmoEffect": "Artillery Load", - "NoAmmoEffect": "Artillery No Ammo", - "PickUpEffect": "Basic Turret Pickup", - "PlacingEffect": "Artillery Placing", - "StrengthWeight": 4450, - "TargetGroups": true, - "TargetGroupsRadius": 500, - "ExportNameBeamStart": "beam_up", - "ExportNameBeamEnd": "beam_down", - "WakeUpSpeed": 1125, - "WakeUpSpace": 200, - "PreAttackEffect": "Artillery PreAttack", - "BurstCount": 3, - "BurstDelay": 750, - "HintPriority": 150, - "PreviewScenario": "AncientArtillery" - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_ARTILLERY", - "InfoTID": "TID_ARTILLERY_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "doom_cannon_lvl3", - "ExportNameConstruction": "laboratory_const", - "BuildTimeD": 9, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 10000000, - "TownHallLevel": 12, - "CapitalHallLevel": 12, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "laboratory_upg", - "ExportNameUpgradeAnim": "doom_cannon_lvl3_upgrade", - "Hitpoints": 4800, - "RegenTime": 21, - "AttackRange": 5000, - "AttackSpeed": 10000, - "CoolDownOverride": 6992, - "DPS": 0, - "Damage": 30, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Artillery Attack", - "HitEffect": "Ancient Hit", - "Projectile": "Artillery Ammo3", - "ExportNameDamaged": "destroyedBuilding_4m_base_rock", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "laboratory_base", - "AirTargets": true, - "GroundTargets": true, - "AmmoCount": 30, - "AmmoResource": "Elixir", - "AmmoCost": 45000, - "MinAttackRange": 700, - "DamageRadius": 300, - "PushBack": 50, - "LoadAmmoEffect": "Artillery Load", - "NoAmmoEffect": "Artillery No Ammo", - "PickUpEffect": "Basic Turret Pickup", - "PlacingEffect": "Artillery Placing", - "StrengthWeight": 4100, - "TargetGroups": true, - "TargetGroupsRadius": 500, - "ExportNameBeamStart": "beam_up", - "ExportNameBeamEnd": "beam_down", - "WakeUpSpeed": 1125, - "WakeUpSpace": 200, - "PreAttackEffect": "Artillery PreAttack", - "BurstCount": 3, - "BurstDelay": 750, - "HintPriority": 150, - "PreviewScenario": "AncientArtillery" - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_ARTILLERY", - "InfoTID": "TID_ARTILLERY_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "doom_cannon_lvl4", - "ExportNameConstruction": "laboratory_const", - "BuildTimeD": 10, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 13000000, - "TownHallLevel": 13, - "CapitalHallLevel": 13, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "laboratory_upg", - "ExportNameUpgradeAnim": "doom_cannon_lvl4_upgrade", - "Hitpoints": 5200, - "RegenTime": 21, - "AttackRange": 5000, - "AttackSpeed": 10000, - "CoolDownOverride": 6992, - "DPS": 0, - "Damage": 35, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Artillery Attack", - "HitEffect": "Ancient Hit", - "Projectile": "Artillery Ammo4", - "ExportNameDamaged": "destroyedBuilding_4m_base_rock", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "laboratory_base", - "AirTargets": true, - "GroundTargets": true, - "AmmoCount": 30, - "AmmoResource": "Elixir", - "AmmoCost": 50000, - "MinAttackRange": 700, - "DamageRadius": 300, - "PushBack": 50, - "LoadAmmoEffect": "Artillery Load", - "NoAmmoEffect": "Artillery No Ammo", - "PickUpEffect": "Basic Turret Pickup", - "PlacingEffect": "Artillery Placing", - "StrengthWeight": 3800, - "TargetGroups": true, - "TargetGroupsRadius": 500, - "ExportNameBeamStart": "beam_up", - "ExportNameBeamEnd": "beam_down", - "WakeUpSpeed": 1125, - "WakeUpSpace": 200, - "PreAttackEffect": "Artillery PreAttack", - "BurstCount": 3, - "BurstDelay": 750, - "HintPriority": 150, - "PreviewScenario": "AncientArtillery" - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_ARTILLERY", - "InfoTID": "TID_ARTILLERY_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "doom_cannon_lvl5", - "ExportNameConstruction": "laboratory_const", - "BuildTimeD": 13, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 17000000, - "TownHallLevel": 14, - "CapitalHallLevel": 14, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "laboratory_upg", - "ExportNameUpgradeAnim": "doom_cannon_lvl5_upgrade", - "Hitpoints": 5600, - "RegenTime": 21, - "AttackRange": 5000, - "AttackSpeed": 10000, - "CoolDownOverride": 6992, - "DPS": 0, - "Damage": 40, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Artillery Attack", - "HitEffect": "Ancient Hit", - "Projectile": "Artillery Ammo5", - "ExportNameDamaged": "destroyedBuilding_4m_base_rock", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "laboratory_base", - "AirTargets": true, - "GroundTargets": true, - "AmmoCount": 30, - "AmmoResource": "Elixir", - "AmmoCost": 55000, - "MinAttackRange": 700, - "DamageRadius": 300, - "PushBack": 50, - "LoadAmmoEffect": "Artillery Load", - "NoAmmoEffect": "Artillery No Ammo", - "PickUpEffect": "Basic Turret Pickup", - "PlacingEffect": "Artillery Placing", - "StrengthWeight": 3550, - "TargetGroups": true, - "TargetGroupsRadius": 500, - "ExportNameBeamStart": "beam_up", - "ExportNameBeamEnd": "beam_down", - "WakeUpSpeed": 1125, - "WakeUpSpace": 200, - "PreAttackEffect": "Artillery PreAttack", - "BurstCount": 3, - "BurstDelay": 750, - "HintPriority": 150, - "PreviewScenario": "AncientArtillery" - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_BUILDING_ARTILLERY", - "InfoTID": "TID_ARTILLERY_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "doom_cannon_lvl6", - "ExportNameConstruction": "laboratory_const", - "BuildTimeD": 14, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 21500000, - "TownHallLevel": 15, - "CapitalHallLevel": 15, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "laboratory_upg", - "ExportNameUpgradeAnim": "doom_cannon_lvl6_upgrade", - "Hitpoints": 5900, - "RegenTime": 21, - "AttackRange": 5000, - "AttackSpeed": 10000, - "CoolDownOverride": 6992, - "DPS": 0, - "Damage": 45, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Artillery Attack", - "HitEffect": "Ancient Hit", - "Projectile": "Artillery Ammo6", - "ExportNameDamaged": "destroyedBuilding_4m_base_rock", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "laboratory_base", - "AirTargets": true, - "GroundTargets": true, - "AmmoCount": 30, - "AmmoResource": "Elixir", - "AmmoCost": 60000, - "MinAttackRange": 700, - "DamageRadius": 300, - "PushBack": 50, - "LoadAmmoEffect": "Artillery Load", - "NoAmmoEffect": "Artillery No Ammo", - "PickUpEffect": "Basic Turret Pickup", - "PlacingEffect": "Artillery Placing", - "StrengthWeight": 3400, - "TargetGroups": true, - "TargetGroupsRadius": 500, - "ExportNameBeamStart": "beam_up", - "ExportNameBeamEnd": "beam_down", - "WakeUpSpeed": 1125, - "WakeUpSpace": 200, - "PreAttackEffect": "Artillery PreAttack", - "BurstCount": 3, - "BurstDelay": 750, - "HintPriority": 150, - "PreviewScenario": "AncientArtillery" - } - }, - "Bomb Tower": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_BOMB_TOWER", - "InfoTID": "TID_BUILDING_BOMB_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "bomb_tower_lvl1", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 0, - "BuildTimeH": 18, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 700000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 650, - "RegenTime": 25, - "AttackRange": 600, - "AttackSpeed": 1100, - "DPS": 24, - "DestroyEffect": "Building Destroyed", - "DestroyDamageEffect": "Bomb Tower Destroyed1", - "AttackEffect": "Bomb Tower Throw Start", - "HitEffect": "Bomb Tower Hit", - "Projectile": "Bomb Tower Ammo1", - "ExportNameDamaged": "destroyedBuilding_3m_base_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "DamageRadius": 150, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "DefenderCharacter": "BomberTower_lvl1", - "DefenderCount": 1, - "DefenderZ": 145, - "StrengthWeight": 400, - "DieDamage": 150, - "DieDamageRadius": 275, - "DieDamageEffect": "Bomb Tower Explode", - "DieDamageDelay": 1000, - "HintPriority": 150, - "PreviewScenario": "DefenseBombTower" - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_BOMB_TOWER", - "InfoTID": "TID_BUILDING_BOMB_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "bomb_tower_lvl2", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 1, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 1000000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 700, - "RegenTime": 25, - "AttackRange": 600, - "AttackSpeed": 1100, - "DPS": 28, - "DestroyEffect": "Building Destroyed", - "DestroyDamageEffect": "Bomb Tower Destroyed1", - "AttackEffect": "Bomb Tower Throw Start", - "HitEffect": "Bomb Tower Hit", - "Projectile": "Bomb Tower Ammo1", - "ExportNameDamaged": "destroyedBuilding_3m_base_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "DamageRadius": 150, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "DefenderCharacter": "BomberTower_lvl1", - "DefenderCount": 1, - "DefenderZ": 145, - "StrengthWeight": 420, - "DieDamage": 180, - "DieDamageRadius": 275, - "DieDamageEffect": "Bomb Tower Explode", - "DieDamageDelay": 1000, - "HintPriority": 150, - "PreviewScenario": "DefenseBombTower" - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_BOMB_TOWER", - "InfoTID": "TID_BUILDING_BOMB_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "bomb_tower_lvl3", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 1, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 1600000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 750, - "RegenTime": 25, - "AttackRange": 600, - "AttackSpeed": 1100, - "DPS": 32, - "DestroyEffect": "Building Destroyed", - "DestroyDamageEffect": "Bomb Tower Destroyed2", - "AttackEffect": "Bomb Tower Throw Start", - "HitEffect": "Bomb Tower Hit2", - "Projectile": "Bomb Tower Ammo2", - "ExportNameDamaged": "destroyedBuilding_3m_base_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "DamageRadius": 150, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "DefenderCharacter": "BomberTower_lvl2", - "DefenderCount": 1, - "DefenderZ": 145, - "StrengthWeight": 440, - "DieDamage": 220, - "DieDamageRadius": 275, - "DieDamageEffect": "Bomb Tower Explode", - "DieDamageDelay": 1000, - "HintPriority": 150, - "PreviewScenario": "DefenseBombTower" - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_BOMB_TOWER", - "InfoTID": "TID_BUILDING_BOMB_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "bomb_tower_lvl4", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 2, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 2000000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 850, - "RegenTime": 25, - "AttackRange": 600, - "AttackSpeed": 1100, - "DPS": 40, - "DestroyEffect": "Building Destroyed", - "DestroyDamageEffect": "Bomb Tower Destroyed3", - "AttackEffect": "Bomb Tower Throw Start", - "HitEffect": "Bomb Tower Hit2", - "Projectile": "Bomb Tower Ammo3", - "ExportNameDamaged": "destroyedBuilding_3m_base_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "DamageRadius": 150, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "DefenderCharacter": "BomberTower_lvl3", - "DefenderCount": 1, - "DefenderZ": 145, - "StrengthWeight": 460, - "DieDamage": 260, - "DieDamageRadius": 275, - "DieDamageEffect": "Bomb Tower Explode", - "DieDamageDelay": 1000, - "HintPriority": 150, - "PreviewScenario": "DefenseBombTower" - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_BOMB_TOWER", - "InfoTID": "TID_BUILDING_BOMB_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "bomb_tower_lvl5", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 3, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 2800000, - "TownHallLevel": 11, - "CapitalHallLevel": 11, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 1050, - "RegenTime": 25, - "AttackRange": 600, - "AttackSpeed": 1100, - "DPS": 48, - "DestroyEffect": "Building Destroyed", - "DestroyDamageEffect": "Bomb Tower Destroyed3", - "AttackEffect": "Bomb Tower Throw Start", - "HitEffect": "Bomb Tower Hit3", - "Projectile": "Bomb Tower Ammo3", - "ExportNameDamaged": "destroyedBuilding_3m_base_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "DamageRadius": 150, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "DefenderCharacter": "BomberTower_lvl3", - "DefenderCount": 1, - "DefenderZ": 145, - "StrengthWeight": 460, - "DieDamage": 300, - "DieDamageRadius": 275, - "DieDamageEffect": "Bomb Tower Explode", - "DieDamageDelay": 1000, - "HintPriority": 150, - "PreviewScenario": "DefenseBombTower" - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_BUILDING_BOMB_TOWER", - "InfoTID": "TID_BUILDING_BOMB_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "bomb_tower_lvl6", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 3, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 4000000, - "TownHallLevel": 11, - "CapitalHallLevel": 11, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 1300, - "RegenTime": 25, - "AttackRange": 600, - "AttackSpeed": 1100, - "DPS": 56, - "DestroyEffect": "Building Destroyed", - "DestroyDamageEffect": "Bomb Tower Destroyed4", - "AttackEffect": "Bomb Tower Throw Start", - "HitEffect": "Bomb Tower Hit3", - "Projectile": "Bomb Tower Ammo3", - "ExportNameDamaged": "destroyedBuilding_3m_base_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "DamageRadius": 150, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "DefenderCharacter": "BomberTower_lvl3", - "DefenderCount": 1, - "DefenderZ": 145, - "StrengthWeight": 460, - "DieDamage": 350, - "DieDamageRadius": 275, - "DieDamageEffect": "Bomb Tower Explode", - "DieDamageDelay": 1000, - "HintPriority": 150, - "PreviewScenario": "DefenseBombTower" - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_BUILDING_BOMB_TOWER", - "InfoTID": "TID_BUILDING_BOMB_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "bomb_tower_lvl7", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 8, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 6300000, - "TownHallLevel": 12, - "CapitalHallLevel": 12, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 1600, - "RegenTime": 25, - "AttackRange": 600, - "AttackSpeed": 1100, - "DPS": 64, - "DestroyEffect": "Building Destroyed", - "DestroyDamageEffect": "Bomb Tower Destroyed4", - "AttackEffect": "Bomb Tower Throw Start", - "HitEffect": "Bomb Tower Hit3", - "Projectile": "Bomb Tower Ammo3", - "ExportNameDamaged": "destroyedBuilding_3m_base_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "DamageRadius": 150, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "DefenderCharacter": "BomberTower_lvl3", - "DefenderCount": 1, - "DefenderZ": 145, - "StrengthWeight": 460, - "DieDamage": 400, - "DieDamageRadius": 275, - "DieDamageEffect": "Bomb Tower Explode", - "DieDamageDelay": 1000, - "HintPriority": 150, - "PreviewScenario": "DefenseBombTower" - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_BUILDING_BOMB_TOWER", - "InfoTID": "TID_BUILDING_BOMB_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "bomb_tower_lvl8", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 9, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 8800000, - "TownHallLevel": 13, - "CapitalHallLevel": 13, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 1900, - "RegenTime": 25, - "AttackRange": 600, - "AttackSpeed": 1100, - "DPS": 72, - "DestroyEffect": "Building Destroyed", - "DestroyDamageEffect": "Bomb Tower Destroyed4", - "AttackEffect": "Bomb Tower Throw Start", - "HitEffect": "Bomb Tower Hit3", - "Projectile": "Bomb Tower Ammo3", - "ExportNameDamaged": "destroyedBuilding_3m_base_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "DamageRadius": 150, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "DefenderCharacter": "BomberTower_lvl3", - "DefenderCount": 1, - "DefenderZ": 145, - "StrengthWeight": 460, - "DieDamage": 450, - "DieDamageRadius": 275, - "DieDamageEffect": "Bomb Tower Explode", - "DieDamageDelay": 1000, - "HintPriority": 150, - "PreviewScenario": "DefenseBombTower" - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_BUILDING_BOMB_TOWER", - "InfoTID": "TID_BUILDING_BOMB_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "bomb_tower_lvl9", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 13, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 12300000, - "TownHallLevel": 14, - "CapitalHallLevel": 14, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 2300, - "RegenTime": 25, - "AttackRange": 600, - "AttackSpeed": 1100, - "DPS": 84, - "DestroyEffect": "Building Destroyed", - "DestroyDamageEffect": "Bomb Tower Destroyed4", - "AttackEffect": "Bomb Tower Throw Start", - "HitEffect": "Bomb Tower Hit3", - "Projectile": "Bomb Tower Ammo3", - "ExportNameDamaged": "destroyedBuilding_3m_base_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "DamageRadius": 150, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "DefenderCharacter": "BomberTower_lvl3", - "DefenderCount": 1, - "DefenderZ": 145, - "StrengthWeight": 460, - "DieDamage": 500, - "DieDamageRadius": 275, - "DieDamageEffect": "Bomb Tower Explode", - "DieDamageDelay": 1000, - "HintPriority": 150, - "PreviewScenario": "DefenseBombTower" - }, - "10": { - "BuildingLevel": 10, - "TID": "TID_BUILDING_BOMB_TOWER", - "InfoTID": "TID_BUILDING_BOMB_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "bomb_tower_lvl10", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 13, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 20000000, - "TownHallLevel": 15, - "CapitalHallLevel": 15, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 2500, - "RegenTime": 25, - "AttackRange": 600, - "AttackSpeed": 1100, - "DPS": 94, - "DestroyEffect": "Building Destroyed", - "DestroyDamageEffect": "Bomb Tower Destroyed4", - "AttackEffect": "Bomb Tower Throw Start", - "HitEffect": "Bomb Tower Hit3", - "Projectile": "Bomb Tower Ammo3", - "ExportNameDamaged": "destroyedBuilding_3m_base_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "DamageRadius": 150, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "DefenderCharacter": "BomberTower_lvl3", - "DefenderCount": 1, - "DefenderZ": 145, - "StrengthWeight": 460, - "DieDamage": 550, - "DieDamageRadius": 275, - "DieDamageEffect": "Bomb Tower Explode", - "DieDamageDelay": 1000, - "HintPriority": 150, - "PreviewScenario": "DefenseBombTower" - }, - "11": { - "BuildingLevel": 11, - "TID": "TID_BUILDING_BOMB_TOWER", - "InfoTID": "TID_BUILDING_BOMB_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "bomb_tower_lvl11", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 14, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 20800000, - "TownHallLevel": 16, - "CapitalHallLevel": 16, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 2700, - "RegenTime": 25, - "AttackRange": 600, - "AttackSpeed": 1100, - "DPS": 104, - "DestroyEffect": "Building Destroyed", - "DestroyDamageEffect": "Bomb Tower Destroyed4", - "AttackEffect": "Bomb Tower Throw Start", - "HitEffect": "Bomb Tower Hit3", - "Projectile": "Bomb Tower Ammo3", - "ExportNameDamaged": "destroyedBuilding_3m_base_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "DamageRadius": 150, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "DefenderCharacter": "BomberTower_lvl3", - "DefenderCount": 1, - "DefenderZ": 145, - "StrengthWeight": 460, - "DieDamage": 600, - "DieDamageRadius": 275, - "DieDamageEffect": "Bomb Tower Explode", - "DieDamageDelay": 1000, - "HintPriority": 150, - "PreviewScenario": "DefenseBombTower" - } - }, - "Builder Hall": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_TOWN_HALL2", - "InfoTID": "TID_TOWN_HALL2_INFO", - "BuildingClass": "Town Hall2", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings2.sc", - "ExportName": "new_TH_lvl1", - "ExportNameNpc": "new_TH_lvl1", - "ExportNameConstruction": "town_hall_const", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 0, - "CapitalHallLevel": 0, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "MaxStoredGold2": 50000, - "MaxStoredElixir2": 50000, - "LootOnDestruction": true, - "Hitpoints": 650, - "RegenTime": 1, - "DestroyEffect": "Town Hall Destroyed", - "ExportNameDamaged": "destroyedBuilding_4m_base_woodpanel_yellow", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "townhall_base", - "PickUpEffect": "Town Hall 2 Pickup", - "PlacingEffect": "Town Hall Placing", - "DestructionXP": 1, - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 100, - "Stage": 1 - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_TOWN_HALL2", - "InfoTID": "TID_TOWN_HALL2_INFO", - "BuildingClass": "Town Hall2", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings2.sc", - "ExportName": "new_TH_lvl2", - "ExportNameNpc": "new_TH_lvl1", - "ExportNameConstruction": "town_hall_const", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 5, - "BuildResource": "Gold2", - "BuildCost": 3500, - "CapitalHallLevel": 1, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "MaxStoredGold2": 75000, - "MaxStoredElixir2": 75000, - "LootOnDestruction": true, - "Hitpoints": 800, - "RegenTime": 1, - "DestroyEffect": "Town Hall Destroyed", - "ExportNameDamaged": "destroyedBuilding_4m_base_woodpanel_yellow", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "townhall_base", - "PickUpEffect": "Town Hall 2 Pickup", - "PlacingEffect": "Town Hall Placing", - "DestructionXP": 2, - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 100, - "Stage": 1 - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_TOWN_HALL2", - "InfoTID": "TID_TOWN_HALL2_INFO", - "BuildingClass": "Town Hall2", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings2.sc", - "ExportName": "new_TH_lvl3", - "ExportNameNpc": "new_TH_lvl1", - "ExportNameConstruction": "town_hall_const", - "BuildTimeD": 0, - "BuildTimeH": 1, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 30000, - "CapitalHallLevel": 2, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "MaxStoredGold2": 100000, - "MaxStoredElixir2": 100000, - "LootOnDestruction": true, - "Hitpoints": 975, - "RegenTime": 1, - "DestroyEffect": "Town Hall Destroyed", - "ExportNameDamaged": "destroyedBuilding_4m_base_woodpanel_yellow", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "townhall_base", - "PickUpEffect": "Town Hall 2 Pickup", - "PlacingEffect": "Town Hall Placing", - "DestructionXP": 3, - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 100, - "Stage": 1 - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_TOWN_HALL2", - "InfoTID": "TID_TOWN_HALL2_INFO", - "BuildingClass": "Town Hall2", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings2.sc", - "ExportName": "new_TH_lvl4", - "ExportNameNpc": "new_TH_lvl1", - "ExportNameConstruction": "town_hall_const", - "BuildTimeD": 1, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 200000, - "CapitalHallLevel": 3, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "MaxStoredGold2": 150000, - "MaxStoredElixir2": 150000, - "LootOnDestruction": true, - "Hitpoints": 1150, - "RegenTime": 1, - "DestroyEffect": "Town Hall Destroyed", - "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "townhall_base", - "PickUpEffect": "Town Hall 2 Pickup", - "PlacingEffect": "Town Hall Placing", - "DestructionXP": 4, - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 100, - "Stage": 1 - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_TOWN_HALL2", - "InfoTID": "TID_TOWN_HALL2_INFO", - "BuildingClass": "Town Hall2", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings2.sc", - "ExportName": "new_TH_lvl5", - "ExportNameNpc": "new_TH_lvl1", - "ExportNameConstruction": "town_hall_const", - "BuildTimeD": 2, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 400000, - "CapitalHallLevel": 4, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "MaxStoredGold2": 900000, - "MaxStoredElixir2": 900000, - "LootOnDestruction": true, - "Hitpoints": 1350, - "RegenTime": 1, - "DestroyEffect": "Town Hall Destroyed", - "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "townhall_base", - "PickUpEffect": "Town Hall 2 Pickup", - "PlacingEffect": "Town Hall Placing", - "DestructionXP": 5, - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 100, - "Stage": 1 - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_BUILDING_TOWN_HALL2", - "InfoTID": "TID_TOWN_HALL2_INFO", - "BuildingClass": "Town Hall2", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings2.sc", - "ExportName": "new_TH_lvl6", - "ExportNameNpc": "new_TH_lvl1", - "ExportNameConstruction": "town_hall_const", - "BuildTimeD": 3, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 1200000, - "CapitalHallLevel": 5, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "MaxStoredGold2": 900000, - "MaxStoredElixir2": 900000, - "LootOnDestruction": true, - "Hitpoints": 1600, - "RegenTime": 1, - "DestroyEffect": "Town Hall Destroyed", - "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "townhall_base", - "PickUpEffect": "Town Hall 2 Pickup", - "PlacingEffect": "Town Hall Placing", - "DestructionXP": 6, - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 100, - "Stage": 1 - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_BUILDING_TOWN_HALL2", - "InfoTID": "TID_TOWN_HALL2_INFO", - "BuildingClass": "Town Hall2", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings2.sc", - "ExportName": "new_TH_lvl7", - "ExportNameNpc": "new_TH_lvl1", - "ExportNameConstruction": "town_hall_const", - "BuildTimeD": 4, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 1800000, - "CapitalHallLevel": 6, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "MaxStoredGold2": 1100000, - "MaxStoredElixir2": 1100000, - "LootOnDestruction": true, - "Hitpoints": 1850, - "RegenTime": 1, - "DestroyEffect": "Town Hall Destroyed", - "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "townhall_base", - "PickUpEffect": "Town Hall 2 Pickup", - "PlacingEffect": "Town Hall Placing", - "DestructionXP": 7, - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 100, - "Stage": 1 - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_BUILDING_TOWN_HALL2", - "InfoTID": "TID_TOWN_HALL2_INFO", - "BuildingClass": "Town Hall2", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings2.sc", - "ExportName": "new_TH_lvl8", - "ExportNameNpc": "new_TH_lvl1", - "ExportNameConstruction": "town_hall_const", - "BuildTimeD": 5, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 2800000, - "CapitalHallLevel": 7, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "MaxStoredGold2": 1300000, - "MaxStoredElixir2": 1300000, - "LootOnDestruction": true, - "Hitpoints": 2150, - "RegenTime": 1, - "DestroyEffect": "Town Hall Destroyed", - "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "townhall_base", - "PickUpEffect": "Town Hall 2 Pickup", - "PlacingEffect": "Town Hall Placing", - "DestructionXP": 8, - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 100, - "Stage": 1 - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_BUILDING_TOWN_HALL2", - "InfoTID": "TID_TOWN_HALL2_INFO", - "BuildingClass": "Town Hall2", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings2.sc", - "ExportName": "new_TH_lvl9", - "ExportNameNpc": "new_TH_lvl1", - "ExportNameConstruction": "town_hall_const", - "BuildTimeD": 6, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 3800000, - "CapitalHallLevel": 8, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "MaxStoredGold2": 1500000, - "MaxStoredElixir2": 1500000, - "LootOnDestruction": true, - "Hitpoints": 2450, - "RegenTime": 1, - "DestroyEffect": "Town Hall Destroyed", - "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "townhall_base", - "PickUpEffect": "Town Hall 2 Pickup", - "PlacingEffect": "Town Hall Placing", - "DestructionXP": 9, - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 100, - "Stage": 1 - }, - "10": { - "BuildingLevel": 10, - "TID": "TID_BUILDING_TOWN_HALL2", - "InfoTID": "TID_TOWN_HALL2_INFO", - "BuildingClass": "Town Hall2", - "SecondaryTargetingClass": "Resource", - "SWF": "sc/buildings2.sc", - "ExportName": "new_TH_lvl10", - "ExportNameNpc": "new_TH_lvl1", - "ExportNameConstruction": "town_hall_const", - "BuildTimeD": 7, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 4800000, - "CapitalHallLevel": 9, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "MaxStoredGold2": 1500000, - "MaxStoredElixir2": 1500000, - "LootOnDestruction": true, - "Hitpoints": 2750, - "RegenTime": 1, - "DestroyEffect": "Town Hall Destroyed", - "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "townhall_base", - "PickUpEffect": "Town Hall 2 Pickup", - "PlacingEffect": "Town Hall Placing", - "DestructionXP": 10, - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 100, - "Stage": 1 - } - }, - "Clock Tower": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_CLOCK_TOWER", - "InfoTID": "TID_CLOCK_TOWER_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings2.sc", - "ExportName": "clocktower_lvl1", - "ExportNameConstruction": "town_hall_const", - "ExportNameLocked": "clocktower_broken", - "BuildTimeD": 0, - "BuildTimeH": 2, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 150000, - "TownHallLevel": 4, - "CapitalHallLevel": 4, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "BoostCost": 0, - "FreeBoost": true, - "Hitpoints": 650, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_4l_base_rockwoodpanel_white", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "newVillage_clockTower_lvl1", - "PickUpEffect": "Clock Tower Pickup", - "PlacingEffect": "Clock Tower Placing", - "Locked": true, - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 250, - "Stage": 1 - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_CLOCK_TOWER", - "InfoTID": "TID_CLOCK_TOWER_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings2.sc", - "ExportName": "clocktower_lvl2", - "ExportNameConstruction": "town_hall_const", - "ExportNameLocked": "clocktower_broken", - "BuildTimeD": 0, - "BuildTimeH": 3, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 180000, - "TownHallLevel": 4, - "CapitalHallLevel": 4, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "BoostCost": 0, - "FreeBoost": true, - "Hitpoints": 800, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_4l_base_rockwoodpanel_white", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "newVillage_clockTower_lvl1", - "PickUpEffect": "Clock Tower Pickup", - "PlacingEffect": "Clock Tower Placing", - "Locked": true, - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 250, - "Stage": 1 - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_CLOCK_TOWER", - "InfoTID": "TID_CLOCK_TOWER_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings2.sc", - "ExportName": "clocktower_lvl3", - "ExportNameConstruction": "town_hall_const", - "ExportNameLocked": "clocktower_broken", - "BuildTimeD": 0, - "BuildTimeH": 4, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 220000, - "TownHallLevel": 4, - "CapitalHallLevel": 4, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "BoostCost": 0, - "FreeBoost": true, - "Hitpoints": 975, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_4l_base_rockwoodpanel_white", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "newVillage_clockTower_lvl1", - "PickUpEffect": "Clock Tower Pickup", - "PlacingEffect": "Clock Tower Placing", - "Locked": true, - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 250, - "Stage": 1 - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_CLOCK_TOWER", - "InfoTID": "TID_CLOCK_TOWER_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings2.sc", - "ExportName": "clocktower_lvl4", - "ExportNameConstruction": "town_hall_const", - "ExportNameLocked": "clocktower_broken", - "BuildTimeD": 0, - "BuildTimeH": 6, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 300000, - "TownHallLevel": 4, - "CapitalHallLevel": 4, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "BoostCost": 0, - "FreeBoost": true, - "Hitpoints": 1150, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_4l_base_rockwoodpanel_white", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "newVillage_clockTower_lvl1", - "PickUpEffect": "Clock Tower Pickup", - "PlacingEffect": "Clock Tower Placing", - "Locked": true, - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 250, - "Stage": 1 - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_CLOCK_TOWER", - "InfoTID": "TID_CLOCK_TOWER_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings2.sc", - "ExportName": "clocktower_lvl5", - "ExportNameConstruction": "town_hall_const", - "ExportNameLocked": "clocktower_broken", - "BuildTimeD": 0, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 700000, - "TownHallLevel": 5, - "CapitalHallLevel": 5, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "BoostCost": 0, - "FreeBoost": true, - "Hitpoints": 1350, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_4l_base_rockwoodpanel_white", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "newVillage_clockTower_lvl1", - "PickUpEffect": "Clock Tower Pickup", - "PlacingEffect": "Clock Tower Placing", - "Locked": true, - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 250, - "Stage": 1 - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_BUILDING_CLOCK_TOWER", - "InfoTID": "TID_CLOCK_TOWER_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings2.sc", - "ExportName": "clocktower_lvl6", - "ExportNameConstruction": "town_hall_const", - "ExportNameLocked": "clocktower_broken", - "BuildTimeD": 1, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 1200000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "BoostCost": 0, - "FreeBoost": true, - "Hitpoints": 1600, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_4l_base_rockwoodpanel_white", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "newVillage_clockTower_lvl1", - "PickUpEffect": "Clock Tower Pickup", - "PlacingEffect": "Clock Tower Placing", - "Locked": true, - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 250, - "Stage": 1 - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_BUILDING_CLOCK_TOWER", - "InfoTID": "TID_CLOCK_TOWER_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings2.sc", - "ExportName": "clocktower_lvl7", - "ExportNameConstruction": "town_hall_const", - "ExportNameLocked": "clocktower_broken", - "BuildTimeD": 2, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 1700000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "BoostCost": 0, - "FreeBoost": true, - "Hitpoints": 1850, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_4l_base_rockwoodpanel_white", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "newVillage_clockTower_lvl1", - "PickUpEffect": "Clock Tower Pickup", - "PlacingEffect": "Clock Tower Placing", - "Locked": true, - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 250, - "Stage": 1 - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_BUILDING_CLOCK_TOWER", - "InfoTID": "TID_CLOCK_TOWER_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings2.sc", - "ExportName": "clocktower_lvl8", - "ExportNameConstruction": "town_hall_const", - "ExportNameLocked": "clocktower_broken", - "BuildTimeD": 3, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 2200000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "BoostCost": 0, - "FreeBoost": true, - "Hitpoints": 2150, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_4l_base_rockwoodpanel_white", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "newVillage_clockTower_lvl1", - "PickUpEffect": "Clock Tower Pickup", - "PlacingEffect": "Clock Tower Placing", - "Locked": true, - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 250, - "Stage": 1 - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_BUILDING_CLOCK_TOWER", - "InfoTID": "TID_CLOCK_TOWER_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings2.sc", - "ExportName": "clocktower_lvl9", - "ExportNameConstruction": "town_hall_const", - "ExportNameLocked": "clocktower_broken", - "BuildTimeD": 4, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 2700000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "BoostCost": 0, - "FreeBoost": true, - "Hitpoints": 2450, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_4l_base_rockwoodpanel_white", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "newVillage_clockTower_lvl1", - "PickUpEffect": "Clock Tower Pickup", - "PlacingEffect": "Clock Tower Placing", - "Locked": true, - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 250, - "Stage": 1 - }, - "10": { - "BuildingLevel": 10, - "TID": "TID_BUILDING_CLOCK_TOWER", - "InfoTID": "TID_CLOCK_TOWER_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings2.sc", - "ExportName": "clocktower_lvl10", - "ExportNameConstruction": "town_hall_const", - "ExportNameLocked": "clocktower_broken", - "BuildTimeD": 5, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 3700000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "BoostCost": 0, - "FreeBoost": true, - "Hitpoints": 2750, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_4l_base_rockwoodpanel_white", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "newVillage_clockTower_lvl1", - "PickUpEffect": "Clock Tower Pickup", - "PlacingEffect": "Clock Tower Placing", - "Locked": true, - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 250, - "Stage": 1 - } - }, - "Builder Barracks": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_BARRACK2", - "InfoTID": "TID_BARRACK2_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings2.sc", - "ExportName": "adv_training_camp_lvl1", - "ExportNameConstruction": "barracks_const", - "ExportNameLocked": "adv_training_camp_broken", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 1000, - "TownHallLevel": 1, - "CapitalHallLevel": 1, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "UnitProduction": 20, - "ProducesUnitsOfType": 1, - "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", - "Hitpoints": 300, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "VillageType": 1, - "HintPriority": 150, - "Stage": 1 - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_BARRACK2", - "InfoTID": "TID_BARRACK2_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings2.sc", - "ExportName": "adv_training_camp_lvl2", - "ExportNameConstruction": "barracks_const", - "ExportNameLocked": "adv_training_camp_broken", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 1, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 4000, - "TownHallLevel": 2, - "CapitalHallLevel": 2, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "UnitProduction": 25, - "ProducesUnitsOfType": 1, - "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", - "Hitpoints": 350, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "VillageType": 1, - "HintPriority": 150, - "Stage": 1 - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_BARRACK2", - "InfoTID": "TID_BARRACK2_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings2.sc", - "ExportName": "adv_training_camp_lvl3", - "ExportNameConstruction": "barracks_const", - "ExportNameLocked": "adv_training_camp_broken", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 10, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 10000, - "TownHallLevel": 3, - "CapitalHallLevel": 3, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "UnitProduction": 30, - "ProducesUnitsOfType": 1, - "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", - "Hitpoints": 400, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "VillageType": 1, - "HintPriority": 150, - "Stage": 1 - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_BARRACK2", - "InfoTID": "TID_BARRACK2_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings2.sc", - "ExportName": "adv_training_camp_lvl4", - "ExportNameConstruction": "barracks_const", - "ExportNameLocked": "adv_training_camp_broken", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 30, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 25000, - "TownHallLevel": 3, - "CapitalHallLevel": 3, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "UnitProduction": 35, - "ProducesUnitsOfType": 1, - "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", - "Hitpoints": 460, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "VillageType": 1, - "HintPriority": 150, - "Stage": 1 - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_BARRACK2", - "InfoTID": "TID_BARRACK2_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings2.sc", - "ExportName": "adv_training_camp_lvl5", - "ExportNameConstruction": "barracks_const", - "ExportNameLocked": "adv_training_camp_broken", - "BuildTimeD": 0, - "BuildTimeH": 3, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 100000, - "TownHallLevel": 4, - "CapitalHallLevel": 4, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "UnitProduction": 40, - "ProducesUnitsOfType": 1, - "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", - "Hitpoints": 550, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "VillageType": 1, - "HintPriority": 150, - "Stage": 1 - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_BUILDING_BARRACK2", - "InfoTID": "TID_BARRACK2_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings2.sc", - "ExportName": "adv_training_camp_lvl6", - "ExportNameConstruction": "barracks_const", - "ExportNameLocked": "adv_training_camp_broken", - "BuildTimeD": 0, - "BuildTimeH": 6, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 150000, - "TownHallLevel": 4, - "CapitalHallLevel": 4, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "UnitProduction": 45, - "ProducesUnitsOfType": 1, - "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", - "Hitpoints": 650, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "VillageType": 1, - "HintPriority": 150, - "Stage": 1 - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_BUILDING_BARRACK2", - "InfoTID": "TID_BARRACK2_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings2.sc", - "ExportName": "adv_training_camp_lvl7", - "ExportNameConstruction": "barracks_const", - "ExportNameLocked": "adv_training_camp_broken", - "BuildTimeD": 0, - "BuildTimeH": 9, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 300000, - "TownHallLevel": 5, - "CapitalHallLevel": 5, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "UnitProduction": 50, - "ProducesUnitsOfType": 1, - "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", - "Hitpoints": 750, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "VillageType": 1, - "HintPriority": 150, - "Stage": 1 - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_BUILDING_BARRACK2", - "InfoTID": "TID_BARRACK2_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings2.sc", - "ExportName": "adv_training_camp_lvl8", - "ExportNameConstruction": "barracks_const", - "ExportNameLocked": "adv_training_camp_broken", - "BuildTimeD": 1, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 500000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "UnitProduction": 55, - "ProducesUnitsOfType": 1, - "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", - "Hitpoints": 850, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "VillageType": 1, - "HintPriority": 150, - "Stage": 1 - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_BUILDING_BARRACK2", - "InfoTID": "TID_BARRACK2_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings2.sc", - "ExportName": "adv_training_camp_lvl9", - "ExportNameConstruction": "barracks_const", - "ExportNameLocked": "adv_training_camp_broken", - "BuildTimeD": 2, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 1000000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "UnitProduction": 55, - "ProducesUnitsOfType": 1, - "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", - "Hitpoints": 1000, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "VillageType": 1, - "HintPriority": 150, - "Stage": 1 - }, - "10": { - "BuildingLevel": 10, - "TID": "TID_BUILDING_BARRACK2", - "InfoTID": "TID_BARRACK2_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings2.sc", - "ExportName": "adv_training_camp_lvl10", - "ExportNameConstruction": "barracks_const", - "ExportNameLocked": "adv_training_camp_broken", - "BuildTimeD": 3, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 1500000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "UnitProduction": 55, - "ProducesUnitsOfType": 1, - "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", - "Hitpoints": 1150, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "VillageType": 1, - "HintPriority": 150, - "Stage": 1 - }, - "11": { - "BuildingLevel": 11, - "TID": "TID_BUILDING_BARRACK2", - "InfoTID": "TID_BARRACK2_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings2.sc", - "ExportName": "adv_training_camp_lvl11", - "ExportNameConstruction": "barracks_const", - "ExportNameLocked": "adv_training_camp_broken", - "BuildTimeD": 4, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 2000000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "UnitProduction": 55, - "ProducesUnitsOfType": 1, - "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", - "Hitpoints": 1300, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "VillageType": 1, - "HintPriority": 150, - "Stage": 1 - }, - "12": { - "BuildingLevel": 12, - "TID": "TID_BUILDING_BARRACK2", - "InfoTID": "TID_BARRACK2_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings2.sc", - "ExportName": "adv_training_camp_lvl12", - "ExportNameConstruction": "barracks_const", - "ExportNameLocked": "adv_training_camp_broken", - "BuildTimeD": 5, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 3000000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "UnitProduction": 55, - "ProducesUnitsOfType": 1, - "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", - "Hitpoints": 1450, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "VillageType": 1, - "HintPriority": 150, - "Stage": 1 - } - }, - "Double Cannon": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_DOUBLE_CANNON", - "InfoTID": "TID_DOUBLE_CANNON_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "doubleCannon_lvl1", - "ExportNameConstruction": "basic_turret_const", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 10, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 20000, - "TownHallLevel": 2, - "CapitalHallLevel": 2, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "goldmine_upg", - "Hitpoints": 600, - "RegenTime": 1, - "AttackRange": 700, - "AttackSpeed": 1600, - "CoolDownOverride": 800, - "Damage": 50, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Double Cannon Attack Small", - "HitEffect": "Generic Hit", - "Projectile": "DoubleCannonball1", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "basic_cannon2_lvl1_base", - "AirTargets": false, - "GroundTargets": true, - "PickUpEffect": "Double Cannon Pickup", - "PlacingEffect": "Double Cannon Placing", - "AnimateTurret": true, - "StrengthWeight": 436, - "BurstCount": 4, - "BurstDelay": 192, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_DOUBLE_CANNON", - "InfoTID": "TID_DOUBLE_CANNON_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "doubleCannon_lvl2", - "ExportNameConstruction": "basic_turret_const", - "BuildTimeD": 0, - "BuildTimeH": 1, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 50000, - "TownHallLevel": 3, - "CapitalHallLevel": 3, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "goldmine_upg", - "Hitpoints": 690, - "RegenTime": 1, - "AttackRange": 700, - "AttackSpeed": 1600, - "CoolDownOverride": 800, - "Damage": 55, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Double Cannon Attack Small", - "HitEffect": "Generic Hit", - "Projectile": "DoubleCannonball2", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "basic_cannon2_lvl2_base", - "AirTargets": false, - "GroundTargets": true, - "PickUpEffect": "Double Cannon Pickup", - "PlacingEffect": "Double Cannon Placing", - "AnimateTurret": true, - "StrengthWeight": 456, - "BurstCount": 4, - "BurstDelay": 192, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_DOUBLE_CANNON", - "InfoTID": "TID_DOUBLE_CANNON_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "doubleCannon_lvl3", - "ExportNameConstruction": "basic_turret_const", - "BuildTimeD": 0, - "BuildTimeH": 3, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 80000, - "TownHallLevel": 3, - "CapitalHallLevel": 3, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "goldmine_upg", - "Hitpoints": 800, - "RegenTime": 1, - "AttackRange": 700, - "AttackSpeed": 1600, - "CoolDownOverride": 800, - "Damage": 61, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Double Cannon Attack Small", - "HitEffect": "Generic Hit", - "Projectile": "DoubleCannonball3", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "basic_cannon2_lvl3_base", - "AirTargets": false, - "GroundTargets": true, - "PickUpEffect": "Double Cannon Pickup", - "PlacingEffect": "Double Cannon Placing", - "AnimateTurret": true, - "StrengthWeight": 476, - "BurstCount": 4, - "BurstDelay": 192, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_DOUBLE_CANNON", - "InfoTID": "TID_DOUBLE_CANNON_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "doubleCannon_lvl4", - "ExportNameConstruction": "basic_turret_const", - "BuildTimeD": 0, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 300000, - "TownHallLevel": 4, - "CapitalHallLevel": 4, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "goldmine_upg", - "Hitpoints": 910, - "RegenTime": 1, - "AttackRange": 700, - "AttackSpeed": 1600, - "CoolDownOverride": 800, - "Damage": 67, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Double Cannon Attack Small", - "HitEffect": "Generic Hit", - "Projectile": "DoubleCannonball4", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "basic_cannon2_lvl4_base", - "AirTargets": false, - "GroundTargets": true, - "PickUpEffect": "Double Cannon Pickup", - "PlacingEffect": "Double Cannon Placing", - "AnimateTurret": true, - "StrengthWeight": 496, - "BurstCount": 4, - "BurstDelay": 192, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_DOUBLE_CANNON", - "InfoTID": "TID_DOUBLE_CANNON_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "doubleCannon_lvl6", - "ExportNameConstruction": "basic_turret_const", - "BuildTimeD": 1, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 900000, - "TownHallLevel": 5, - "CapitalHallLevel": 5, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "goldmine_upg", - "Hitpoints": 1050, - "RegenTime": 1, - "AttackRange": 700, - "AttackSpeed": 1600, - "CoolDownOverride": 800, - "Damage": 74, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Double Cannon Attack Medium", - "HitEffect": "Generic Hit", - "Projectile": "DoubleCannonball6", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "basic_cannon2_lvl7_base", - "AirTargets": false, - "GroundTargets": true, - "PickUpEffect": "Double Cannon Pickup", - "PlacingEffect": "Double Cannon Placing", - "AnimateTurret": true, - "StrengthWeight": 520, - "BurstCount": 4, - "BurstDelay": 192, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_BUILDING_DOUBLE_CANNON", - "InfoTID": "TID_DOUBLE_CANNON_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "doubleCannon_lvl8", - "ExportNameConstruction": "basic_turret_const", - "BuildTimeD": 2, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 1400000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "goldmine_upg", - "Hitpoints": 1250, - "RegenTime": 1, - "AttackRange": 700, - "AttackSpeed": 1600, - "CoolDownOverride": 800, - "Damage": 81, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Double Cannon Attack Large", - "HitEffect": "Generic Hit", - "Projectile": "DoubleCannonball8", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "basic_cannon2_lvl8_base", - "AirTargets": false, - "GroundTargets": true, - "PickUpEffect": "Double Cannon Pickup", - "PlacingEffect": "Double Cannon Placing", - "AnimateTurret": true, - "StrengthWeight": 544, - "BurstCount": 4, - "BurstDelay": 192, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_BUILDING_DOUBLE_CANNON", - "InfoTID": "TID_DOUBLE_CANNON_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "doubleCannon_lvl9", - "ExportNameConstruction": "basic_turret_const", - "BuildTimeD": 4, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 2200000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "goldmine_upg", - "Hitpoints": 1450, - "RegenTime": 1, - "AttackRange": 700, - "AttackSpeed": 1600, - "CoolDownOverride": 800, - "Damage": 89, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Double Cannon Attack Large", - "HitEffect": "Generic Hit", - "Projectile": "DoubleCannonball9", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "basic_cannon2_lvl9_base", - "AirTargets": false, - "GroundTargets": true, - "PickUpEffect": "Double Cannon Pickup", - "PlacingEffect": "Double Cannon Placing", - "AnimateTurret": true, - "StrengthWeight": 568, - "BurstCount": 4, - "BurstDelay": 192, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_BUILDING_DOUBLE_CANNON", - "InfoTID": "TID_DOUBLE_CANNON_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "doubleCannon_lvl10", - "ExportNameConstruction": "basic_turret_const", - "BuildTimeD": 6, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 3200000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "Hitpoints": 1700, - "RegenTime": 1, - "AttackRange": 700, - "AttackSpeed": 1600, - "CoolDownOverride": 800, - "Damage": 98, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Double Cannon Attack Large", - "HitEffect": "Generic Hit", - "Projectile": "DoubleCannonball10", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "basic_cannon2_lvl9_base", - "AirTargets": false, - "GroundTargets": true, - "PickUpEffect": "Double Cannon Pickup", - "PlacingEffect": "Double Cannon Placing", - "AnimateTurret": true, - "StrengthWeight": 596, - "BurstCount": 4, - "BurstDelay": 192, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_BUILDING_DOUBLE_CANNON", - "InfoTID": "TID_DOUBLE_CANNON_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "doubleCannon_lvl11", - "ExportNameConstruction": "basic_turret_const", - "BuildTimeD": 8, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 4200000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "Hitpoints": 1950, - "RegenTime": 1, - "AttackRange": 700, - "AttackSpeed": 1600, - "CoolDownOverride": 800, - "Damage": 108, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Double Cannon Attack Large", - "HitEffect": "Generic Hit", - "Projectile": "DoubleCannonball10", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "basic_cannon2_lvl9_base", - "AirTargets": false, - "GroundTargets": true, - "PickUpEffect": "Double Cannon Pickup", - "PlacingEffect": "Double Cannon Placing", - "AnimateTurret": true, - "StrengthWeight": 620, - "BurstCount": 4, - "BurstDelay": 192, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "10": { - "BuildingLevel": 10, - "TID": "TID_BUILDING_DOUBLE_CANNON", - "InfoTID": "TID_DOUBLE_CANNON_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "doubleCannon_lvl12", - "ExportNameConstruction": "basic_turret_const", - "BuildTimeD": 10, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 5200000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "Hitpoints": 2200, - "RegenTime": 1, - "AttackRange": 700, - "AttackSpeed": 1600, - "CoolDownOverride": 800, - "Damage": 120, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Double Cannon Attack Large", - "HitEffect": "Generic Hit", - "Projectile": "DoubleCannonball10", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "basic_cannon2_lvl9_base", - "AirTargets": false, - "GroundTargets": true, - "PickUpEffect": "Double Cannon Pickup", - "PlacingEffect": "Double Cannon Placing", - "AnimateTurret": true, - "StrengthWeight": 640, - "BurstCount": 4, - "BurstDelay": 192, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - } - }, - "Multi Mortar": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_MULTI_MORTAR", - "InfoTID": "TID_MULTI_MORTAR_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "multi_mortar_lvl1", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 0, - "BuildTimeH": 8, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 600000, - "TownHallLevel": 5, - "CapitalHallLevel": 5, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 500, - "RegenTime": 1, - "AttackRange": 1100, - "AttackSpeed": 5000, - "CoolDownOverride": 3000, - "Damage": 45, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Multi Mortar Attack", - "HitEffect": "Multi Mortar Hit", - "Projectile": "Mortar2 Ammo1", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "newVillage_multi_mortar_lvl1", - "AirTargets": false, - "GroundTargets": true, - "MinAttackRange": 400, - "DamageRadius": 300, - "PickUpEffect": "Multi Mortar Pickup", - "PlacingEffect": "Multi Mortar Placing", - "AnimateTurret": true, - "StrengthWeight": 5720, - "BurstCount": 3, - "BurstDelay": 500, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "DefenseLongRange2" - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_MULTI_MORTAR", - "InfoTID": "TID_MULTI_MORTAR_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "multi_mortar_lvl2", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 0, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 700000, - "TownHallLevel": 5, - "CapitalHallLevel": 5, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 575, - "RegenTime": 1, - "AttackRange": 1100, - "AttackSpeed": 5000, - "CoolDownOverride": 3000, - "Damage": 45, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Multi Mortar Attack", - "HitEffect": "Multi Mortar Hit", - "Projectile": "Mortar2 Ammo2", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "newVillage_multi_mortar_lvl2", - "AirTargets": false, - "GroundTargets": true, - "MinAttackRange": 400, - "DamageRadius": 300, - "PickUpEffect": "Multi Mortar Pickup", - "PlacingEffect": "Multi Mortar Placing", - "AnimateTurret": true, - "StrengthWeight": 5940, - "BurstCount": 4, - "BurstDelay": 500, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "DefenseLongRange2" - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_MULTI_MORTAR", - "InfoTID": "TID_MULTI_MORTAR_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "multi_mortar_lvl3", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 1, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 800000, - "TownHallLevel": 5, - "CapitalHallLevel": 5, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 660, - "RegenTime": 1, - "AttackRange": 1100, - "AttackSpeed": 5000, - "CoolDownOverride": 3000, - "Damage": 50, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Multi Mortar Attack", - "HitEffect": "Multi Mortar Hit", - "Projectile": "Mortar2 Ammo2", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "newVillage_multi_mortar_lvl2", - "AirTargets": false, - "GroundTargets": true, - "MinAttackRange": 400, - "DamageRadius": 300, - "PickUpEffect": "Multi Mortar Pickup", - "PlacingEffect": "Multi Mortar Placing", - "AnimateTurret": true, - "StrengthWeight": 6160, - "BurstCount": 4, - "BurstDelay": 500, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "DefenseLongRange2" - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_MULTI_MORTAR", - "InfoTID": "TID_MULTI_MORTAR_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "multi_mortar_lvl4", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 2, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 1000000, - "TownHallLevel": 5, - "CapitalHallLevel": 5, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 760, - "RegenTime": 1, - "AttackRange": 1100, - "AttackSpeed": 5000, - "CoolDownOverride": 3000, - "Damage": 55, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Multi Mortar Attack", - "HitEffect": "Multi Mortar Hit", - "Projectile": "Mortar2 Ammo2", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "newVillage_multi_mortar_lvl2", - "AirTargets": false, - "GroundTargets": true, - "MinAttackRange": 400, - "DamageRadius": 300, - "PickUpEffect": "Multi Mortar Pickup", - "PlacingEffect": "Multi Mortar Placing", - "AnimateTurret": true, - "StrengthWeight": 6400, - "BurstCount": 4, - "BurstDelay": 500, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "DefenseLongRange2" - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_MULTI_MORTAR", - "InfoTID": "TID_MULTI_MORTAR_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "multi_mortar_lvl5", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 3, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 1200000, - "TownHallLevel": 5, - "CapitalHallLevel": 5, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 875, - "RegenTime": 1, - "AttackRange": 1100, - "AttackSpeed": 5000, - "CoolDownOverride": 3000, - "Damage": 60, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Multi Mortar Attack", - "HitEffect": "Multi Mortar Hit", - "Projectile": "Mortar2 Ammo3", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "newVillage_multi_mortar_lvl3", - "AirTargets": false, - "GroundTargets": true, - "MinAttackRange": 400, - "DamageRadius": 300, - "PickUpEffect": "Multi Mortar Pickup", - "PlacingEffect": "Multi Mortar Placing", - "AnimateTurret": true, - "StrengthWeight": 6640, - "BurstCount": 4, - "BurstDelay": 500, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "DefenseLongRange2" - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_BUILDING_MULTI_MORTAR", - "InfoTID": "TID_MULTI_MORTAR_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "multi_mortar_lvl6", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 5, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 1600000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 1050, - "RegenTime": 1, - "AttackRange": 1100, - "AttackSpeed": 5000, - "CoolDownOverride": 3000, - "Damage": 66, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Multi Mortar Attack", - "HitEffect": "Multi Mortar Hit", - "Projectile": "Mortar2 Ammo4", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "newVillage_multi_mortar_lvl4", - "AirTargets": false, - "GroundTargets": true, - "MinAttackRange": 400, - "DamageRadius": 300, - "PickUpEffect": "Multi Mortar Pickup", - "PlacingEffect": "Multi Mortar Placing", - "AnimateTurret": true, - "StrengthWeight": 6900, - "BurstCount": 4, - "BurstDelay": 500, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "DefenseLongRange2" - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_BUILDING_MULTI_MORTAR", - "InfoTID": "TID_MULTI_MORTAR_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "multi_mortar_lvl7", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 7, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 2500000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 1250, - "RegenTime": 1, - "AttackRange": 1100, - "AttackSpeed": 5000, - "CoolDownOverride": 3000, - "Damage": 73, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Multi Mortar Attack", - "HitEffect": "Multi Mortar Hit", - "Projectile": "Mortar2 Ammo5", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "newVillage_multi_mortar_lvl5", - "AirTargets": false, - "GroundTargets": true, - "MinAttackRange": 400, - "DamageRadius": 300, - "PickUpEffect": "Multi Mortar Pickup", - "PlacingEffect": "Multi Mortar Placing", - "AnimateTurret": true, - "StrengthWeight": 7160, - "BurstCount": 4, - "BurstDelay": 500, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "DefenseLongRange2" - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_BUILDING_MULTI_MORTAR", - "InfoTID": "TID_MULTI_MORTAR_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "multi_mortar_lvl8", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 9, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 3500000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 1450, - "RegenTime": 1, - "AttackRange": 1100, - "AttackSpeed": 5000, - "CoolDownOverride": 3000, - "Damage": 80, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Multi Mortar Attack", - "HitEffect": "Multi Mortar Hit", - "Projectile": "Mortar2 Ammo5", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "newVillage_multi_mortar_lvl5", - "AirTargets": false, - "GroundTargets": true, - "MinAttackRange": 400, - "DamageRadius": 300, - "PickUpEffect": "Multi Mortar Pickup", - "PlacingEffect": "Multi Mortar Placing", - "AnimateTurret": true, - "StrengthWeight": 7440, - "BurstCount": 4, - "BurstDelay": 500, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "DefenseLongRange2" - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_BUILDING_MULTI_MORTAR", - "InfoTID": "TID_MULTI_MORTAR_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "multi_mortar_lvl9", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 11, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 4500000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 1650, - "RegenTime": 1, - "AttackRange": 1100, - "AttackSpeed": 5000, - "CoolDownOverride": 3000, - "Damage": 88, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Multi Mortar Attack", - "HitEffect": "Multi Mortar Hit", - "Projectile": "Mortar2 Ammo5", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "newVillage_multi_mortar_lvl5", - "AirTargets": false, - "GroundTargets": true, - "MinAttackRange": 400, - "DamageRadius": 300, - "PickUpEffect": "Multi Mortar Pickup", - "PlacingEffect": "Multi Mortar Placing", - "AnimateTurret": true, - "StrengthWeight": 7720, - "BurstCount": 4, - "BurstDelay": 500, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "DefenseLongRange2" - }, - "10": { - "BuildingLevel": 10, - "TID": "TID_BUILDING_MULTI_MORTAR", - "InfoTID": "TID_MULTI_MORTAR_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "multi_mortar_lvl10", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 12, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 5500000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 1850, - "RegenTime": 1, - "AttackRange": 1100, - "AttackSpeed": 5000, - "CoolDownOverride": 3000, - "Damage": 88, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Multi Mortar Attack 2", - "HitEffect": "Multi Mortar Hit", - "Projectile": "Mortar2 Ammo5", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "newVillage_multi_mortar_lvl5", - "AirTargets": false, - "GroundTargets": true, - "MinAttackRange": 400, - "DamageRadius": 300, - "PickUpEffect": "Multi Mortar Pickup", - "PlacingEffect": "Multi Mortar Placing", - "AnimateTurret": true, - "StrengthWeight": 8000, - "BurstCount": 5, - "BurstDelay": 500, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "DefenseLongRange2" - } - }, - "Star Laboratory": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_TELESCOPE", - "InfoTID": "TID_TELESCOPE_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings2.sc", - "ExportName": "Telescope_lvl1", - "ExportNameConstruction": "spell_factory_const", - "ExportNameLocked": "Telescope_broken", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 1000, - "TownHallLevel": 1, - "CapitalHallLevel": 1, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "laboratory_upg", - "UpgradesUnitType": "UNIT", - "Hitpoints": 650, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_4l_pit_rockglass", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "newVillage_lab_lvl1", - "PickUpEffect": "Laboratory Pickup", - "PlacingEffect": "Laboratory Placing", - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 800, - "Stage": 1 - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_TELESCOPE", - "InfoTID": "TID_TELESCOPE_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings2.sc", - "ExportName": "Telescope_lvl2", - "ExportNameConstruction": "spell_factory_const", - "ExportNameLocked": "Telescope_broken", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 10, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 15000, - "TownHallLevel": 2, - "CapitalHallLevel": 2, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "laboratory_upg", - "UpgradesUnitType": "UNIT", - "Hitpoints": 800, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_4l_pit_rockglass", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "newVillage_lab_lvl2", - "PickUpEffect": "Laboratory Pickup", - "PlacingEffect": "Laboratory Placing", - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 800, - "Stage": 1 - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_TELESCOPE", - "InfoTID": "TID_TELESCOPE_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings2.sc", - "ExportName": "Telescope_lvl3", - "ExportNameConstruction": "spell_factory_const", - "ExportNameLocked": "Telescope_broken", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 30, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 50000, - "TownHallLevel": 3, - "CapitalHallLevel": 3, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "laboratory_upg", - "UpgradesUnitType": "UNIT", - "Hitpoints": 975, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_4l_pit_rockglass", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "newVillage_lab_lvl3", - "PickUpEffect": "Laboratory Pickup", - "PlacingEffect": "Laboratory Placing", - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 800, - "Stage": 1 - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_TELESCOPE", - "InfoTID": "TID_TELESCOPE_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings2.sc", - "ExportName": "Telescope_lvl4", - "ExportNameConstruction": "spell_factory_const", - "ExportNameLocked": "Telescope_broken", - "BuildTimeD": 0, - "BuildTimeH": 8, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 300000, - "TownHallLevel": 4, - "CapitalHallLevel": 4, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "laboratory_upg", - "UpgradesUnitType": "UNIT", - "Hitpoints": 1150, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_4l_pit_rockglass", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "newVillage_lab_lvl4", - "PickUpEffect": "Laboratory Pickup", - "PlacingEffect": "Laboratory Placing", - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 800, - "Stage": 1 - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_TELESCOPE", - "InfoTID": "TID_TELESCOPE_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings2.sc", - "ExportName": "Telescope_lvl5", - "ExportNameConstruction": "spell_factory_const", - "ExportNameLocked": "Telescope_broken", - "BuildTimeD": 0, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 700000, - "TownHallLevel": 5, - "CapitalHallLevel": 5, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "laboratory_upg", - "UpgradesUnitType": "UNIT", - "Hitpoints": 1350, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_4l_pit_rockglass", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "newVillage_lab_lvl5", - "PickUpEffect": "Laboratory Pickup", - "PlacingEffect": "Laboratory Placing", - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 800, - "Stage": 1 - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_BUILDING_TELESCOPE", - "InfoTID": "TID_TELESCOPE_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings2.sc", - "ExportName": "Telescope_lvl6", - "ExportNameConstruction": "spell_factory_const", - "ExportNameLocked": "Telescope_broken", - "BuildTimeD": 2, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 1000000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "laboratory_upg", - "UpgradesUnitType": "UNIT", - "Hitpoints": 1600, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_4l_pit_rockglass", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "newVillage_lab_lvl6", - "PickUpEffect": "Laboratory Pickup", - "PlacingEffect": "Laboratory Placing", - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 800, - "Stage": 1 - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_BUILDING_TELESCOPE", - "InfoTID": "TID_TELESCOPE_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings2.sc", - "ExportName": "Telescope_lvl7", - "ExportNameConstruction": "spell_factory_const", - "ExportNameLocked": "Telescope_broken", - "BuildTimeD": 4, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 2000000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "laboratory_upg", - "UpgradesUnitType": "UNIT", - "Hitpoints": 1850, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_4l_pit_rockglass", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "newVillage_lab_lvl6", - "PickUpEffect": "Laboratory Pickup", - "PlacingEffect": "Laboratory Placing", - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 800, - "Stage": 1 - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_BUILDING_TELESCOPE", - "InfoTID": "TID_TELESCOPE_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings2.sc", - "ExportName": "Telescope_lvl8", - "ExportNameConstruction": "spell_factory_const", - "ExportNameLocked": "Telescope_broken", - "BuildTimeD": 6, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 3000000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "laboratory_upg", - "UpgradesUnitType": "UNIT", - "Hitpoints": 2150, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_4l_pit_rockglass", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "newVillage_lab_lvl6", - "PickUpEffect": "Laboratory Pickup", - "PlacingEffect": "Laboratory Placing", - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 800, - "Stage": 1 - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_BUILDING_TELESCOPE", - "InfoTID": "TID_TELESCOPE_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings2.sc", - "ExportName": "Telescope_lvl9", - "ExportNameConstruction": "spell_factory_const", - "ExportNameLocked": "Telescope_broken", - "BuildTimeD": 8, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 4000000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "laboratory_upg", - "UpgradesUnitType": "UNIT", - "Hitpoints": 2450, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_4l_pit_rockglass", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "newVillage_lab_lvl6", - "PickUpEffect": "Laboratory Pickup", - "PlacingEffect": "Laboratory Placing", - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 800, - "Stage": 1 - }, - "10": { - "BuildingLevel": 10, - "TID": "TID_BUILDING_TELESCOPE", - "InfoTID": "TID_TELESCOPE_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings2.sc", - "ExportName": "Telescope_lvl10", - "ExportNameConstruction": "spell_factory_const", - "ExportNameLocked": "Telescope_broken", - "BuildTimeD": 10, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 5000000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "laboratory_upg", - "UpgradesUnitType": "UNIT", - "Hitpoints": 2750, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_4l_pit_rockglass", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "newVillage_lab_lvl6", - "PickUpEffect": "Laboratory Pickup", - "PlacingEffect": "Laboratory Placing", - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 800, - "Stage": 1 - } - }, - "Master Builder's Hut": { - "1": { - "BuildingLevel": 1, - "TID": "TID_WORKER2_BUILDING", - "InfoTID": "TID_WORKER2_INFO", - "BuildingClass": "Worker2", - "SWF": "sc/buildings2.sc", - "ExportName": "new_builders_hut", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Diamonds", - "BuildCost": 20000, - "TownHallLevel": 1000, - "CapitalHallLevel": 1, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "teslatower_upg", - "Hitpoints": 300, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_darkbrown", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "worker_building_base", - "PickUpEffect": "Worker Building Pickup", - "PlacingEffect": "Worker Building Placing", - "Locked": true, - "StartingHomeCount": 1, - "VillageType": 1 - } - }, - "Reinforcement Camp": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_REINFORCEMENT_CAMP", - "InfoTID": "TID_REINFORCEMENT_CAMP_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings2.sc", - "ExportName": "adv_fireplace_lvl7", - "ExportNameConstruction": "basic_turret_const", - "ExportNameLocked": "adv_fireplace_broken_3x3", - "BuildResource": "Elixir2", - "BuildCost": 1500000, - "TownHallLevel": 1, - "CapitalHallLevel": 1, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "ArmySlotType": "Reinforcement", - "Hitpoints": 300, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "adv_fireplace_lvl1_base", - "PickUpEffect": "Troop Housing Pickup", - "PlacingEffect": "Troop Housing Placing", - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 750, - "Stage": 2 - } - }, - "Firecrackers": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_AIR_DEFENSE_SMALL", - "InfoTID": "TID_AIR_DEFENSE_SMALL_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "airDefence_box_lvl1", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 15, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 40000, - "TownHallLevel": 3, - "CapitalHallLevel": 3, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "teslatower_upg", - "Hitpoints": 400, - "RegenTime": 1, - "AttackRange": 900, - "AttackSpeed": 800, - "Damage": 19, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Air Defence Mini Attack", - "HitEffect": "Air Defence Mini hit1", - "Projectile": "FireworkMini", - "ExportNameDamaged": "destroyedBuilding_2l_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "airdefence_box_base_lvl1", - "AirTargets": true, - "GroundTargets": false, - "PickUpEffect": "Air Defence Pickup", - "PlacingEffect": "Air Defence Placing", - "StrengthWeight": 324, - "BurstCount": 3, - "BurstDelay": 64, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "AirDefense2" - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_AIR_DEFENSE_SMALL", - "InfoTID": "TID_AIR_DEFENSE_SMALL_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "airDefence_box_lvl2", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 0, - "BuildTimeH": 2, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 80000, - "TownHallLevel": 3, - "CapitalHallLevel": 3, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "teslatower_upg", - "Hitpoints": 460, - "RegenTime": 1, - "AttackRange": 900, - "AttackSpeed": 800, - "Damage": 21, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Air Defence Mini Attack", - "HitEffect": "Air Defence Mini hit1", - "Projectile": "FireworkMini2", - "ExportNameDamaged": "destroyedBuilding_2l_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "airdefence_box_base_lvl1", - "AirTargets": true, - "GroundTargets": false, - "PickUpEffect": "Air Defence Pickup", - "PlacingEffect": "Air Defence Placing", - "StrengthWeight": 330, - "BurstCount": 3, - "BurstDelay": 64, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "AirDefense2" - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_AIR_DEFENSE_SMALL", - "InfoTID": "TID_AIR_DEFENSE_SMALL_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "airDefence_box_lvl3", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 0, - "BuildTimeH": 4, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 120000, - "TownHallLevel": 3, - "CapitalHallLevel": 3, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "teslatower_upg", - "Hitpoints": 530, - "RegenTime": 1, - "AttackRange": 900, - "AttackSpeed": 800, - "Damage": 23, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Air Defence Mini Attack", - "HitEffect": "Air Defence Mini hit2", - "Projectile": "FireworkMini3", - "ExportNameDamaged": "destroyedBuilding_2l_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "airdefence_box_base_lvl1", - "AirTargets": true, - "GroundTargets": false, - "PickUpEffect": "Air Defence Pickup", - "PlacingEffect": "Air Defence Placing", - "StrengthWeight": 336, - "BurstCount": 3, - "BurstDelay": 64, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "AirDefense2" - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_AIR_DEFENSE_SMALL", - "InfoTID": "TID_AIR_DEFENSE_SMALL_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "airDefence_box_lvl4", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 0, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 300000, - "TownHallLevel": 4, - "CapitalHallLevel": 4, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "teslatower_upg", - "Hitpoints": 610, - "RegenTime": 1, - "AttackRange": 900, - "AttackSpeed": 800, - "Damage": 25, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Air Defence Mini Attack", - "HitEffect": "Air Defence Mini hit2", - "Projectile": "FireworkMini4", - "ExportNameDamaged": "destroyedBuilding_2l_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "airdefence_box_base_lvl1", - "AirTargets": true, - "GroundTargets": false, - "PickUpEffect": "Air Defence Pickup", - "PlacingEffect": "Air Defence Placing", - "StrengthWeight": 342, - "BurstCount": 3, - "BurstDelay": 64, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "AirDefense2" - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_AIR_DEFENSE_SMALL", - "InfoTID": "TID_AIR_DEFENSE_SMALL_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "airDefence_box_lvl5", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 1, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 800000, - "TownHallLevel": 5, - "CapitalHallLevel": 5, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "teslatower_upg", - "Hitpoints": 700, - "RegenTime": 1, - "AttackRange": 900, - "AttackSpeed": 800, - "Damage": 27, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Air Defence Mini Attack", - "HitEffect": "Air Defence Mini hit3", - "Projectile": "FireworkMini5", - "ExportNameDamaged": "destroyedBuilding_2l_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "airdefence_box_base_lvl1", - "AirTargets": true, - "GroundTargets": false, - "PickUpEffect": "Air Defence Pickup", - "PlacingEffect": "Air Defence Placing", - "StrengthWeight": 348, - "BurstCount": 3, - "BurstDelay": 64, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "AirDefense2" - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_BUILDING_AIR_DEFENSE_SMALL", - "InfoTID": "TID_AIR_DEFENSE_SMALL_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "airDefence_box_lvl6", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 2, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 1200000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "teslatower_upg", - "Hitpoints": 850, - "RegenTime": 1, - "AttackRange": 900, - "AttackSpeed": 800, - "Damage": 30, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Air Defence Mini Attack", - "HitEffect": "Air Defence Mini hit3", - "Projectile": "FireworkMini5", - "ExportNameDamaged": "destroyedBuilding_2l_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "airdefence_box_base_lvl1", - "AirTargets": true, - "GroundTargets": false, - "PickUpEffect": "Air Defence Pickup", - "PlacingEffect": "Air Defence Placing", - "StrengthWeight": 354, - "BurstCount": 3, - "BurstDelay": 64, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "AirDefense2" - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_BUILDING_AIR_DEFENSE_SMALL", - "InfoTID": "TID_AIR_DEFENSE_SMALL_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "airDefence_box_lvl7", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 4, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 2000000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "teslatower_upg", - "Hitpoints": 1000, - "RegenTime": 1, - "AttackRange": 900, - "AttackSpeed": 800, - "Damage": 33, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Air Defence Mini Attack", - "HitEffect": "Air Defence Mini hit3", - "Projectile": "FireworkMini5", - "ExportNameDamaged": "destroyedBuilding_2l_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "airdefence_box_base_lvl1", - "AirTargets": true, - "GroundTargets": false, - "PickUpEffect": "Air Defence Pickup", - "PlacingEffect": "Air Defence Placing", - "StrengthWeight": 360, - "BurstCount": 3, - "BurstDelay": 64, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "AirDefense2" - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_BUILDING_AIR_DEFENSE_SMALL", - "InfoTID": "TID_AIR_DEFENSE_SMALL_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "airDefence_box_lvl8", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 6, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 3000000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "teslatower_upg", - "Hitpoints": 1150, - "RegenTime": 1, - "AttackRange": 900, - "AttackSpeed": 800, - "Damage": 36, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Air Defence Mini Attack", - "HitEffect": "Air Defence Mini hit3", - "Projectile": "FireworkMini6", - "ExportNameDamaged": "destroyedBuilding_2l_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "airdefence_box_base_lvl1", - "AirTargets": true, - "GroundTargets": false, - "PickUpEffect": "Air Defence Pickup", - "PlacingEffect": "Air Defence Placing", - "StrengthWeight": 366, - "BurstCount": 3, - "BurstDelay": 64, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "AirDefense2" - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_BUILDING_AIR_DEFENSE_SMALL", - "InfoTID": "TID_AIR_DEFENSE_SMALL_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "airDefence_box_lvl9", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 8, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 4000000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "teslatower_upg", - "Hitpoints": 1300, - "RegenTime": 1, - "AttackRange": 900, - "AttackSpeed": 800, - "Damage": 40, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Air Defence Mini Attack", - "HitEffect": "Air Defence Mini hit3", - "Projectile": "FireworkMini6", - "ExportNameDamaged": "destroyedBuilding_2l_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "airdefence_box_base_lvl1", - "AirTargets": true, - "GroundTargets": false, - "PickUpEffect": "Air Defence Pickup", - "PlacingEffect": "Air Defence Placing", - "StrengthWeight": 372, - "BurstCount": 3, - "BurstDelay": 64, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "AirDefense2" - }, - "10": { - "BuildingLevel": 10, - "TID": "TID_BUILDING_AIR_DEFENSE_SMALL", - "InfoTID": "TID_AIR_DEFENSE_SMALL_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "airDefence_box_lvl10", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 9, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 5000000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "teslatower_upg", - "Hitpoints": 1500, - "RegenTime": 1, - "AttackRange": 900, - "AttackSpeed": 800, - "Damage": 44, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Air Defence Mini Attack", - "HitEffect": "Air Defence Mini hit3", - "Projectile": "FireworkMini6", - "ExportNameDamaged": "destroyedBuilding_2l_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "airdefence_box_base_lvl1", - "AirTargets": true, - "GroundTargets": false, - "PickUpEffect": "Air Defence Pickup", - "PlacingEffect": "Air Defence Placing", - "StrengthWeight": 378, - "BurstCount": 3, - "BurstDelay": 64, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "AirDefense2" - } - }, - "Guard Post": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_GUARD_POST", - "InfoTID": "TID_GUARD_POST_INFO", - "BuildingClass": "Army", - "ShopBuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "GuardPost_lvl1", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 0, - "BuildTimeH": 4, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 200000, - "TownHallLevel": 4, - "CapitalHallLevel": 4, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "teslatower_upg", - "Hitpoints": 300, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_lightblue", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "newVillage_guard_post_lvl1", - "PickUpEffect": "Worker Building Pickup", - "PlacingEffect": "Worker Building Placing", - "StrengthWeight": 422, - "VillageType": 1, - "DefenceTroopCount": 2, - "DefenceTroopCharacter": "Barbarian2", - "DefenceTroopCharacter2": "Archer2", - "DefenceTroopLevel": 2, - "HintPriority": 150 - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_GUARD_POST", - "InfoTID": "TID_GUARD_POST_INFO", - "BuildingClass": "Army", - "ShopBuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "GuardPost_lvl2", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 0, - "BuildTimeH": 8, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 240000, - "TownHallLevel": 4, - "CapitalHallLevel": 4, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "teslatower_upg", - "Hitpoints": 350, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_lightblue", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "newVillage_guard_post_lvl1", - "PickUpEffect": "Worker Building Pickup", - "PlacingEffect": "Worker Building Placing", - "StrengthWeight": 379, - "VillageType": 1, - "DefenceTroopCount": 2, - "DefenceTroopCharacter": "Barbarian2", - "DefenceTroopCharacter2": "Archer2", - "DefenceTroopLevel": 4, - "HintPriority": 150 - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_GUARD_POST", - "InfoTID": "TID_GUARD_POST_INFO", - "BuildingClass": "Army", - "ShopBuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "GuardPost_lvl3", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 0, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 280000, - "TownHallLevel": 4, - "CapitalHallLevel": 4, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "teslatower_upg", - "Hitpoints": 400, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_lightblue", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "newVillage_guard_post_lvl1", - "PickUpEffect": "Worker Building Pickup", - "PlacingEffect": "Worker Building Placing", - "StrengthWeight": 265, - "VillageType": 1, - "DefenceTroopCount": 2, - "DefenceTroopCharacter": "Barbarian2", - "DefenceTroopCharacter2": "Archer2", - "DefenceTroopLevel": 6, - "HintPriority": 150 - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_GUARD_POST", - "InfoTID": "TID_GUARD_POST_INFO", - "BuildingClass": "Army", - "ShopBuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "GuardPost_lvl4", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 1, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 320000, - "TownHallLevel": 4, - "CapitalHallLevel": 4, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "teslatower_upg", - "Hitpoints": 460, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_lightblue", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "newVillage_guard_post_lvl1", - "PickUpEffect": "Worker Building Pickup", - "PlacingEffect": "Worker Building Placing", - "StrengthWeight": 265, - "VillageType": 1, - "DefenceTroopCount": 2, - "DefenceTroopCharacter": "Barbarian2", - "DefenceTroopCharacter2": "Archer2", - "DefenceTroopLevel": 8, - "HintPriority": 150 - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_GUARD_POST", - "InfoTID": "TID_GUARD_POST_INFO", - "BuildingClass": "Army", - "ShopBuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "GuardPost_lvl5", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 2, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 1000000, - "TownHallLevel": 5, - "CapitalHallLevel": 5, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "teslatower_upg", - "Hitpoints": 550, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_lightblue", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "newVillage_guard_post_lvl1", - "PickUpEffect": "Worker Building Pickup", - "PlacingEffect": "Worker Building Placing", - "StrengthWeight": 212, - "VillageType": 1, - "DefenceTroopCount": 2, - "DefenceTroopCharacter": "Barbarian2", - "DefenceTroopCharacter2": "Archer2", - "DefenceTroopLevel": 10, - "HintPriority": 150 - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_BUILDING_GUARD_POST", - "InfoTID": "TID_GUARD_POST_INFO", - "BuildingClass": "Army", - "ShopBuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "GuardPost_lvl6", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 4, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 1400000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "teslatower_upg", - "Hitpoints": 650, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_lightblue", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "newVillage_guard_post_lvl1", - "PickUpEffect": "Worker Building Pickup", - "PlacingEffect": "Worker Building Placing", - "StrengthWeight": 212, - "VillageType": 1, - "DefenceTroopCount": 2, - "DefenceTroopCharacter": "Barbarian2", - "DefenceTroopCharacter2": "Archer2", - "DefenceTroopLevel": 12, - "HintPriority": 150 - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_BUILDING_GUARD_POST", - "InfoTID": "TID_GUARD_POST_INFO", - "BuildingClass": "Army", - "ShopBuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "GuardPost_lvl7", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 6, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 2300000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "teslatower_upg", - "Hitpoints": 750, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_lightblue", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "newVillage_guard_post_lvl1", - "PickUpEffect": "Worker Building Pickup", - "PlacingEffect": "Worker Building Placing", - "StrengthWeight": 190, - "VillageType": 1, - "DefenceTroopCount": 2, - "DefenceTroopCharacter": "Barbarian2", - "DefenceTroopCharacter2": "Archer2", - "DefenceTroopLevel": 14, - "HintPriority": 150 - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_BUILDING_GUARD_POST", - "InfoTID": "TID_GUARD_POST_INFO", - "BuildingClass": "Army", - "ShopBuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "GuardPost_lvl8", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 8, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 3200000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "teslatower_upg", - "Hitpoints": 850, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_lightblue", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "newVillage_guard_post_lvl1", - "PickUpEffect": "Worker Building Pickup", - "PlacingEffect": "Worker Building Placing", - "StrengthWeight": 190, - "VillageType": 1, - "DefenceTroopCount": 2, - "DefenceTroopCharacter": "Barbarian2", - "DefenceTroopCharacter2": "Archer2", - "DefenceTroopLevel": 16, - "HintPriority": 150 - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_BUILDING_GUARD_POST", - "InfoTID": "TID_GUARD_POST_INFO", - "BuildingClass": "Army", - "ShopBuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "GuardPost_lvl9", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 10, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 4100000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "teslatower_upg", - "Hitpoints": 1000, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_lightblue", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "newVillage_guard_post_lvl1", - "PickUpEffect": "Worker Building Pickup", - "PlacingEffect": "Worker Building Placing", - "StrengthWeight": 190, - "VillageType": 1, - "DefenceTroopCount": 2, - "DefenceTroopCharacter": "Barbarian2", - "DefenceTroopCharacter2": "Archer2", - "DefenceTroopLevel": 18, - "HintPriority": 150 - }, - "10": { - "BuildingLevel": 10, - "TID": "TID_BUILDING_GUARD_POST", - "InfoTID": "TID_GUARD_POST_INFO", - "BuildingClass": "Army", - "ShopBuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "GuardPost_lvl10", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 12, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 5100000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "teslatower_upg", - "Hitpoints": 1150, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_lightblue", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "newVillage_guard_post_lvl1", - "PickUpEffect": "Worker Building Pickup", - "PlacingEffect": "Worker Building Placing", - "StrengthWeight": 190, - "VillageType": 1, - "DefenceTroopCount": 2, - "DefenceTroopCharacter": "Barbarian2", - "DefenceTroopCharacter2": "Archer2", - "DefenceTroopLevel": 20, - "HintPriority": 150 - } - }, - "Mega Tesla": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_MEGA_TESLA", - "InfoTID": "TID_MEGA_TESLA_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "mega_tesla_lvl1", - "ExportNameConstruction": "tower_turret_const", - "BuildTimeD": 2, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 3000000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 700, - "RegenTime": 1, - "AttackRange": 750, - "AttackSpeed": 4000, - "Damage": 380, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "MegaTesla Attack_1", - "ChainAttackDistance": 300, - "ChainAttackMaxTargets": 2, - "ChainAttackDelay": 128, - "ChainAttackDamageReductionPercent": 40, - "AttackEffectAlt": "MegaTesla Attack_1_chain", - "HitEffect": "Mega Tesla Hit", - "ExportNameDamaged": "destroyedBuilding_3l_base_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "defense_tower_turret_base", - "AirTargets": true, - "GroundTargets": true, - "PickUpEffect": "Tesla Pickup", - "PlacingEffect": "Tesla Placing", - "StrengthWeight": 1493, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_MEGA_TESLA", - "InfoTID": "TID_MEGA_TESLA_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "mega_tesla_lvl2", - "ExportNameConstruction": "tower_turret_const", - "BuildTimeD": 3, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 3100000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 800, - "RegenTime": 1, - "AttackRange": 750, - "AttackSpeed": 4000, - "Damage": 418, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "MegaTesla Attack_1", - "ChainAttackDistance": 300, - "ChainAttackMaxTargets": 2, - "ChainAttackDelay": 128, - "ChainAttackDamageReductionPercent": 40, - "AttackEffectAlt": "MegaTesla Attack_1_chain", - "HitEffect": "Mega Tesla Hit", - "ExportNameDamaged": "destroyedBuilding_3l_base_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "defense_tower_turret_base", - "AirTargets": true, - "GroundTargets": true, - "PickUpEffect": "Tesla Pickup", - "PlacingEffect": "Tesla Placing", - "StrengthWeight": 1522, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_MEGA_TESLA", - "InfoTID": "TID_MEGA_TESLA_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "mega_tesla_lvl3", - "ExportNameConstruction": "tower_turret_const", - "BuildTimeD": 4, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 3200000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 950, - "RegenTime": 1, - "AttackRange": 750, - "AttackSpeed": 4000, - "Damage": 460, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "MegaTesla Attack_1", - "ChainAttackDistance": 300, - "ChainAttackMaxTargets": 2, - "ChainAttackDelay": 128, - "ChainAttackDamageReductionPercent": 40, - "AttackEffectAlt": "MegaTesla Attack_1_chain", - "HitEffect": "Mega Tesla Hit", - "ExportNameDamaged": "destroyedBuilding_3l_base_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "defense_tower_turret_base", - "AirTargets": true, - "GroundTargets": true, - "PickUpEffect": "Tesla Pickup", - "PlacingEffect": "Tesla Placing", - "StrengthWeight": 1552, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_MEGA_TESLA", - "InfoTID": "TID_MEGA_TESLA_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "mega_tesla_lvl4", - "ExportNameConstruction": "tower_turret_const", - "BuildTimeD": 5, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 3300000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 1100, - "RegenTime": 1, - "AttackRange": 750, - "AttackSpeed": 4000, - "Damage": 506, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "MegaTesla Attack_1", - "ChainAttackDistance": 300, - "ChainAttackMaxTargets": 2, - "ChainAttackDelay": 128, - "ChainAttackDamageReductionPercent": 40, - "AttackEffectAlt": "MegaTesla Attack_1_chain", - "HitEffect": "Mega Tesla Hit", - "ExportNameDamaged": "destroyedBuilding_3l_base_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "defense_tower_turret_base", - "AirTargets": true, - "GroundTargets": true, - "PickUpEffect": "Tesla Pickup", - "PlacingEffect": "Tesla Placing", - "StrengthWeight": 1583, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_MEGA_TESLA", - "InfoTID": "TID_MEGA_TESLA_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "mega_tesla_lvl5", - "ExportNameConstruction": "tower_turret_const", - "BuildTimeD": 6, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 3400000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 1300, - "RegenTime": 1, - "AttackRange": 750, - "AttackSpeed": 4000, - "Damage": 556, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "MegaTesla Attack_1", - "ChainAttackDistance": 300, - "ChainAttackMaxTargets": 2, - "ChainAttackDelay": 128, - "ChainAttackDamageReductionPercent": 40, - "AttackEffectAlt": "MegaTesla Attack_1_chain", - "HitEffect": "Mega Tesla Hit", - "ExportNameDamaged": "destroyedBuilding_3l_base_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "defense_tower_turret_base", - "AirTargets": true, - "GroundTargets": true, - "PickUpEffect": "Tesla Pickup", - "PlacingEffect": "Tesla Placing", - "StrengthWeight": 1614, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_BUILDING_MEGA_TESLA", - "InfoTID": "TID_MEGA_TESLA_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "mega_tesla_lvl6", - "ExportNameConstruction": "tower_turret_const", - "BuildTimeD": 7, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 3600000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 1500, - "RegenTime": 1, - "AttackRange": 750, - "AttackSpeed": 4000, - "Damage": 612, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "MegaTesla Attack_1", - "ChainAttackDistance": 300, - "ChainAttackMaxTargets": 2, - "ChainAttackDelay": 128, - "ChainAttackDamageReductionPercent": 40, - "AttackEffectAlt": "MegaTesla Attack_1_chain", - "HitEffect": "Mega Tesla Hit", - "ExportNameDamaged": "destroyedBuilding_3l_base_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "defense_tower_turret_base", - "AirTargets": true, - "GroundTargets": true, - "PickUpEffect": "Tesla Pickup", - "PlacingEffect": "Tesla Placing", - "StrengthWeight": 1646, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_BUILDING_MEGA_TESLA", - "InfoTID": "TID_MEGA_TESLA_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "mega_tesla_lvl7", - "ExportNameConstruction": "tower_turret_const", - "BuildTimeD": 8, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 3800000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 1700, - "RegenTime": 1, - "AttackRange": 750, - "AttackSpeed": 4000, - "Damage": 673, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "MegaTesla Attack_1", - "ChainAttackDistance": 300, - "ChainAttackMaxTargets": 2, - "ChainAttackDelay": 128, - "ChainAttackDamageReductionPercent": 40, - "AttackEffectAlt": "MegaTesla Attack_1_chain", - "HitEffect": "Mega Tesla Hit", - "ExportNameDamaged": "destroyedBuilding_3l_base_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "defense_tower_turret_base", - "AirTargets": true, - "GroundTargets": true, - "PickUpEffect": "Tesla Pickup", - "PlacingEffect": "Tesla Placing", - "StrengthWeight": 1678, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_BUILDING_MEGA_TESLA", - "InfoTID": "TID_MEGA_TESLA_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "mega_tesla_lvl8", - "ExportNameConstruction": "tower_turret_const", - "BuildTimeD": 10, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 4000000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 1900, - "RegenTime": 1, - "AttackRange": 750, - "AttackSpeed": 4000, - "Damage": 741, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "MegaTesla Attack_1", - "ChainAttackDistance": 300, - "ChainAttackMaxTargets": 2, - "ChainAttackDelay": 128, - "ChainAttackDamageReductionPercent": 40, - "AttackEffectAlt": "MegaTesla Attack_1_chain", - "HitEffect": "Mega Tesla Hit", - "ExportNameDamaged": "destroyedBuilding_3l_base_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "defense_tower_turret_base", - "AirTargets": true, - "GroundTargets": true, - "PickUpEffect": "Tesla Pickup", - "PlacingEffect": "Tesla Placing", - "StrengthWeight": 1711, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_BUILDING_MEGA_TESLA", - "InfoTID": "TID_MEGA_TESLA_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "mega_tesla_lvl9", - "ExportNameConstruction": "tower_turret_const", - "BuildTimeD": 11, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 4800000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 2150, - "RegenTime": 1, - "AttackRange": 750, - "AttackSpeed": 4000, - "Damage": 816, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "MegaTesla Attack_1", - "ChainAttackDistance": 300, - "ChainAttackMaxTargets": 2, - "ChainAttackDelay": 128, - "ChainAttackDamageReductionPercent": 40, - "AttackEffectAlt": "MegaTesla Attack_1_chain", - "HitEffect": "Mega Tesla Hit", - "ExportNameDamaged": "destroyedBuilding_3l_base_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "defense_tower_turret_base", - "AirTargets": true, - "GroundTargets": true, - "PickUpEffect": "Tesla Pickup", - "PlacingEffect": "Tesla Placing", - "StrengthWeight": 1744, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "10": { - "BuildingLevel": 10, - "TID": "TID_BUILDING_MEGA_TESLA", - "InfoTID": "TID_MEGA_TESLA_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "mega_tesla_lvl10", - "ExportNameConstruction": "tower_turret_const", - "BuildTimeD": 12, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 5800000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 2400, - "RegenTime": 1, - "AttackRange": 750, - "AttackSpeed": 4000, - "Damage": 896, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "MegaTesla Attack_1", - "ChainAttackDistance": 300, - "ChainAttackMaxTargets": 2, - "ChainAttackDelay": 128, - "ChainAttackDamageReductionPercent": 40, - "AttackEffectAlt": "MegaTesla Attack_1_chain", - "HitEffect": "Mega Tesla Hit", - "ExportNameDamaged": "destroyedBuilding_3l_base_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "defense_tower_turret_base", - "AirTargets": true, - "GroundTargets": true, - "PickUpEffect": "Tesla Pickup", - "PlacingEffect": "Tesla Placing", - "StrengthWeight": 1770, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - } - }, - "Battle Machine": { - "1": { - "BuildingLevel": 1, - "TID": "TID_WARMACHINE", - "InfoTID": "TID_WARMACHINE_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "heroaltar_warmachine_lvl1", - "ExportNameConstruction": "air_mortar_const", - "ExportNameLocked": "heroaltar_warmachine_broken", - "BuildTimeD": 0, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 900000, - "TownHallLevel": 5, - "CapitalHallLevel": 5, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "heroaltar_barbarian_king_upg", - "LevelRequirementTID": "TID_REQUIRED_BUILDERS_HALL_LEVEL", - "Hitpoints": 250, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "heroaltar_base", - "PickUpEffect": "Hero Altar Pickup", - "PlacingEffect": "Hero Altar Place", - "Locked": true, - "StartingHomeCount": 1, - "IsHeroBarrack": true, - "HeroType": "Warmachine", - "VillageType": 1, - "HintPriority": 700, - "Stage": 1 - } - }, - "Air Bombs": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_AIR_DEFENSE2", - "InfoTID": "TID_AIR_DEFENSE2_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "airDefence_factory_lvl1", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 0, - "BuildTimeH": 6, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 300000, - "TownHallLevel": 4, - "CapitalHallLevel": 4, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 1000, - "RegenTime": 1, - "AttackRange": 750, - "AttackSpeed": 3000, - "Damage": 270, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Air Defence Barrel Attack", - "HitEffect": "Air Defense Barrel Hit", - "Projectile": "AirDefenceBalloon_1", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "airDefence_factory_lvl1", - "AirTargets": true, - "GroundTargets": false, - "DamageRadius": 150, - "PushBack": 50, - "PickUpEffect": "Air Defence Pickup", - "PlacingEffect": "Air Defence Placing", - "StrengthWeight": 556, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "AirDefense2" - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_AIR_DEFENSE2", - "InfoTID": "TID_AIR_DEFENSE2_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "airDefence_factory_lvl2", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 0, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 320000, - "TownHallLevel": 4, - "CapitalHallLevel": 4, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 1100, - "RegenTime": 1, - "AttackRange": 750, - "AttackSpeed": 3000, - "Damage": 297, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Air Defence Barrel Attack", - "HitEffect": "Air Defense Barrel Hit", - "Projectile": "AirDefenceBalloon_2", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "airDefence_factory_lvl2", - "AirTargets": true, - "GroundTargets": false, - "DamageRadius": 150, - "PushBack": 50, - "PickUpEffect": "Air Defence Pickup", - "PlacingEffect": "Air Defence Placing", - "StrengthWeight": 583, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "AirDefense2" - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_AIR_DEFENSE2", - "InfoTID": "TID_AIR_DEFENSE2_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "airDefence_factory_lvl3", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 1, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 340000, - "TownHallLevel": 4, - "CapitalHallLevel": 4, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 1250, - "RegenTime": 1, - "AttackRange": 750, - "AttackSpeed": 3000, - "Damage": 327, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Air Defence Barrel Attack", - "HitEffect": "Air Defense Barrel Hit", - "Projectile": "AirDefenceBalloon_3", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "airDefence_factory_lvl3", - "AirTargets": true, - "GroundTargets": false, - "DamageRadius": 150, - "PushBack": 50, - "PickUpEffect": "Air Defence Pickup", - "PlacingEffect": "Air Defence Placing", - "StrengthWeight": 612, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "AirDefense2" - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_AIR_DEFENSE2", - "InfoTID": "TID_AIR_DEFENSE2_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "airDefence_factory_lvl4", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 2, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 360000, - "TownHallLevel": 4, - "CapitalHallLevel": 4, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 1400, - "RegenTime": 1, - "AttackRange": 750, - "AttackSpeed": 3000, - "Damage": 359, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Air Defence Barrel Attack", - "HitEffect": "Air Defense Barrel Hit", - "Projectile": "AirDefenceBalloon_3", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "airDefence_factory_lvl4", - "AirTargets": true, - "GroundTargets": false, - "DamageRadius": 150, - "PushBack": 50, - "PickUpEffect": "Air Defence Pickup", - "PlacingEffect": "Air Defence Placing", - "StrengthWeight": 642, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "AirDefense2" - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_AIR_DEFENSE2", - "InfoTID": "TID_AIR_DEFENSE2_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "airDefence_factory_lvl5", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 3, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 1200000, - "TownHallLevel": 5, - "CapitalHallLevel": 5, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 1600, - "RegenTime": 1, - "AttackRange": 750, - "AttackSpeed": 3000, - "Damage": 395, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Air Defence Barrel Attack", - "HitEffect": "Air Defense Barrel Hit", - "Projectile": "AirDefenceBalloon_3", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "airDefence_factory_lvl5", - "AirTargets": true, - "GroundTargets": false, - "DamageRadius": 150, - "PushBack": 50, - "PickUpEffect": "Air Defence Pickup", - "PlacingEffect": "Air Defence Placing", - "StrengthWeight": 674, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "AirDefense2" - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_BUILDING_AIR_DEFENSE2", - "InfoTID": "TID_AIR_DEFENSE2_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "airDefence_factory_lvl6", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 5, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 1500000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 1850, - "RegenTime": 1, - "AttackRange": 750, - "AttackSpeed": 3000, - "Damage": 435, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Air Defence Barrel Attack", - "HitEffect": "Air Defense Barrel Hit", - "Projectile": "AirDefenceBalloon_3", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "airDefence_factory_lvl6", - "AirTargets": true, - "GroundTargets": false, - "DamageRadius": 150, - "PushBack": 50, - "PickUpEffect": "Air Defence Pickup", - "PlacingEffect": "Air Defence Placing", - "StrengthWeight": 707, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "AirDefense2" - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_BUILDING_AIR_DEFENSE2", - "InfoTID": "TID_AIR_DEFENSE2_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "airDefence_factory_lvl7", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 7, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 2400000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 2100, - "RegenTime": 1, - "AttackRange": 750, - "AttackSpeed": 3000, - "Damage": 478, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Air Defence Barrel Attack", - "HitEffect": "Air Defense Barrel Hit", - "Projectile": "AirDefenceBalloon_3", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "airDefence_factory_lvl7", - "AirTargets": true, - "GroundTargets": false, - "DamageRadius": 150, - "PushBack": 50, - "PickUpEffect": "Air Defence Pickup", - "PlacingEffect": "Air Defence Placing", - "StrengthWeight": 742, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "AirDefense2" - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_BUILDING_AIR_DEFENSE2", - "InfoTID": "TID_AIR_DEFENSE2_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "airDefence_factory_lvl8", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 8, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 3400000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 2350, - "RegenTime": 1, - "AttackRange": 750, - "AttackSpeed": 3000, - "Damage": 526, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Air Defence Barrel Attack", - "HitEffect": "Air Defense Barrel Hit", - "Projectile": "AirDefenceBalloon_4", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "airDefence_factory_lvl8", - "AirTargets": true, - "GroundTargets": false, - "DamageRadius": 150, - "PushBack": 50, - "PickUpEffect": "Air Defence Pickup", - "PlacingEffect": "Air Defence Placing", - "StrengthWeight": 779, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "AirDefense2" - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_BUILDING_AIR_DEFENSE2", - "InfoTID": "TID_AIR_DEFENSE2_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "airDefence_factory_lvl9", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 10, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 4400000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 2600, - "RegenTime": 1, - "AttackRange": 750, - "AttackSpeed": 3000, - "Damage": 579, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Air Defence Barrel Attack", - "HitEffect": "Air Defense Barrel Hit", - "Projectile": "AirDefenceBalloon_4", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "airDefence_factory_lvl8", - "AirTargets": true, - "GroundTargets": false, - "DamageRadius": 150, - "PushBack": 50, - "PickUpEffect": "Air Defence Pickup", - "PlacingEffect": "Air Defence Placing", - "StrengthWeight": 816, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "AirDefense2" - }, - "10": { - "BuildingLevel": 10, - "TID": "TID_BUILDING_AIR_DEFENSE2", - "InfoTID": "TID_AIR_DEFENSE2_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "airDefence_factory_lvl10", - "ExportNameConstruction": "air_mortar_const", - "BuildTimeD": 12, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 5400000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 2900, - "RegenTime": 1, - "AttackRange": 750, - "AttackSpeed": 3000, - "Damage": 637, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Air Defence Barrel Attack", - "HitEffect": "Air Defense Barrel Hit", - "Projectile": "AirDefenceBalloon_4", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "airDefence_factory_lvl8", - "AirTargets": true, - "GroundTargets": false, - "DamageRadius": 150, - "PushBack": 50, - "PickUpEffect": "Air Defence Pickup", - "PlacingEffect": "Air Defence Placing", - "StrengthWeight": 850, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "AirDefense2" - } - }, - "Crusher": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_CRUSHER", - "InfoTID": "TID_BUILDING_CRUSHER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "Crusher_lvl1", - "ExportNameConstruction": "darkelixir_storage_const", - "BuildTimeD": 0, - "BuildTimeH": 2, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 120000, - "TownHallLevel": 3, - "CapitalHallLevel": 3, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 1000, - "RegenTime": 1, - "AttackRange": 230, - "AttackSpeed": 3500, - "CoolDownOverride": 2200, - "Damage": 440, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "CrusherAttack", - "HitEffect": "Generic Hit", - "ExportNameDamaged": "destroyedBuilding_3m_base_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "basic_cannon_lvl1_base", - "AirTargets": false, - "GroundTargets": true, - "DamageRadius": 280, - "PushBack": 50, - "PickUpEffect": "Basic Turret Pickup", - "PlacingEffect": "Basic Turret Placing", - "StrengthWeight": 360, - "VillageType": 1, - "SelfAsAoeCenter": true, - "HintPriority": 150, - "PreviewScenario": "Crusher" - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_CRUSHER", - "InfoTID": "TID_BUILDING_CRUSHER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "Crusher_lvl2", - "ExportNameConstruction": "darkelixir_storage_const", - "BuildTimeD": 0, - "BuildTimeH": 5, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 180000, - "TownHallLevel": 3, - "CapitalHallLevel": 3, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 1100, - "RegenTime": 1, - "AttackRange": 230, - "AttackSpeed": 3500, - "CoolDownOverride": 2200, - "Damage": 484, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "CrusherAttack", - "HitEffect": "Generic Hit", - "ExportNameDamaged": "destroyedBuilding_3m_base_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "basic_cannon_lvl1_base", - "AirTargets": false, - "GroundTargets": true, - "DamageRadius": 280, - "PushBack": 50, - "PickUpEffect": "Basic Turret Pickup", - "PlacingEffect": "Basic Turret Placing", - "StrengthWeight": 376, - "VillageType": 1, - "SelfAsAoeCenter": true, - "HintPriority": 150, - "PreviewScenario": "Crusher" - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_CRUSHER", - "InfoTID": "TID_BUILDING_CRUSHER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "Crusher_lvl3", - "ExportNameConstruction": "darkelixir_storage_const", - "BuildTimeD": 0, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 220000, - "TownHallLevel": 3, - "CapitalHallLevel": 3, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 1250, - "RegenTime": 1, - "AttackRange": 230, - "AttackSpeed": 3500, - "CoolDownOverride": 2200, - "Damage": 532, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "CrusherAttack", - "HitEffect": "Generic Hit", - "ExportNameDamaged": "destroyedBuilding_3m_base_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "basic_cannon_lvl1_base", - "AirTargets": false, - "GroundTargets": true, - "DamageRadius": 280, - "PushBack": 50, - "PickUpEffect": "Basic Turret Pickup", - "PlacingEffect": "Basic Turret Placing", - "StrengthWeight": 392, - "VillageType": 1, - "SelfAsAoeCenter": true, - "HintPriority": 150, - "PreviewScenario": "Crusher" - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_CRUSHER", - "InfoTID": "TID_BUILDING_CRUSHER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "Crusher_lvl4", - "ExportNameConstruction": "darkelixir_storage_const", - "BuildTimeD": 1, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 350000, - "TownHallLevel": 4, - "CapitalHallLevel": 4, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 1400, - "RegenTime": 1, - "AttackRange": 230, - "AttackSpeed": 3500, - "CoolDownOverride": 2200, - "Damage": 586, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "CrusherAttack", - "HitEffect": "Generic Hit", - "ExportNameDamaged": "destroyedBuilding_3m_base_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "basic_cannon_lvl1_base", - "AirTargets": false, - "GroundTargets": true, - "DamageRadius": 280, - "PushBack": 50, - "PickUpEffect": "Basic Turret Pickup", - "PlacingEffect": "Basic Turret Placing", - "StrengthWeight": 408, - "VillageType": 1, - "SelfAsAoeCenter": true, - "HintPriority": 150, - "PreviewScenario": "Crusher" - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_CRUSHER", - "InfoTID": "TID_BUILDING_CRUSHER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "Crusher_lvl5", - "ExportNameConstruction": "darkelixir_storage_const", - "BuildTimeD": 2, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 1200000, - "TownHallLevel": 5, - "CapitalHallLevel": 5, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 1600, - "RegenTime": 1, - "AttackRange": 230, - "AttackSpeed": 3500, - "CoolDownOverride": 2200, - "Damage": 644, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "CrusherAttack", - "HitEffect": "Generic Hit", - "ExportNameDamaged": "destroyedBuilding_3m_base_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "basic_cannon_lvl1_base", - "AirTargets": false, - "GroundTargets": true, - "DamageRadius": 280, - "PushBack": 50, - "PickUpEffect": "Basic Turret Pickup", - "PlacingEffect": "Basic Turret Placing", - "StrengthWeight": 428, - "VillageType": 1, - "SelfAsAoeCenter": true, - "HintPriority": 150, - "PreviewScenario": "Crusher" - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_BUILDING_CRUSHER", - "InfoTID": "TID_BUILDING_CRUSHER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "Crusher_lvl6", - "ExportNameConstruction": "darkelixir_storage_const", - "BuildTimeD": 4, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 1500000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 1850, - "RegenTime": 1, - "AttackRange": 230, - "AttackSpeed": 3500, - "CoolDownOverride": 2200, - "Damage": 709, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "CrusherAttack", - "HitEffect": "Generic Hit", - "ExportNameDamaged": "destroyedBuilding_3m_base_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "basic_cannon_lvl1_base", - "AirTargets": false, - "GroundTargets": true, - "DamageRadius": 280, - "PushBack": 50, - "PickUpEffect": "Basic Turret Pickup", - "PlacingEffect": "Basic Turret Placing", - "StrengthWeight": 448, - "VillageType": 1, - "SelfAsAoeCenter": true, - "HintPriority": 150, - "PreviewScenario": "Crusher" - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_BUILDING_CRUSHER", - "InfoTID": "TID_BUILDING_CRUSHER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "Crusher_lvl7", - "ExportNameConstruction": "darkelixir_storage_const", - "BuildTimeD": 6, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 2400000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 2100, - "RegenTime": 1, - "AttackRange": 230, - "AttackSpeed": 3500, - "CoolDownOverride": 2200, - "Damage": 779, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "CrusherAttack", - "HitEffect": "Generic Hit", - "ExportNameDamaged": "destroyedBuilding_3m_base_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "basic_cannon_lvl1_base", - "AirTargets": false, - "GroundTargets": true, - "DamageRadius": 280, - "PushBack": 50, - "PickUpEffect": "Basic Turret Pickup", - "PlacingEffect": "Basic Turret Placing", - "StrengthWeight": 468, - "VillageType": 1, - "SelfAsAoeCenter": true, - "HintPriority": 150, - "PreviewScenario": "Crusher" - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_BUILDING_CRUSHER", - "InfoTID": "TID_BUILDING_CRUSHER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "Crusher_lvl8", - "ExportNameConstruction": "darkelixir_storage_const", - "BuildTimeD": 8, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 3400000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 2350, - "RegenTime": 1, - "AttackRange": 230, - "AttackSpeed": 3500, - "CoolDownOverride": 2200, - "Damage": 857, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "CrusherAttack", - "HitEffect": "Generic Hit", - "ExportNameDamaged": "destroyedBuilding_3m_base_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "basic_cannon_lvl1_base", - "AirTargets": false, - "GroundTargets": true, - "DamageRadius": 280, - "PushBack": 50, - "PickUpEffect": "Basic Turret Pickup", - "PlacingEffect": "Basic Turret Placing", - "StrengthWeight": 488, - "VillageType": 1, - "SelfAsAoeCenter": true, - "HintPriority": 150, - "PreviewScenario": "Crusher" - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_BUILDING_CRUSHER", - "InfoTID": "TID_BUILDING_CRUSHER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "Crusher_lvl9", - "ExportNameConstruction": "darkelixir_storage_const", - "BuildTimeD": 10, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 4400000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 2600, - "RegenTime": 1, - "AttackRange": 230, - "AttackSpeed": 3500, - "CoolDownOverride": 2200, - "Damage": 943, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "CrusherAttack", - "HitEffect": "Generic Hit", - "ExportNameDamaged": "destroyedBuilding_3m_base_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "basic_cannon_lvl1_base", - "AirTargets": false, - "GroundTargets": true, - "DamageRadius": 280, - "PushBack": 50, - "PickUpEffect": "Basic Turret Pickup", - "PlacingEffect": "Basic Turret Placing", - "StrengthWeight": 508, - "VillageType": 1, - "SelfAsAoeCenter": true, - "HintPriority": 150, - "PreviewScenario": "Crusher" - }, - "10": { - "BuildingLevel": 10, - "TID": "TID_BUILDING_CRUSHER", - "InfoTID": "TID_BUILDING_CRUSHER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "Crusher_lvl10", - "ExportNameConstruction": "darkelixir_storage_const", - "BuildTimeD": 12, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 5400000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 2900, - "RegenTime": 1, - "AttackRange": 230, - "AttackSpeed": 3500, - "CoolDownOverride": 2200, - "Damage": 1037, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "CrusherAttack", - "HitEffect": "Generic Hit", - "ExportNameDamaged": "destroyedBuilding_3m_base_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "basic_cannon_lvl1_base", - "AirTargets": false, - "GroundTargets": true, - "DamageRadius": 280, - "PushBack": 50, - "PickUpEffect": "Basic Turret Pickup", - "PlacingEffect": "Basic Turret Placing", - "StrengthWeight": 528, - "VillageType": 1, - "SelfAsAoeCenter": true, - "HintPriority": 150, - "PreviewScenario": "Crusher" - } - }, - "Roaster": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_FLAMER", - "InfoTID": "TID_FLAMER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "Flamer_lvl1", - "ExportNameConstruction": "darkelixir_storage_const", - "BuildTimeD": 1, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 1000000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 800, - "RegenTime": 1, - "AttackRange": 700, - "AttackSpeed": 1800, - "CoolDownOverride": 1500, - "Damage": 15, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Flamer_attack", - "HitEffect": "Flamer_hit1-3", - "Projectile": "Flamer_projectile1-3", - "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "shadow_flamer_lvl1", - "AirTargets": true, - "GroundTargets": true, - "DamageRadius": 120, - "PickUpEffect": "Double Cannon Pickup", - "PlacingEffect": "Double Cannon Placing", - "StrengthWeight": 7200, - "BurstCount": 15, - "BurstDelay": 140, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_FLAMER", - "InfoTID": "TID_FLAMER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "Flamer_lvl2", - "ExportNameConstruction": "darkelixir_storage_const", - "BuildTimeD": 2, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 1200000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 950, - "RegenTime": 1, - "AttackRange": 700, - "AttackSpeed": 1800, - "CoolDownOverride": 1500, - "Damage": 17, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Flamer_attack", - "HitEffect": "Flamer_hit1-3", - "Projectile": "Flamer_projectile1-3", - "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "shadow_flamer_lvl2", - "AirTargets": true, - "GroundTargets": true, - "DamageRadius": 120, - "PickUpEffect": "Double Cannon Pickup", - "PlacingEffect": "Double Cannon Placing", - "StrengthWeight": 7344, - "BurstCount": 15, - "BurstDelay": 140, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_FLAMER", - "InfoTID": "TID_FLAMER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "Flamer_lvl3", - "ExportNameConstruction": "darkelixir_storage_const", - "BuildTimeD": 3, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 1400000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 1100, - "RegenTime": 1, - "AttackRange": 700, - "AttackSpeed": 1800, - "CoolDownOverride": 1500, - "Damage": 19, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Flamer_attack", - "HitEffect": "Flamer_hit1-3", - "Projectile": "Flamer_projectile1-3", - "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "shadow_flamer_lvl3", - "AirTargets": true, - "GroundTargets": true, - "DamageRadius": 120, - "PickUpEffect": "Double Cannon Pickup", - "PlacingEffect": "Double Cannon Placing", - "StrengthWeight": 7490, - "BurstCount": 15, - "BurstDelay": 140, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_FLAMER", - "InfoTID": "TID_FLAMER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "Flamer_lvl4", - "ExportNameConstruction": "darkelixir_storage_const", - "BuildTimeD": 4, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 1500000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 1300, - "RegenTime": 1, - "AttackRange": 700, - "AttackSpeed": 1800, - "CoolDownOverride": 1500, - "Damage": 21, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Flamer_attack", - "HitEffect": "Flamer_hit4-6", - "Projectile": "Flamer_projectile4-6", - "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "shadow_flamer_lvl4", - "AirTargets": true, - "GroundTargets": true, - "DamageRadius": 120, - "PickUpEffect": "Double Cannon Pickup", - "PlacingEffect": "Double Cannon Placing", - "StrengthWeight": 7639, - "BurstCount": 15, - "BurstDelay": 140, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_FLAMER", - "InfoTID": "TID_FLAMER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "Flamer_lvl5", - "ExportNameConstruction": "darkelixir_storage_const", - "BuildTimeD": 5, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 1600000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 1500, - "RegenTime": 1, - "AttackRange": 700, - "AttackSpeed": 1800, - "CoolDownOverride": 1500, - "Damage": 23, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Flamer_attack", - "HitEffect": "Flamer_hit4-6", - "Projectile": "Flamer_projectile4-6", - "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "shadow_flamer_lvl5", - "AirTargets": true, - "GroundTargets": true, - "DamageRadius": 120, - "PickUpEffect": "Double Cannon Pickup", - "PlacingEffect": "Double Cannon Placing", - "StrengthWeight": 7791, - "BurstCount": 15, - "BurstDelay": 140, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_BUILDING_FLAMER", - "InfoTID": "TID_FLAMER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "Flamer_lvl6", - "ExportNameConstruction": "darkelixir_storage_const", - "BuildTimeD": 6, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 1700000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 1700, - "RegenTime": 1, - "AttackRange": 700, - "AttackSpeed": 1800, - "CoolDownOverride": 1500, - "Damage": 25, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Flamer_attack", - "HitEffect": "Flamer_hit4-6", - "Projectile": "Flamer_projectile4-6", - "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "shadow_flamer_lvl6", - "AirTargets": true, - "GroundTargets": true, - "DamageRadius": 120, - "PickUpEffect": "Double Cannon Pickup", - "PlacingEffect": "Double Cannon Placing", - "StrengthWeight": 7946, - "BurstCount": 15, - "BurstDelay": 140, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_BUILDING_FLAMER", - "InfoTID": "TID_FLAMER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "Flamer_lvl7", - "ExportNameConstruction": "darkelixir_storage_const", - "BuildTimeD": 8, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 2600000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 1900, - "RegenTime": 1, - "AttackRange": 700, - "AttackSpeed": 1800, - "CoolDownOverride": 1500, - "Damage": 27, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Flamer_attack", - "HitEffect": "Flamer_hit7-8", - "Projectile": "Flamer_projectile7-8", - "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "shadow_flamer_lvl7", - "AirTargets": true, - "GroundTargets": true, - "DamageRadius": 120, - "PickUpEffect": "Double Cannon Pickup", - "PlacingEffect": "Double Cannon Placing", - "StrengthWeight": 8104, - "BurstCount": 15, - "BurstDelay": 140, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_BUILDING_FLAMER", - "InfoTID": "TID_FLAMER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "Flamer_lvl8", - "ExportNameConstruction": "darkelixir_storage_const", - "BuildTimeD": 10, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 3600000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 2100, - "RegenTime": 1, - "AttackRange": 700, - "AttackSpeed": 1800, - "CoolDownOverride": 1500, - "Damage": 30, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Flamer_attack", - "HitEffect": "Flamer_hit7-8", - "Projectile": "Flamer_projectile7-8", - "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "shadow_flamer_lvl8", - "AirTargets": true, - "GroundTargets": true, - "DamageRadius": 120, - "PickUpEffect": "Double Cannon Pickup", - "PlacingEffect": "Double Cannon Placing", - "StrengthWeight": 8266, - "BurstCount": 15, - "BurstDelay": 140, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_BUILDING_FLAMER", - "InfoTID": "TID_FLAMER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "Flamer_lvl9", - "ExportNameConstruction": "darkelixir_storage_const", - "BuildTimeD": 11, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 4600000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 2350, - "RegenTime": 1, - "AttackRange": 700, - "AttackSpeed": 1800, - "CoolDownOverride": 1500, - "Damage": 33, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Flamer_attack", - "HitEffect": "Flamer_hit7-8", - "Projectile": "Flamer_projectile7-8", - "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "shadow_flamer_lvl8", - "AirTargets": true, - "GroundTargets": true, - "DamageRadius": 120, - "PickUpEffect": "Double Cannon Pickup", - "PlacingEffect": "Double Cannon Placing", - "StrengthWeight": 8432, - "BurstCount": 15, - "BurstDelay": 140, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "10": { - "BuildingLevel": 10, - "TID": "TID_BUILDING_FLAMER", - "InfoTID": "TID_FLAMER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "Flamer_lvl10", - "ExportNameConstruction": "darkelixir_storage_const", - "BuildTimeD": 12, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 5600000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "Hitpoints": 2600, - "RegenTime": 1, - "AttackRange": 700, - "AttackSpeed": 1800, - "CoolDownOverride": 1500, - "Damage": 36, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Flamer_attack", - "HitEffect": "Flamer_hit7-8", - "Projectile": "Flamer_projectile7-8", - "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "shadow_flamer_lvl8", - "AirTargets": true, - "GroundTargets": true, - "DamageRadius": 120, - "PickUpEffect": "Double Cannon Pickup", - "PlacingEffect": "Double Cannon Placing", - "StrengthWeight": 8600, - "BurstCount": 15, - "BurstDelay": 140, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - } - }, - "Giant Cannon": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_GIANT_CANNON", - "InfoTID": "TID_GIANT_CANNON_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "megaCannon_lvl1", - "ExportNameConstruction": "tower_turret_const", - "BuildTimeD": 1, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 2000000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "goldmine_upg", - "Hitpoints": 700, - "RegenTime": 1, - "AttackRange": 950, - "AttackSpeed": 5000, - "Damage": 205, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Giant Cannon Attack", - "HitEffect": "Generic Hit", - "Projectile": "GiantCannonball1", - "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "basic_cannon_lvl9_base", - "AirTargets": false, - "GroundTargets": true, - "PickUpEffect": "Basic Turret Pickup", - "PlacingEffect": "Basic Turret Placing", - "AnimateTurret": true, - "StrengthWeight": 4200, - "PenetratingProjectile": true, - "PenetratingRadius": 100, - "PenetratingExtraRange": 4800, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_GIANT_CANNON", - "InfoTID": "TID_GIANT_CANNON_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "megaCannon_lvl2", - "ExportNameConstruction": "tower_turret_const", - "BuildTimeD": 2, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 2100000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "goldmine_upg", - "Hitpoints": 800, - "RegenTime": 1, - "AttackRange": 950, - "AttackSpeed": 5000, - "Damage": 226, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Giant Cannon Attack", - "HitEffect": "Generic Hit", - "Projectile": "GiantCannonball1", - "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "basic_cannon_lvl10_base", - "AirTargets": false, - "GroundTargets": true, - "PickUpEffect": "Basic Turret Pickup", - "PlacingEffect": "Basic Turret Placing", - "AnimateTurret": true, - "StrengthWeight": 4284, - "PenetratingProjectile": true, - "PenetratingRadius": 100, - "PenetratingExtraRange": 4800, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_GIANT_CANNON", - "InfoTID": "TID_GIANT_CANNON_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "megaCannon_lvl3", - "ExportNameConstruction": "tower_turret_const", - "BuildTimeD": 3, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 2200000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "goldmine_upg", - "Hitpoints": 950, - "RegenTime": 1, - "AttackRange": 950, - "AttackSpeed": 5000, - "Damage": 248, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Giant Cannon Attack", - "HitEffect": "Generic Hit", - "Projectile": "GiantCannonball1", - "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "basic_cannon_lvl11_base", - "AirTargets": false, - "GroundTargets": true, - "PickUpEffect": "Basic Turret Pickup", - "PlacingEffect": "Basic Turret Placing", - "AnimateTurret": true, - "StrengthWeight": 4369, - "PenetratingProjectile": true, - "PenetratingRadius": 100, - "PenetratingExtraRange": 4800, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_GIANT_CANNON", - "InfoTID": "TID_GIANT_CANNON_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "megaCannon_lvl4", - "ExportNameConstruction": "tower_turret_const", - "BuildTimeD": 4, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 2300000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "goldmine_upg", - "Hitpoints": 1100, - "RegenTime": 1, - "AttackRange": 950, - "AttackSpeed": 5000, - "Damage": 273, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Giant Cannon Attack", - "HitEffect": "Generic Hit", - "Projectile": "GiantCannonball1", - "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "basic_cannon_lvl11_base", - "AirTargets": false, - "GroundTargets": true, - "PickUpEffect": "Basic Turret Pickup", - "PlacingEffect": "Basic Turret Placing", - "AnimateTurret": true, - "StrengthWeight": 4456, - "PenetratingProjectile": true, - "PenetratingRadius": 100, - "PenetratingExtraRange": 4800, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_GIANT_CANNON", - "InfoTID": "TID_GIANT_CANNON_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "megaCannon_lvl5", - "ExportNameConstruction": "tower_turret_const", - "BuildTimeD": 5, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 2400000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "goldmine_upg", - "Hitpoints": 1300, - "RegenTime": 1, - "AttackRange": 950, - "AttackSpeed": 5000, - "Damage": 300, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Giant Cannon Attack", - "HitEffect": "Generic Hit", - "Projectile": "GiantCannonball1", - "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "basic_cannon_lvl11_base", - "AirTargets": false, - "GroundTargets": true, - "PickUpEffect": "Basic Turret Pickup", - "PlacingEffect": "Basic Turret Placing", - "AnimateTurret": true, - "StrengthWeight": 4545, - "PenetratingProjectile": true, - "PenetratingRadius": 100, - "PenetratingExtraRange": 4800, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_BUILDING_GIANT_CANNON", - "InfoTID": "TID_GIANT_CANNON_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "megaCannon_lvl6", - "ExportNameConstruction": "tower_turret_const", - "BuildTimeD": 6, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 2500000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "goldmine_upg", - "Hitpoints": 1500, - "RegenTime": 1, - "AttackRange": 950, - "AttackSpeed": 5000, - "Damage": 330, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Giant Cannon Attack", - "HitEffect": "Generic Hit", - "Projectile": "GiantCannonball1", - "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "basic_cannon_lvl11_base", - "AirTargets": false, - "GroundTargets": true, - "PickUpEffect": "Basic Turret Pickup", - "PlacingEffect": "Basic Turret Placing", - "AnimateTurret": true, - "StrengthWeight": 4635, - "PenetratingProjectile": true, - "PenetratingRadius": 100, - "PenetratingExtraRange": 4800, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_BUILDING_GIANT_CANNON", - "InfoTID": "TID_GIANT_CANNON_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "megaCannon_lvl7", - "ExportNameConstruction": "tower_turret_const", - "BuildTimeD": 8, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 2700000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "goldmine_upg", - "Hitpoints": 1700, - "RegenTime": 1, - "AttackRange": 950, - "AttackSpeed": 5000, - "Damage": 363, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Giant Cannon Attack", - "HitEffect": "Generic Hit", - "Projectile": "GiantCannonball1", - "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "basic_cannon_lvl11_base", - "AirTargets": false, - "GroundTargets": true, - "PickUpEffect": "Basic Turret Pickup", - "PlacingEffect": "Basic Turret Placing", - "AnimateTurret": true, - "StrengthWeight": 4727, - "PenetratingProjectile": true, - "PenetratingRadius": 100, - "PenetratingExtraRange": 4800, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_BUILDING_GIANT_CANNON", - "InfoTID": "TID_GIANT_CANNON_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "megaCannon_lvl8", - "ExportNameConstruction": "tower_turret_const", - "BuildTimeD": 10, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 3800000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "Hitpoints": 1900, - "RegenTime": 1, - "AttackRange": 950, - "AttackSpeed": 5000, - "Damage": 399, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Giant Cannon Attack", - "HitEffect": "Generic Hit", - "Projectile": "GiantCannonball1", - "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "basic_cannon_lvl11_base", - "AirTargets": false, - "GroundTargets": true, - "PickUpEffect": "Basic Turret Pickup", - "PlacingEffect": "Basic Turret Placing", - "AnimateTurret": true, - "StrengthWeight": 4821, - "PenetratingProjectile": true, - "PenetratingRadius": 100, - "PenetratingExtraRange": 4800, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_BUILDING_GIANT_CANNON", - "InfoTID": "TID_GIANT_CANNON_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "megaCannon_lvl9", - "ExportNameConstruction": "tower_turret_const", - "BuildTimeD": 11, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 4700000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "Hitpoints": 2150, - "RegenTime": 1, - "AttackRange": 950, - "AttackSpeed": 5000, - "Damage": 439, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Giant Cannon Attack", - "HitEffect": "Generic Hit", - "Projectile": "GiantCannonball1", - "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "basic_cannon_lvl11_base", - "AirTargets": false, - "GroundTargets": true, - "PickUpEffect": "Basic Turret Pickup", - "PlacingEffect": "Basic Turret Placing", - "AnimateTurret": true, - "StrengthWeight": 4821, - "PenetratingProjectile": true, - "PenetratingRadius": 100, - "PenetratingExtraRange": 4800, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - }, - "10": { - "BuildingLevel": 10, - "TID": "TID_BUILDING_GIANT_CANNON", - "InfoTID": "TID_GIANT_CANNON_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "megaCannon_lvl10", - "ExportNameConstruction": "tower_turret_const", - "BuildTimeD": 12, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 5700000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "Hitpoints": 2400, - "RegenTime": 1, - "AttackRange": 950, - "AttackSpeed": 5000, - "Damage": 483, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Giant Cannon Attack", - "HitEffect": "Generic Hit", - "Projectile": "GiantCannonball1", - "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "basic_cannon_lvl11_base", - "AirTargets": false, - "GroundTargets": true, - "PickUpEffect": "Basic Turret Pickup", - "PlacingEffect": "Basic Turret Placing", - "AnimateTurret": true, - "StrengthWeight": 4900, - "PenetratingProjectile": true, - "PenetratingRadius": 100, - "PenetratingExtraRange": 4800, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "Defense2" - } - }, - "Gem Mine": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_GEM_MINE", - "InfoTID": "TID_GEM_MINE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings2.sc", - "ExportName": "gem_mine_lvl1", - "ExportNameConstruction": "goldmine_const", - "ExportNameLocked": "gem_mine_broken", - "BuildTimeD": 0, - "BuildTimeH": 1, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 120000, - "TownHallLevel": 3, - "CapitalHallLevel": 3, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "goldmine_upg", - "ProducesResource": "Diamonds", - "ResourcePer100Hours": 9, - "ResourceMax": 10, - "ResourceIconLimit": 1, - "Hitpoints": 300, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "goldmine_base", - "PickUpEffect": "Gold Mine Pickup", - "PlacingEffect": "Gold Mine Placing", - "Locked": true, - "StartingHomeCount": 1, - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 100, - "Stage": 1 - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_GEM_MINE", - "InfoTID": "TID_GEM_MINE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings2.sc", - "ExportName": "gem_mine_lvl2", - "ExportNameConstruction": "goldmine_const", - "ExportNameLocked": "gem_mine_broken", - "BuildTimeD": 0, - "BuildTimeH": 2, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 180000, - "TownHallLevel": 3, - "CapitalHallLevel": 3, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "goldmine_upg", - "ProducesResource": "Diamonds", - "ResourcePer100Hours": 10, - "ResourceMax": 11, - "ResourceIconLimit": 1, - "Hitpoints": 350, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "goldmine_base", - "PickUpEffect": "Gold Mine Pickup", - "PlacingEffect": "Gold Mine Placing", - "Locked": true, - "StartingHomeCount": 1, - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 100, - "Stage": 1 - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_GEM_MINE", - "InfoTID": "TID_GEM_MINE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings2.sc", - "ExportName": "gem_mine_lvl3", - "ExportNameConstruction": "goldmine_const", - "ExportNameLocked": "gem_mine_broken", - "BuildTimeD": 0, - "BuildTimeH": 6, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 240000, - "TownHallLevel": 3, - "CapitalHallLevel": 3, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "goldmine_upg", - "ProducesResource": "Diamonds", - "ResourcePer100Hours": 11, - "ResourceMax": 12, - "ResourceIconLimit": 1, - "Hitpoints": 400, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "goldmine_base", - "PickUpEffect": "Gold Mine Pickup", - "PlacingEffect": "Gold Mine Placing", - "Locked": true, - "StartingHomeCount": 1, - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 100, - "Stage": 1 - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_GEM_MINE", - "InfoTID": "TID_GEM_MINE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings2.sc", - "ExportName": "gem_mine_lvl4", - "ExportNameConstruction": "goldmine_const", - "ExportNameLocked": "gem_mine_broken", - "BuildTimeD": 0, - "BuildTimeH": 8, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 450000, - "TownHallLevel": 4, - "CapitalHallLevel": 4, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "goldmine_upg", - "ProducesResource": "Diamonds", - "ResourcePer100Hours": 12, - "ResourceMax": 13, - "ResourceIconLimit": 1, - "Hitpoints": 460, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "goldmine_base", - "PickUpEffect": "Gold Mine Pickup", - "PlacingEffect": "Gold Mine Placing", - "Locked": true, - "StartingHomeCount": 1, - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 100, - "Stage": 1 - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_GEM_MINE", - "InfoTID": "TID_GEM_MINE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings2.sc", - "ExportName": "gem_mine_lvl5", - "ExportNameConstruction": "goldmine_const", - "ExportNameLocked": "gem_mine_broken", - "BuildTimeD": 0, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 1000000, - "TownHallLevel": 5, - "CapitalHallLevel": 5, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "goldmine_upg", - "ProducesResource": "Diamonds", - "ResourcePer100Hours": 13, - "ResourceMax": 14, - "ResourceIconLimit": 1, - "Hitpoints": 550, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "goldmine_base", - "PickUpEffect": "Gold Mine Pickup", - "PlacingEffect": "Gold Mine Placing", - "Locked": true, - "StartingHomeCount": 1, - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 100, - "Stage": 1 - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_BUILDING_GEM_MINE", - "InfoTID": "TID_GEM_MINE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings2.sc", - "ExportName": "gem_mine_lvl6", - "ExportNameConstruction": "goldmine_const", - "ExportNameLocked": "gem_mine_broken", - "BuildTimeD": 1, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 1500000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "goldmine_upg", - "ProducesResource": "Diamonds", - "ResourcePer100Hours": 14, - "ResourceMax": 15, - "ResourceIconLimit": 1, - "Hitpoints": 650, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "goldmine_base", - "PickUpEffect": "Gold Mine Pickup", - "PlacingEffect": "Gold Mine Placing", - "Locked": true, - "StartingHomeCount": 1, - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 100, - "Stage": 1 - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_BUILDING_GEM_MINE", - "InfoTID": "TID_GEM_MINE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings2.sc", - "ExportName": "gem_mine_lvl7", - "ExportNameConstruction": "goldmine_const", - "ExportNameLocked": "gem_mine_broken", - "BuildTimeD": 2, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 2500000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "goldmine_upg", - "ProducesResource": "Diamonds", - "ResourcePer100Hours": 16, - "ResourceMax": 16, - "ResourceIconLimit": 1, - "Hitpoints": 750, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "goldmine_base", - "PickUpEffect": "Gold Mine Pickup", - "PlacingEffect": "Gold Mine Placing", - "Locked": true, - "StartingHomeCount": 1, - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 100, - "Stage": 1 - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_BUILDING_GEM_MINE", - "InfoTID": "TID_GEM_MINE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings2.sc", - "ExportName": "gem_mine_lvl8", - "ExportNameConstruction": "goldmine_const", - "ExportNameLocked": "gem_mine_broken", - "BuildTimeD": 4, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 3500000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "goldmine_upg", - "ProducesResource": "Diamonds", - "ResourcePer100Hours": 18, - "ResourceMax": 17, - "ResourceIconLimit": 1, - "Hitpoints": 850, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "goldmine_base", - "PickUpEffect": "Gold Mine Pickup", - "PlacingEffect": "Gold Mine Placing", - "Locked": true, - "StartingHomeCount": 1, - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 100, - "Stage": 1 - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_BUILDING_GEM_MINE", - "InfoTID": "TID_GEM_MINE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings2.sc", - "ExportName": "gem_mine_lvl9", - "ExportNameConstruction": "goldmine_const", - "ExportNameLocked": "gem_mine_broken", - "BuildTimeD": 6, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 4500000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "goldmine_upg", - "ProducesResource": "Diamonds", - "ResourcePer100Hours": 20, - "ResourceMax": 18, - "ResourceIconLimit": 1, - "Hitpoints": 1000, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "goldmine_base", - "PickUpEffect": "Gold Mine Pickup", - "PlacingEffect": "Gold Mine Placing", - "Locked": true, - "StartingHomeCount": 1, - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 100, - "Stage": 1 - }, - "10": { - "BuildingLevel": 10, - "TID": "TID_BUILDING_GEM_MINE", - "InfoTID": "TID_GEM_MINE_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings2.sc", - "ExportName": "gem_mine_lvl10", - "ExportNameConstruction": "goldmine_const", - "ExportNameLocked": "gem_mine_broken", - "BuildTimeD": 8, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 5500000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "goldmine_upg", - "ProducesResource": "Diamonds", - "ResourcePer100Hours": 21, - "ResourceMax": 19, - "ResourceIconLimit": 1, - "Hitpoints": 1150, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "goldmine_base", - "PickUpEffect": "Gold Mine Pickup", - "PlacingEffect": "Gold Mine Placing", - "Locked": true, - "StartingHomeCount": 1, - "VillageType": 1, - "RedMul": 245, - "GreenMul": 245, - "BlueMul": 255, - "RedAdd": 0, - "GreenAdd": 0, - "BlueAdd": 10, - "HintPriority": 100, - "Stage": 1 - } - }, - "Workshop": { - "1": { - "BuildingLevel": 1, - "TID": "TID_SIEGE_WORKSHOP", - "InfoTID": "TID_SIEGE_WORKSHOP_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "siegeWorkshop_lvl1", - "ExportNameConstruction": "siegeWorkshop_const", - "BuildTimeD": 4, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 3000000, - "TownHallLevel": 12, - "CapitalHallLevel": 12, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "siegeWorkshop_upg", - "HousingSpaceSiege": 1, - "UnitProduction": 2, - "ProducesUnitsOfType": 3, - "LevelRequirementTID": "TID_REQUIRED_SIEGE_WORKSHOP_LEVEL", - "BoostCost": 5, - "Hitpoints": 1000, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_4siege_pit_rockwood_red", - "BuildingW": 4, - "BuildingH": 4, - "ExportNameBase": "siege_workshop_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 800, - "PreviewScenario": "NoCombatBuilding" - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_SIEGE_WORKSHOP", - "InfoTID": "TID_SIEGE_WORKSHOP_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "siegeWorkshop_lvl2", - "ExportNameConstruction": "siegeWorkshop_const", - "BuildTimeD": 5, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 5000000, - "TownHallLevel": 12, - "CapitalHallLevel": 12, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "siegeWorkshop_upg", - "HousingSpaceSiege": 2, - "UnitProduction": 3, - "ProducesUnitsOfType": 3, - "LevelRequirementTID": "TID_REQUIRED_SIEGE_WORKSHOP_LEVEL", - "BoostCost": 5, - "Hitpoints": 1100, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_4siege_pit_rockwood_red", - "BuildingW": 4, - "BuildingH": 4, - "ExportNameBase": "siege_workshop_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 800, - "PreviewScenario": "NoCombatBuilding" - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_SIEGE_WORKSHOP", - "InfoTID": "TID_SIEGE_WORKSHOP_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "siegeWorkshop_lvl3", - "ExportNameConstruction": "siegeWorkshop_const", - "BuildTimeD": 7, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 7000000, - "TownHallLevel": 12, - "CapitalHallLevel": 12, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "siegeWorkshop_upg", - "HousingSpaceSiege": 3, - "UnitProduction": 3, - "ProducesUnitsOfType": 3, - "LevelRequirementTID": "TID_REQUIRED_SIEGE_WORKSHOP_LEVEL", - "BoostCost": 5, - "Hitpoints": 1200, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_4siege_pit_rockwood_red", - "BuildingW": 4, - "BuildingH": 4, - "ExportNameBase": "siege_workshop_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 800, - "PreviewScenario": "NoCombatBuilding" - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_SIEGE_WORKSHOP", - "InfoTID": "TID_SIEGE_WORKSHOP_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "siegeWorkshop_lvl4", - "ExportNameConstruction": "siegeWorkshop_const", - "BuildTimeD": 10, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 9000000, - "TownHallLevel": 13, - "CapitalHallLevel": 13, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "siegeWorkshop_upg", - "HousingSpaceSiege": 3, - "UnitProduction": 3, - "ProducesUnitsOfType": 3, - "LevelRequirementTID": "TID_REQUIRED_SIEGE_WORKSHOP_LEVEL", - "BoostCost": 5, - "Hitpoints": 1300, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_4siege_pit_rockwood_red", - "BuildingW": 4, - "BuildingH": 4, - "ExportNameBase": "siege_workshop_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 800, - "PreviewScenario": "NoCombatBuilding" - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_SIEGE_WORKSHOP", - "InfoTID": "TID_SIEGE_WORKSHOP_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "siegeWorkshop_lvl5", - "ExportNameConstruction": "siegeWorkshop_const", - "BuildTimeD": 11, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 10000000, - "TownHallLevel": 13, - "CapitalHallLevel": 13, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "siegeWorkshop_upg", - "HousingSpaceSiege": 3, - "UnitProduction": 3, - "ProducesUnitsOfType": 3, - "LevelRequirementTID": "TID_REQUIRED_SIEGE_WORKSHOP_LEVEL", - "BoostCost": 5, - "Hitpoints": 1400, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_4siege_pit_rockwood_red", - "BuildingW": 4, - "BuildingH": 4, - "ExportNameBase": "siege_workshop_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 800, - "PreviewScenario": "NoCombatBuilding" - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_SIEGE_WORKSHOP", - "InfoTID": "TID_SIEGE_WORKSHOP_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "siegeWorkshop_lvl6", - "ExportNameConstruction": "siegeWorkshop_const", - "BuildTimeD": 13, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 14000000, - "TownHallLevel": 14, - "CapitalHallLevel": 14, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "siegeWorkshop_upg", - "HousingSpaceSiege": 3, - "UnitProduction": 3, - "ProducesUnitsOfType": 3, - "LevelRequirementTID": "TID_REQUIRED_SIEGE_WORKSHOP_LEVEL", - "BoostCost": 5, - "Hitpoints": 1500, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_4siege_pit_rockwood_red", - "BuildingW": 4, - "BuildingH": 4, - "ExportNameBase": "siege_workshop_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 800, - "PreviewScenario": "NoCombatBuilding" - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_SIEGE_WORKSHOP", - "InfoTID": "TID_SIEGE_WORKSHOP_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "siegeWorkshop_lvl7", - "ExportNameConstruction": "siegeWorkshop_const", - "BuildTimeD": 13, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 19000000, - "TownHallLevel": 15, - "CapitalHallLevel": 15, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "siegeWorkshop_upg", - "HousingSpaceSiege": 3, - "UnitProduction": 3, - "ProducesUnitsOfType": 3, - "LevelRequirementTID": "TID_REQUIRED_SIEGE_WORKSHOP_LEVEL", - "BoostCost": 5, - "Hitpoints": 1600, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_4siege_pit_rockwood_red", - "BuildingW": 4, - "BuildingH": 4, - "ExportNameBase": "siege_workshop_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 800, - "PreviewScenario": "NoCombatBuilding" - } - }, - "Goblin Castle": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_GOBLIN_CASTLE", - "InfoTID": "TID_BUILDING_GOBLIN_CASTLE", - "BuildingClass": "Npc", - "SWF": "sc/buildings.sc", - "ExportName": "goblin_clancastle_01", - "ExportNameConstruction": "generic_construction_state3", - "ExportNameLocked": "alliance_castle_lvl1_broken", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 10000, - "TownHallLevel": 1, - "CapitalHallLevel": 1, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredWarGold": 1000000, - "MaxStoredWarElixir": 1000000, - "MaxStoredWarDarkElixir": 10000, - "LootOnDestruction": true, - "Bunker": true, - "HousingSpace": 50, - "HousingSpaceAlt": 0, - "HousingSpaceSiege": 0, - "Hitpoints": 4000, - "RegenTime": 10, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "alliance_castle_lvl1_broken", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "alliance_castle_base", - "PickUpEffect": "Alliance Castle Pickup", - "PlacingEffect": "Alliance Castle Placing", - "Locked": true, - "StartingHomeCount": 1 - } - }, - "Foreboding Cave": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_DRAGON_CAVE", - "InfoTID": "TID_BUILDING_DRAGON_CAVE", - "BuildingClass": "Npc", - "SWF": "sc/buildings.sc", - "ExportName": "deco_dragoncave_01", - "ExportNameConstruction": "generic_construction_state3", - "ExportNameLocked": "alliance_castle_lvl1_broken", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 10000, - "TownHallLevel": 1, - "CapitalHallLevel": 1, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "alliance_castle_upg", - "MaxStoredWarGold": 1000000, - "MaxStoredWarElixir": 1000000, - "MaxStoredWarDarkElixir": 10000, - "LootOnDestruction": true, - "Bunker": true, - "HousingSpace": 50, - "HousingSpaceAlt": 0, - "HousingSpaceSiege": 0, - "Hitpoints": 25000, - "RegenTime": 10, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "alliance_castle_lvl1_broken", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "alliance_castle_base", - "PickUpEffect": "Alliance Castle Pickup", - "PlacingEffect": "Alliance Castle Placing", - "Locked": true, - "StartingHomeCount": 1 - } - }, - "Lava Launcher": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_LAVA_LAUNCHER", - "InfoTID": "TID_LAVA_LAUNCHER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "Lava_Launcher_lvl1", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 2, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 3000000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 500, - "RegenTime": 1, - "AttackRange": 1300, - "AttackSpeed": 7000, - "CoolDownOverride": 3000, - "Damage": 50, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Lavalauncher Attack", - "HitEffect": "Mortar Hit lvl8", - "Projectile": "Lava Ammo1", - "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "MinAttackRange": 600, - "DamageRadius": 300, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "AnimateTurret": true, - "StrengthWeight": 5720, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "DefenseLongRange2b" - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_LAVA_LAUNCHER", - "InfoTID": "TID_LAVA_LAUNCHER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "Lava_Launcher_lvl2", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 3, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 3100000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 575, - "RegenTime": 1, - "AttackRange": 1300, - "AttackSpeed": 7000, - "CoolDownOverride": 3000, - "Damage": 55, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Lavalauncher Attack", - "HitEffect": "Mortar Hit lvl8", - "Projectile": "Lava Ammo2", - "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "MinAttackRange": 600, - "DamageRadius": 300, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "AnimateTurret": true, - "StrengthWeight": 5940, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "DefenseLongRange2b" - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_LAVA_LAUNCHER", - "InfoTID": "TID_LAVA_LAUNCHER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "Lava_Launcher_lvl3", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 4, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 3200000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 660, - "RegenTime": 1, - "AttackRange": 1300, - "AttackSpeed": 7000, - "CoolDownOverride": 3000, - "Damage": 61, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Lavalauncher Attack", - "HitEffect": "Mortar Hit lvl8", - "Projectile": "Lava Ammo3", - "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "MinAttackRange": 600, - "DamageRadius": 300, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "AnimateTurret": true, - "StrengthWeight": 6160, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "DefenseLongRange2b" - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_LAVA_LAUNCHER", - "InfoTID": "TID_LAVA_LAUNCHER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "Lava_Launcher_lvl4", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 5, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 3400000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 760, - "RegenTime": 1, - "AttackRange": 1300, - "AttackSpeed": 7000, - "CoolDownOverride": 3000, - "Damage": 67, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Lavalauncher Attack", - "HitEffect": "Mortar Hit lvl8", - "Projectile": "Lava Ammo4", - "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "MinAttackRange": 600, - "DamageRadius": 300, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "AnimateTurret": true, - "StrengthWeight": 6400, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "DefenseLongRange2b" - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_LAVA_LAUNCHER", - "InfoTID": "TID_LAVA_LAUNCHER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "Lava_Launcher_lvl5", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 6, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 3700000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 875, - "RegenTime": 1, - "AttackRange": 1300, - "AttackSpeed": 7000, - "CoolDownOverride": 3000, - "Damage": 73, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Lavalauncher Attack", - "HitEffect": "Mortar Hit lvl8", - "Projectile": "Lava Ammo5", - "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "MinAttackRange": 600, - "DamageRadius": 300, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "AnimateTurret": true, - "StrengthWeight": 6640, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "DefenseLongRange2b" - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_BUILDING_LAVA_LAUNCHER", - "InfoTID": "TID_LAVA_LAUNCHER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "Lava_Launcher_lvl6", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 7, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 4000000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 1050, - "RegenTime": 1, - "AttackRange": 1300, - "AttackSpeed": 7000, - "CoolDownOverride": 3000, - "Damage": 81, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Lavalauncher Attack", - "HitEffect": "Mortar Hit lvl8", - "Projectile": "Lava Ammo6", - "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "MinAttackRange": 600, - "DamageRadius": 300, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "AnimateTurret": true, - "StrengthWeight": 6900, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "DefenseLongRange2b" - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_BUILDING_LAVA_LAUNCHER", - "InfoTID": "TID_LAVA_LAUNCHER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "Lava_Launcher_lvl7", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 8, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 4300000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 1250, - "RegenTime": 1, - "AttackRange": 1300, - "AttackSpeed": 7000, - "CoolDownOverride": 3000, - "Damage": 89, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Lavalauncher Attack", - "HitEffect": "Mortar Hit lvl8", - "Projectile": "Lava Ammo7", - "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "MinAttackRange": 600, - "DamageRadius": 300, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "AnimateTurret": true, - "StrengthWeight": 7160, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "DefenseLongRange2b" - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_BUILDING_LAVA_LAUNCHER", - "InfoTID": "TID_LAVA_LAUNCHER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "Lava_Launcher_lvl8", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 10, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 4600000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 1450, - "RegenTime": 1, - "AttackRange": 1300, - "AttackSpeed": 7000, - "CoolDownOverride": 3000, - "Damage": 97, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Lavalauncher Attack", - "HitEffect": "Mortar Hit lvl8", - "Projectile": "Lava Ammo8", - "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "MinAttackRange": 600, - "DamageRadius": 300, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "AnimateTurret": true, - "StrengthWeight": 7440, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "DefenseLongRange2b" - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_BUILDING_LAVA_LAUNCHER", - "InfoTID": "TID_LAVA_LAUNCHER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "Lava_Launcher_lvl9", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 11, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 4900000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 1650, - "RegenTime": 1, - "AttackRange": 1300, - "AttackSpeed": 7000, - "CoolDownOverride": 3000, - "Damage": 107, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Lavalauncher Attack", - "HitEffect": "Mortar Hit lvl8", - "Projectile": "Lava Ammo9", - "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "MinAttackRange": 600, - "DamageRadius": 300, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "AnimateTurret": true, - "StrengthWeight": 7700, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "DefenseLongRange2b" - }, - "10": { - "BuildingLevel": 10, - "TID": "TID_BUILDING_LAVA_LAUNCHER", - "InfoTID": "TID_LAVA_LAUNCHER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings2.sc", - "ExportName": "Lava_Launcher_lvl10", - "ExportNameConstruction": "mortar_const", - "BuildTimeD": 12, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 5900000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "mortar_upg", - "Hitpoints": 1850, - "RegenTime": 1, - "AttackRange": 1300, - "AttackSpeed": 7000, - "CoolDownOverride": 3000, - "Damage": 118, - "RandomHitPosition": true, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Lavalauncher Attack", - "HitEffect": "Mortar Hit lvl8", - "Projectile": "Lava Ammo10", - "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "mortar_base", - "AirTargets": false, - "GroundTargets": true, - "MinAttackRange": 600, - "DamageRadius": 300, - "PickUpEffect": "Mortar Pickup", - "PlacingEffect": "Mortar Placing", - "AnimateTurret": true, - "StrengthWeight": 8000, - "VillageType": 1, - "HintPriority": 150, - "PreviewScenario": "DefenseLongRange2b" - } - }, - "B.O.B's Hut": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BOB_HUT", - "InfoTID": "TID_BOB_HUT_INFO", - "BuildingClass": "Worker2", - "SWF": "sc/buildings2.sc", - "ExportName": "new_builders_hut_arto_lvl5_a", - "ExportNameConstruction": "worker_building_const", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 0, - "TownHallLevel": 1, - "CapitalHallLevel": 1, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "worker_building_upg", - "BoostCost": 500, - "Hitpoints": 250, - "RegenTime": 20, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_darkbrown", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "worker_building_base", - "PickUpEffect": "Worker Building Pickup", - "PlacingEffect": "Worker Building Placing" - } - }, - "B.O.B Control": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BOB_UNLOCK_BUILDING", - "InfoTID": "TID_BOB_UNLOCK_BUILDING_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings2.sc", - "ExportName": "new_builders_hut_arto_lvl1", - "ExportNameConstruction": "worker_building_const", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 100000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "worker_building_upg", - "Hitpoints": 250, - "RegenTime": 20, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_darkbrown", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "worker_building_base", - "PickUpEffect": "Worker Building Pickup", - "PlacingEffect": "Worker Building Placing", - "VillageType": 1, - "HintPriority": 300, - "UpgradeTasks": "Arto Upgrade Tasks", - "UpgradeTasksRequired": 1, - "Stage": 2 - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BOB_UNLOCK_BUILDING", - "InfoTID": "TID_BOB_UNLOCK_BUILDING_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings2.sc", - "ExportName": "new_builders_hut_arto_lvl2", - "ExportNameConstruction": "worker_building_const", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 500000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "worker_building_upg", - "Hitpoints": 250, - "RegenTime": 20, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_darkbrown", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "worker_building_base", - "PickUpEffect": "Worker Building Pickup", - "PlacingEffect": "Worker Building Placing", - "VillageType": 1, - "HintPriority": 300, - "UpgradeTasks": "Arto Upgrade Tasks", - "UpgradeTasksRequired": 2, - "Stage": 2 - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BOB_UNLOCK_BUILDING", - "InfoTID": "TID_BOB_UNLOCK_BUILDING_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings2.sc", - "ExportName": "new_builders_hut_arto_lvl3", - "ExportNameConstruction": "worker_building_const", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 1000000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "worker_building_upg", - "Hitpoints": 250, - "RegenTime": 20, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_darkbrown", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "worker_building_base", - "PickUpEffect": "Worker Building Pickup", - "PlacingEffect": "Worker Building Placing", - "VillageType": 1, - "HintPriority": 300, - "UpgradeTasks": "Arto Upgrade Tasks", - "UpgradeTasksRequired": 3, - "Stage": 2 - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BOB_UNLOCK_BUILDING", - "InfoTID": "TID_BOB_UNLOCK_BUILDING_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings2.sc", - "ExportName": "new_builders_hut_arto_lvl4", - "ExportNameConstruction": "worker_building_const", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 2000000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "worker_building_upg", - "Hitpoints": 250, - "RegenTime": 20, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_darkbrown", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "worker_building_base", - "PickUpEffect": "Worker Building Pickup", - "PlacingEffect": "Worker Building Placing", - "VillageType": 1, - "HintPriority": 300, - "UpgradeTasks": "Arto Upgrade Tasks", - "UpgradeTasksRequired": 4, - "Stage": 2 - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BOB_UNLOCK_BUILDING", - "InfoTID": "TID_BOB_UNLOCK_BUILDING_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings2.sc", - "ExportName": "new_builders_hut_arto_lvl5", - "ExportNameConstruction": "worker_building_const", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 3000000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "worker_building_upg", - "Hitpoints": 250, - "RegenTime": 20, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_darkbrown", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "worker_building_base", - "PickUpEffect": "Worker Building Pickup", - "PlacingEffect": "Worker Building Placing", - "VillageType": 1, - "HintPriority": 300, - "UpgradeTasks": "Arto Upgrade Tasks", - "Stage": 2 - } - }, - "Royal Champion": { - "1": { - "BuildingLevel": 1, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_ROYAL_CHAMPION_INFO", - "BuildingClass": "Army", - "ShopBuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "heroaltar_royal_champion_lvl1", - "ExportNameConstruction": "heroaltar_barbarian_king_const", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "DarkElixir", - "BuildCost": 50000, - "TownHallLevel": 13, - "CapitalHallLevel": 13, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "heroaltar_elder_upg", - "BoostCost": 5, - "Hitpoints": 250, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "heroaltar_base", - "PickUpEffect": "Hero Altar Pickup", - "PlacingEffect": "Hero Altar Place", - "IsHeroBarrack": true, - "HeroType": "Warrior Princess", - "HintPriority": 700 - } - }, - "Scattershot": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_SCATTERSHOT", - "InfoTID": "TID_BUILDING_SCATTERSHOT_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "ice_breaker_lvl1", - "ExportNameConstruction": "tower_turret_const", - "BuildTimeD": 10, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 11000000, - "TownHallLevel": 13, - "CapitalHallLevel": 13, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "ExportNameUpgradeAnim": "ice_breaker_lvl1_upgrade", - "Hitpoints": 3600, - "RegenTime": 20, - "AttackRange": 1000, - "AttackSpeed": 3228, - "CoolDownOverride": 1500, - "DPS": 125, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Ice Breaker Attack", - "Projectile": "Ice Breaker Ammo1", - "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "rapidfire_base", - "AirTargets": true, - "GroundTargets": true, - "AmmoCount": 90, - "AmmoResource": "Elixir", - "AmmoCost": 40000, - "MinAttackRange": 300, - "DamageRadius": 100, - "PickUpEffect": "Scattershot Pickup", - "PlacingEffect": "Scattershot Placing", - "StrengthWeight": 700, - "NewTargetAttackDelay": 2200, - "HintPriority": 150, - "AnimationActionFrame": 5, - "PreviewScenario": "DefenseLongRange3" - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_SCATTERSHOT", - "InfoTID": "TID_BUILDING_SCATTERSHOT_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "ice_breaker_lvl2", - "ExportNameConstruction": "tower_turret_const", - "BuildTimeD": 11, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 12000000, - "TownHallLevel": 13, - "CapitalHallLevel": 13, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "ExportNameUpgradeAnim": "ice_breaker_lvl2_upgrade", - "Hitpoints": 4200, - "RegenTime": 22, - "AttackRange": 1000, - "AttackSpeed": 3228, - "CoolDownOverride": 1500, - "DPS": 150, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Ice Breaker Attack", - "Projectile": "Ice Breaker Ammo2", - "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "rapidfire_base", - "AirTargets": true, - "GroundTargets": true, - "AmmoCount": 90, - "AmmoResource": "Elixir", - "AmmoCost": 40000, - "MinAttackRange": 300, - "DamageRadius": 100, - "PickUpEffect": "Scattershot Pickup", - "PlacingEffect": "Scattershot Placing", - "StrengthWeight": 700, - "NewTargetAttackDelay": 2200, - "HintPriority": 150, - "AnimationActionFrame": 5, - "PreviewScenario": "DefenseLongRange3" - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_SCATTERSHOT", - "InfoTID": "TID_BUILDING_SCATTERSHOT_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "ice_breaker_lvl3", - "ExportNameConstruction": "tower_turret_const", - "BuildTimeD": 13, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 12600000, - "TownHallLevel": 14, - "CapitalHallLevel": 14, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "ExportNameUpgradeAnim": "ice_breaker_lvl3_upgrade", - "Hitpoints": 4800, - "RegenTime": 24, - "AttackRange": 1000, - "AttackSpeed": 3228, - "CoolDownOverride": 1500, - "DPS": 175, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Ice Breaker Attack", - "Projectile": "Ice Breaker Ammo3", - "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "rapidfire_base", - "AirTargets": true, - "GroundTargets": true, - "AmmoCount": 90, - "AmmoResource": "Elixir", - "AmmoCost": 40000, - "MinAttackRange": 300, - "DamageRadius": 100, - "PickUpEffect": "Scattershot Pickup", - "PlacingEffect": "Scattershot Placing", - "StrengthWeight": 700, - "NewTargetAttackDelay": 2200, - "HintPriority": 150, - "AnimationActionFrame": 5, - "PreviewScenario": "DefenseLongRange3" - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_SCATTERSHOT", - "InfoTID": "TID_BUILDING_SCATTERSHOT_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "ice_breaker_lvl4", - "ExportNameConstruction": "tower_turret_const", - "BuildTimeD": 14, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 21300000, - "TownHallLevel": 15, - "CapitalHallLevel": 15, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "alliance_castle_upg", - "ExportNameUpgradeAnim": "ice_breaker_lvl4_upgrade", - "Hitpoints": 5100, - "RegenTime": 24, - "AttackRange": 1000, - "AttackSpeed": 3228, - "CoolDownOverride": 1500, - "DPS": 185, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Ice Breaker Attack", - "Projectile": "Ice Breaker Ammo4", - "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "rapidfire_base", - "AirTargets": true, - "GroundTargets": true, - "AmmoCount": 90, - "AmmoResource": "Elixir", - "AmmoCost": 40000, - "MinAttackRange": 300, - "DamageRadius": 100, - "PickUpEffect": "Scattershot Pickup", - "PlacingEffect": "Scattershot Placing", - "StrengthWeight": 700, - "NewTargetAttackDelay": 2200, - "HintPriority": 150, - "AnimationActionFrame": 5, - "PreviewScenario": "DefenseLongRange3" - } - }, - "Pet House": { - "1": { - "BuildingLevel": 1, - "TID": "TID_PET_SHOP", - "InfoTID": "TID_PET_SHOP_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "pet_house_lvl1", - "ExportNameConstruction": "laboratory_const", - "BuildTimeD": 12, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 10000000, - "TownHallLevel": 14, - "CapitalHallLevel": 14, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "laboratory_upg", - "UpgradesUnitType": "PET", - "Hitpoints": 700, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "pet_house_lvl1_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 1000, - "PreviewScenario": "NoCombatBuilding" - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_PET_SHOP", - "InfoTID": "TID_PET_SHOP_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "pet_house_lvl2", - "ExportNameConstruction": "laboratory_const", - "BuildTimeD": 12, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 12000000, - "TownHallLevel": 14, - "CapitalHallLevel": 14, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "laboratory_upg", - "UpgradesUnitType": "PET", - "Hitpoints": 800, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "pet_house_lvl2_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 1000, - "PreviewScenario": "NoCombatBuilding" - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_PET_SHOP", - "InfoTID": "TID_PET_SHOP_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "pet_house_lvl3", - "ExportNameConstruction": "laboratory_const", - "BuildTimeD": 12, - "BuildTimeH": 18, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 14000000, - "TownHallLevel": 14, - "CapitalHallLevel": 14, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "laboratory_upg", - "UpgradesUnitType": "PET", - "Hitpoints": 900, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "pet_house_lvl3_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 1000, - "PreviewScenario": "NoCombatBuilding" - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_PET_SHOP", - "InfoTID": "TID_PET_SHOP_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "pet_house_lvl4", - "ExportNameConstruction": "laboratory_const", - "BuildTimeD": 13, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 16000000, - "TownHallLevel": 14, - "CapitalHallLevel": 14, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "laboratory_upg", - "UpgradesUnitType": "PET", - "Hitpoints": 1000, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "pet_house_lvl4_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 1000, - "PreviewScenario": "NoCombatBuilding" - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_PET_SHOP", - "InfoTID": "TID_PET_SHOP_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "pet_house_lvl5", - "ExportNameConstruction": "laboratory_const", - "BuildTimeD": 13, - "BuildTimeH": 6, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 19750000, - "TownHallLevel": 15, - "CapitalHallLevel": 15, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "laboratory_upg", - "UpgradesUnitType": "PET", - "Hitpoints": 1050, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "pet_house_lvl5_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 1000, - "PreviewScenario": "NoCombatBuilding" - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_PET_SHOP", - "InfoTID": "TID_PET_SHOP_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "pet_house_lvl6", - "ExportNameConstruction": "laboratory_const", - "BuildTimeD": 13, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 20000000, - "TownHallLevel": 15, - "CapitalHallLevel": 15, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "laboratory_upg", - "UpgradesUnitType": "PET", - "Hitpoints": 1100, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "pet_house_lvl6_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 1000, - "PreviewScenario": "NoCombatBuilding" - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_PET_SHOP", - "InfoTID": "TID_PET_SHOP_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "pet_house_lvl7", - "ExportNameConstruction": "laboratory_const", - "BuildTimeD": 13, - "BuildTimeH": 18, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 20250000, - "TownHallLevel": 15, - "CapitalHallLevel": 15, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "laboratory_upg", - "UpgradesUnitType": "PET", - "Hitpoints": 1150, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "pet_house_lvl7_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 1000, - "PreviewScenario": "NoCombatBuilding" - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_PET_SHOP", - "InfoTID": "TID_PET_SHOP_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "pet_house_lvl8", - "ExportNameConstruction": "laboratory_const", - "BuildTimeD": 14, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 20500000, - "TownHallLevel": 15, - "CapitalHallLevel": 15, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "laboratory_upg", - "UpgradesUnitType": "PET", - "Hitpoints": 1200, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "pet_house_lvl8_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 1000, - "PreviewScenario": "NoCombatBuilding" - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_PET_SHOP", - "InfoTID": "TID_PET_SHOP_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "pet_house_lvl9", - "ExportNameConstruction": "laboratory_const", - "BuildTimeD": 15, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir", - "BuildCost": 21000000, - "TownHallLevel": 16, - "CapitalHallLevel": 16, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "laboratory_upg", - "UpgradesUnitType": "PET", - "Hitpoints": 1250, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "pet_house_lvl9_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "HintPriority": 1000, - "PreviewScenario": "NoCombatBuilding" - } - }, - "Blacksmith": { - "1": { - "BuildingLevel": 1, - "TID": "TID_SMITHY", - "InfoTID": "TID_SMITHY_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "blacksmith_lvl1", - "ExportNameConstruction": "blacksmith_const", - "BuildTimeD": 1, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 750000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "laboratory_upg", - "MaxStoredCommonOre": 10000, - "MaxStoredRareOre": 1000, - "MaxStoredEpicOre": 200, - "Blacksmith": true, - "Hitpoints": 700, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Blacksmith Pickup", - "PlacingEffect": "Blacksmith Placing", - "HintPriority": 1000, - "PreviewScenario": "NoCombatBuilding" - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_SMITHY", - "InfoTID": "TID_SMITHY_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "blacksmith_lvl1", - "ExportNameConstruction": "blacksmith_const", - "BuildTimeD": 2, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 1700000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "laboratory_upg", - "MaxStoredCommonOre": 15000, - "MaxStoredRareOre": 1500, - "MaxStoredEpicOre": 300, - "Blacksmith": true, - "Hitpoints": 800, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Blacksmith Pickup", - "PlacingEffect": "Blacksmith Placing", - "HintPriority": 1000, - "PreviewScenario": "NoCombatBuilding" - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_SMITHY", - "InfoTID": "TID_SMITHY_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "blacksmith_lvl2", - "ExportNameConstruction": "blacksmith_const", - "BuildTimeD": 3, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 2300000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "laboratory_upg", - "MaxStoredCommonOre": 20000, - "MaxStoredRareOre": 2000, - "MaxStoredEpicOre": 400, - "Blacksmith": true, - "Hitpoints": 900, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Blacksmith Pickup", - "PlacingEffect": "Blacksmith Placing", - "HintPriority": 1000, - "PreviewScenario": "NoCombatBuilding" - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_SMITHY", - "InfoTID": "TID_SMITHY_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "blacksmith_lvl2", - "ExportNameConstruction": "blacksmith_const", - "BuildTimeD": 4, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 3000000, - "TownHallLevel": 11, - "CapitalHallLevel": 11, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "laboratory_upg", - "MaxStoredCommonOre": 25000, - "MaxStoredRareOre": 2500, - "MaxStoredEpicOre": 500, - "Blacksmith": true, - "Hitpoints": 1000, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Blacksmith Pickup", - "PlacingEffect": "Blacksmith Placing", - "HintPriority": 1000, - "PreviewScenario": "NoCombatBuilding" - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_SMITHY", - "InfoTID": "TID_SMITHY_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "blacksmith_lvl3", - "ExportNameConstruction": "blacksmith_const", - "BuildTimeD": 5, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 5500000, - "TownHallLevel": 12, - "CapitalHallLevel": 12, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "laboratory_upg", - "MaxStoredCommonOre": 30000, - "MaxStoredRareOre": 3000, - "MaxStoredEpicOre": 600, - "Blacksmith": true, - "Hitpoints": 1100, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Blacksmith Pickup", - "PlacingEffect": "Blacksmith Placing", - "HintPriority": 1000, - "PreviewScenario": "NoCombatBuilding" - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_SMITHY", - "InfoTID": "TID_SMITHY_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "blacksmith_lvl3", - "ExportNameConstruction": "blacksmith_const", - "BuildTimeD": 6, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 8500000, - "TownHallLevel": 13, - "CapitalHallLevel": 13, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "laboratory_upg", - "MaxStoredCommonOre": 35000, - "MaxStoredRareOre": 3500, - "MaxStoredEpicOre": 700, - "Blacksmith": true, - "Hitpoints": 1200, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Blacksmith Pickup", - "PlacingEffect": "Blacksmith Placing", - "HintPriority": 1000, - "PreviewScenario": "NoCombatBuilding" - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_SMITHY", - "InfoTID": "TID_SMITHY_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "blacksmith_lvl4", - "ExportNameConstruction": "blacksmith_const", - "BuildTimeD": 7, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 12000000, - "TownHallLevel": 14, - "CapitalHallLevel": 14, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "laboratory_upg", - "MaxStoredCommonOre": 40000, - "MaxStoredRareOre": 4000, - "MaxStoredEpicOre": 800, - "Blacksmith": true, - "Hitpoints": 1300, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Blacksmith Pickup", - "PlacingEffect": "Blacksmith Placing", - "HintPriority": 1000, - "PreviewScenario": "NoCombatBuilding" - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_SMITHY", - "InfoTID": "TID_SMITHY_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "blacksmith_lvl4", - "ExportNameConstruction": "blacksmith_const", - "BuildTimeD": 8, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 14000000, - "TownHallLevel": 15, - "CapitalHallLevel": 15, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "laboratory_upg", - "MaxStoredCommonOre": 45000, - "MaxStoredRareOre": 4500, - "MaxStoredEpicOre": 900, - "Blacksmith": true, - "Hitpoints": 1400, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Blacksmith Pickup", - "PlacingEffect": "Blacksmith Placing", - "HintPriority": 1000, - "PreviewScenario": "NoCombatBuilding" - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_SMITHY", - "InfoTID": "TID_SMITHY_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings.sc", - "ExportName": "blacksmith_lvl5", - "ExportNameConstruction": "blacksmith_const", - "BuildTimeD": 9, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 16000000, - "TownHallLevel": 16, - "CapitalHallLevel": 16, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "laboratory_upg", - "MaxStoredCommonOre": 50000, - "MaxStoredRareOre": 5000, - "MaxStoredEpicOre": 1000, - "Blacksmith": true, - "Hitpoints": 1500, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "barracks_base", - "PickUpEffect": "Blacksmith Pickup", - "PlacingEffect": "Blacksmith Placing", - "HintPriority": 1000, - "PreviewScenario": "NoCombatBuilding" - } - }, - "Spell Tower": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_SPELL_TOWER", - "InfoTID": "TID_BUILDING_SPELL_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "spell_tower_lvl1", - "ExportNameConstruction": "generic_construction_state2", - "BuildTimeD": 12, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 14000000, - "TownHallLevel": 15, - "CapitalHallLevel": 15, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "air_mortar_upg", - "Hitpoints": 2500, - "RegenTime": 20, - "AttackRange": 800, - "DestroyEffect": "Building Destroyed", - "HitEffect": "Generic Hit", - "ExportNameDamaged": "destroyedBuilding_2l_pit_rockwood", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "dark_tower_base", - "PickUpEffect": "Spell Tower Pickup", - "PlacingEffect": "Spell Tower Placing", - "StrengthWeight": 1000, - "HintPriority": 150, - "PreviewScenario": "NoCombatBuilding", - "UnlockWeaponMode": "SpellTowerRage" - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_SPELL_TOWER", - "InfoTID": "TID_BUILDING_SPELL_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "spell_tower_lvl2_rage", - "ExportNameConstruction": "generic_construction_state2", - "BuildTimeD": 12, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 16000000, - "TownHallLevel": 15, - "CapitalHallLevel": 15, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "air_mortar_upg", - "Hitpoints": 2800, - "RegenTime": 20, - "AttackRange": 800, - "DestroyEffect": "Building Destroyed", - "HitEffect": "Generic Hit", - "ExportNameDamaged": "destroyedBuilding_2l_pit_rockwood", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "dark_tower_base", - "PickUpEffect": "Spell Tower Pickup", - "PlacingEffect": "Spell Tower Placing", - "StrengthWeight": 1400, - "HintPriority": 150, - "PreviewScenario": "NoCombatBuilding", - "UnlockWeaponMode": "SpellTowerPoison" - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_SPELL_TOWER", - "InfoTID": "TID_BUILDING_SPELL_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "spell_tower_lvl3_rage", - "ExportNameConstruction": "generic_construction_state2", - "BuildTimeD": 13, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 18000000, - "TownHallLevel": 15, - "CapitalHallLevel": 15, - "Width": 2, - "Height": 2, - "ExportNameBuildAnim": "air_mortar_upg", - "Hitpoints": 3100, - "RegenTime": 20, - "AttackRange": 800, - "DestroyEffect": "Building Destroyed", - "HitEffect": "Generic Hit", - "ExportNameDamaged": "destroyedBuilding_2l_pit_rockwood", - "BuildingW": 1, - "BuildingH": 1, - "ExportNameBase": "dark_tower_base", - "PickUpEffect": "Spell Tower Pickup", - "PlacingEffect": "Spell Tower Placing", - "StrengthWeight": 1800, - "HintPriority": 150, - "PreviewScenario": "NoCombatBuilding", - "UnlockWeaponMode": "SpellTowerInvisibility" - } - }, - "Monolith": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_MONOLITH", - "InfoTID": "TID_BUILDING_MONOLITH_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "monolith_lvl_1", - "ExportNameConstruction": "tower_turret_const", - "BuildTimeD": 13, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "DarkElixir", - "BuildCost": 300000, - "TownHallLevel": 15, - "CapitalHallLevel": 15, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "ExportNameUpgradeAnim": "monolith_lvl_1_upgrade", - "Hitpoints": 4747, - "RegenTime": 25, - "AttackRange": 1100, - "AttackSpeed": 1500, - "CoolDownOverride": 750, - "DPS": 150, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Monolith Attack", - "HitEffect": "Explosive Arrow", - "Projectile": "MonolithProjectileMin;MonolithProjectileMed;MonolithProjectileMax", - "ExportNameDamaged": "destroyedBuilding_3l_base_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "dark_tower_base", - "AirTargets": true, - "GroundTargets": true, - "PickUpEffect": "Monolith Pickup", - "PlacingEffect": "Monolith Placing", - "DefenderCount": 1, - "DefenderZ": 155, - "StrengthWeight": 1400, - "HintPriority": 150, - "AnimationActionFrame": 5, - "DamagePermilHp": 110, - "ProjectileVariantByTargetMaxHP": "600;2500", - "DefaultProjectileVariant": 3, - "PreviewScenario": "Monolith" - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_MONOLITH", - "InfoTID": "TID_BUILDING_MONOLITH_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "monolith_lvl_2", - "ExportNameConstruction": "tower_turret_const", - "BuildTimeD": 14, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "DarkElixir", - "BuildCost": 360000, - "TownHallLevel": 15, - "CapitalHallLevel": 15, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "tower_turret_upg", - "ExportNameUpgradeAnim": "monolith_lvl_2_upgrade", - "Hitpoints": 5050, - "RegenTime": 26, - "AttackRange": 1100, - "AttackSpeed": 1500, - "CoolDownOverride": 750, - "DPS": 175, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Monolith Attack", - "HitEffect": "Explosive Arrow", - "Projectile": "MonolithProjectileMin;MonolithProjectileMed;MonolithProjectileMax", - "ExportNameDamaged": "destroyedBuilding_3l_base_rockwood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "dark_tower_base", - "AirTargets": true, - "GroundTargets": true, - "PickUpEffect": "Monolith Pickup", - "PlacingEffect": "Monolith Placing", - "DefenderCount": 1, - "DefenderZ": 155, - "StrengthWeight": 1300, - "HintPriority": 150, - "AnimationActionFrame": 5, - "DamagePermilHp": 120, - "ProjectileVariantByTargetMaxHP": "650;2750", - "DefaultProjectileVariant": 3, - "PreviewScenario": "Monolith" - } - }, - "O.T.T.O's Outpost": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_OTTOS_OUTPOST", - "InfoTID": "TID_BUILDING_OTTOS_OUTPOST_INFO", - "BuildingClass": "Town Hall2", - "SWF": "sc/buildings2.sc", - "ExportName": "outpost_01", - "ExportNameNpc": "outpost_01", - "ExportNameConstruction": "town_hall_const", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 0, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "Hitpoints": 650, - "RegenTime": 1, - "DestroyEffect": "Town Hall Destroyed", - "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "townhall_base", - "PickUpEffect": "Town Hall 2 Pickup", - "PlacingEffect": "Town Hall Placing", - "DestructionXP": 1, - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 100, - "Stage": 2, - "SecondaryTroop": "Zappies", - "SecondaryTroopCnt": 2, - "SecondaryTroopLvl": 1 - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_OTTOS_OUTPOST", - "InfoTID": "TID_BUILDING_OTTOS_OUTPOST_INFO", - "BuildingClass": "Town Hall2", - "SWF": "sc/buildings2.sc", - "ExportName": "outpost_02", - "ExportNameNpc": "outpost_01", - "ExportNameConstruction": "town_hall_const", - "BuildTimeD": 1, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 1000000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "Hitpoints": 800, - "RegenTime": 1, - "DestroyEffect": "Town Hall Destroyed", - "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "townhall_base", - "PickUpEffect": "Town Hall 2 Pickup", - "PlacingEffect": "Town Hall Placing", - "DestructionXP": 2, - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 100, - "Stage": 2, - "SecondaryTroop": "Zappies", - "SecondaryTroopCnt": 2, - "SecondaryTroopLvl": 2 - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_BUILDING_OTTOS_OUTPOST", - "InfoTID": "TID_BUILDING_OTTOS_OUTPOST_INFO", - "BuildingClass": "Town Hall2", - "SWF": "sc/buildings2.sc", - "ExportName": "outpost_03", - "ExportNameNpc": "outpost_01", - "ExportNameConstruction": "town_hall_const", - "BuildTimeD": 2, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 1250000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "Hitpoints": 975, - "RegenTime": 1, - "DestroyEffect": "Town Hall Destroyed", - "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "townhall_base", - "PickUpEffect": "Town Hall 2 Pickup", - "PlacingEffect": "Town Hall Placing", - "DestructionXP": 3, - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 100, - "Stage": 2, - "SecondaryTroop": "Zappies", - "SecondaryTroopCnt": 2, - "SecondaryTroopLvl": 3 - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_BUILDING_OTTOS_OUTPOST", - "InfoTID": "TID_BUILDING_OTTOS_OUTPOST_INFO", - "BuildingClass": "Town Hall2", - "SWF": "sc/buildings2.sc", - "ExportName": "outpost_04", - "ExportNameNpc": "outpost_01", - "ExportNameConstruction": "town_hall_const", - "BuildTimeD": 3, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 1500000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "Hitpoints": 1150, - "RegenTime": 1, - "DestroyEffect": "Town Hall Destroyed", - "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "townhall_base", - "PickUpEffect": "Town Hall 2 Pickup", - "PlacingEffect": "Town Hall Placing", - "DestructionXP": 4, - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 100, - "Stage": 2, - "SecondaryTroop": "Zappies", - "SecondaryTroopCnt": 3, - "SecondaryTroopLvl": 4 - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_BUILDING_OTTOS_OUTPOST", - "InfoTID": "TID_BUILDING_OTTOS_OUTPOST_INFO", - "BuildingClass": "Town Hall2", - "SWF": "sc/buildings2.sc", - "ExportName": "outpost_05", - "ExportNameNpc": "outpost_01", - "ExportNameConstruction": "town_hall_const", - "BuildTimeD": 4, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 1750000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "Hitpoints": 1350, - "RegenTime": 1, - "DestroyEffect": "Town Hall Destroyed", - "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "townhall_base", - "PickUpEffect": "Town Hall 2 Pickup", - "PlacingEffect": "Town Hall Placing", - "DestructionXP": 5, - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 100, - "Stage": 2, - "SecondaryTroop": "Zappies", - "SecondaryTroopCnt": 3, - "SecondaryTroopLvl": 5 - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_BUILDING_OTTOS_OUTPOST", - "InfoTID": "TID_BUILDING_OTTOS_OUTPOST_INFO", - "BuildingClass": "Town Hall2", - "SWF": "sc/buildings2.sc", - "ExportName": "outpost_06", - "ExportNameNpc": "outpost_01", - "ExportNameConstruction": "town_hall_const", - "BuildTimeD": 5, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 2000000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "Hitpoints": 1600, - "RegenTime": 1, - "DestroyEffect": "Town Hall Destroyed", - "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "townhall_base", - "PickUpEffect": "Town Hall 2 Pickup", - "PlacingEffect": "Town Hall Placing", - "DestructionXP": 6, - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 100, - "Stage": 2, - "SecondaryTroop": "Zappies", - "SecondaryTroopCnt": 3, - "SecondaryTroopLvl": 6 - }, - "7": { - "BuildingLevel": 7, - "TID": "TID_BUILDING_OTTOS_OUTPOST", - "InfoTID": "TID_BUILDING_OTTOS_OUTPOST_INFO", - "BuildingClass": "Town Hall2", - "SWF": "sc/buildings2.sc", - "ExportName": "outpost_07", - "ExportNameNpc": "outpost_01", - "ExportNameConstruction": "town_hall_const", - "BuildTimeD": 7, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 3000000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "Hitpoints": 1850, - "RegenTime": 1, - "DestroyEffect": "Town Hall Destroyed", - "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "townhall_base", - "PickUpEffect": "Town Hall 2 Pickup", - "PlacingEffect": "Town Hall Placing", - "DestructionXP": 7, - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 100, - "Stage": 2, - "SecondaryTroop": "Zappies", - "SecondaryTroopCnt": 4, - "SecondaryTroopLvl": 7 - }, - "8": { - "BuildingLevel": 8, - "TID": "TID_BUILDING_OTTOS_OUTPOST", - "InfoTID": "TID_BUILDING_OTTOS_OUTPOST_INFO", - "BuildingClass": "Town Hall2", - "SWF": "sc/buildings2.sc", - "ExportName": "outpost_08", - "ExportNameNpc": "outpost_01", - "ExportNameConstruction": "town_hall_const", - "BuildTimeD": 9, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 4000000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "Hitpoints": 2150, - "RegenTime": 1, - "DestroyEffect": "Town Hall Destroyed", - "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "townhall_base", - "PickUpEffect": "Town Hall 2 Pickup", - "PlacingEffect": "Town Hall Placing", - "DestructionXP": 8, - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 100, - "Stage": 2, - "SecondaryTroop": "Zappies", - "SecondaryTroopCnt": 4, - "SecondaryTroopLvl": 8 - }, - "9": { - "BuildingLevel": 9, - "TID": "TID_BUILDING_OTTOS_OUTPOST", - "InfoTID": "TID_BUILDING_OTTOS_OUTPOST_INFO", - "BuildingClass": "Town Hall2", - "SWF": "sc/buildings2.sc", - "ExportName": "outpost_09", - "ExportNameNpc": "outpost_01", - "ExportNameConstruction": "town_hall_const", - "BuildTimeD": 10, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 5000000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "Hitpoints": 2450, - "RegenTime": 1, - "DestroyEffect": "Town Hall Destroyed", - "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "townhall_base", - "PickUpEffect": "Town Hall 2 Pickup", - "PlacingEffect": "Town Hall Placing", - "DestructionXP": 9, - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 100, - "Stage": 2, - "SecondaryTroop": "Zappies", - "SecondaryTroopCnt": 4, - "SecondaryTroopLvl": 9 - }, - "10": { - "BuildingLevel": 10, - "TID": "TID_BUILDING_OTTOS_OUTPOST", - "InfoTID": "TID_BUILDING_OTTOS_OUTPOST_INFO", - "BuildingClass": "Town Hall2", - "SWF": "sc/buildings2.sc", - "ExportName": "outpost_10", - "ExportNameNpc": "outpost_01", - "ExportNameConstruction": "town_hall_const", - "BuildTimeD": 11, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold2", - "BuildCost": 6000000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 4, - "Height": 4, - "ExportNameBuildAnim": "town_hall_upg", - "Hitpoints": 2750, - "RegenTime": 1, - "DestroyEffect": "Town Hall Destroyed", - "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", - "BuildingW": 3, - "BuildingH": 3, - "ExportNameBase": "townhall_base", - "PickUpEffect": "Town Hall 2 Pickup", - "PlacingEffect": "Town Hall Placing", - "DestructionXP": 10, - "StartingHomeCount": 1, - "VillageType": 1, - "HintPriority": 100, - "Stage": 2, - "SecondaryTroop": "Zappies", - "SecondaryTroopCnt": 5, - "SecondaryTroopLvl": 10 - } - }, - "Battle Copter": { - "1": { - "BuildingLevel": 1, - "TID": "TID_HERO_BATTLE_COPTER", - "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", - "BuildingClass": "Army", - "SWF": "sc/buildings2.sc", - "ExportName": "BB_hero_altar_flying", - "ExportNameConstruction": "air_mortar_const", - "ExportNameLocked": "BB_hero_altar_flying", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 2500000, - "TownHallLevel": 5, - "CapitalHallLevel": 5, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "heroaltar_barbarian_king_upg", - "LevelRequirementTID": "TID_REQUIRED_BUILDERS_HALL_LEVEL", - "Hitpoints": 250, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "heroaltar_base", - "PickUpEffect": "Hero Altar Pickup", - "PlacingEffect": "Hero Altar Place", - "IsHeroBarrack": true, - "HeroType": "Battle Copter", - "VillageType": 1, - "HintPriority": 700, - "Stage": 2 - } - }, - "Healing Hut": { - "1": { - "BuildingLevel": 1, - "TID": "TID_RECOVERY_BUILDING", - "InfoTID": "TID_RECOVERY_BUILDING_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings2.sc", - "ExportName": "healing_hut_01", - "ExportNameConstruction": "barracks_const", - "BuildTimeD": 1, - "BuildTimeH": 6, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 1500000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "Hitpoints": 550, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3l_base_wood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "rapidfire_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "VillageType": 1, - "HintPriority": 500, - "Stage": 2, - "HealthRecoveryPercent": 4 - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_RECOVERY_BUILDING", - "InfoTID": "TID_RECOVERY_BUILDING_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings2.sc", - "ExportName": "healing_hut_02", - "ExportNameConstruction": "barracks_const", - "BuildTimeD": 2, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 2000000, - "TownHallLevel": 6, - "CapitalHallLevel": 6, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "Hitpoints": 650, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3l_base_wood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "rapidfire_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "VillageType": 1, - "HintPriority": 500, - "Stage": 2, - "HealthRecoveryPercent": 8 - }, - "3": { - "BuildingLevel": 3, - "TID": "TID_RECOVERY_BUILDING", - "InfoTID": "TID_RECOVERY_BUILDING_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings2.sc", - "ExportName": "healing_hut_03", - "ExportNameConstruction": "barracks_const", - "BuildTimeD": 3, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 2500000, - "TownHallLevel": 7, - "CapitalHallLevel": 7, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "Hitpoints": 750, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3l_base_wood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "rapidfire_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "VillageType": 1, - "HintPriority": 500, - "Stage": 2, - "HealthRecoveryPercent": 12 - }, - "4": { - "BuildingLevel": 4, - "TID": "TID_RECOVERY_BUILDING", - "InfoTID": "TID_RECOVERY_BUILDING_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings2.sc", - "ExportName": "healing_hut_04", - "ExportNameConstruction": "barracks_const", - "BuildTimeD": 4, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 3250000, - "TownHallLevel": 8, - "CapitalHallLevel": 8, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "Hitpoints": 850, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3l_base_wood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "rapidfire_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "VillageType": 1, - "HintPriority": 500, - "Stage": 2, - "HealthRecoveryPercent": 16 - }, - "5": { - "BuildingLevel": 5, - "TID": "TID_RECOVERY_BUILDING", - "InfoTID": "TID_RECOVERY_BUILDING_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings2.sc", - "ExportName": "healing_hut_05", - "ExportNameConstruction": "barracks_const", - "BuildTimeD": 5, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 4000000, - "TownHallLevel": 9, - "CapitalHallLevel": 9, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "Hitpoints": 1000, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3l_base_wood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "rapidfire_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "VillageType": 1, - "HintPriority": 500, - "Stage": 2, - "HealthRecoveryPercent": 20 - }, - "6": { - "BuildingLevel": 6, - "TID": "TID_RECOVERY_BUILDING", - "InfoTID": "TID_RECOVERY_BUILDING_INFO", - "BuildingClass": "Army", - "SWF": "sc/buildings2.sc", - "ExportName": "healing_hut_06", - "ExportNameConstruction": "barracks_const", - "BuildTimeD": 6, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Elixir2", - "BuildCost": 5000000, - "TownHallLevel": 10, - "CapitalHallLevel": 10, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "barracks_upg", - "Hitpoints": 1150, - "RegenTime": 1, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3l_base_wood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "rapidfire_base", - "PickUpEffect": "Training Barrack Pickup", - "PlacingEffect": "Training Barrack Placing", - "VillageType": 1, - "HintPriority": 500, - "Stage": 2, - "HealthRecoveryPercent": 24 - } - }, - "Sour Elixir Cauldron": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_CLASHOWEEN_BUILDING", - "InfoTID": "TID_CLASHOWEEN_BUILDING_INFO", - "BuildingClass": "Resource", - "SWF": "sc/buildings.sc", - "ExportName": "sour_elixir_cauldron_01", - "ExportNameConstruction": "sour_elixir_cauldron_01", - "BuildTimeD": 0, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 0, - "TownHallLevel": 1, - "CapitalHallLevel": 1, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "sour_elixir_cauldron_01", - "MaxStoredSourElixir": 100000000, - "ProducesResource": "SourElixir", - "ResourcePer100Hours": 10000, - "ResourceMax": 2400, - "ResourceIconLimit": 6, - "Hitpoints": 1000, - "RegenTime": 15, - "DestroyEffect": "Building Destroyed", - "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "elixir_pump_base", - "PickUpEffect": "Elixir Pump Pickup", - "PlacingEffect": "Elixir Pump Placing", - "PreviewScenario": "NoCombatBuilding" - } - }, - "Multi-Archer Tower": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_MULTI_ARCHER_TOWER", - "InfoTID": "TID_MULTI_ARCHER_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "merged_archer_tower_lvl1", - "ExportNameConstruction": "merged_archer_tower_const", - "BuildTimeD": 14, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 20000000, - "TownHallLevel": 16, - "CapitalHallLevel": 16, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "merged_archer_tower_upg", - "Hitpoints": 5000, - "RegenTime": 25, - "AttackRange": 1000, - "AttackSpeed": 500, - "DamageMulti": 55, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "MergedArcherTower_attack", - "HitEffect": "Explosive Arrow", - "Projectile": "super_archer_tower_projectile", - "ExportNameDamaged": "destroyedBuilding_3m_grass_wood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "defense_tower_turret_base", - "AirTargets": true, - "GroundTargets": true, - "MultiTargets": true, - "NumMultiTargets": 3, - "MultiHitsTarget": true, - "PickUpEffect": "Tower Turret Pickup", - "PlacingEffect": "Tower Turret Placing", - "DefenderCharacter": "Archer12", - "DefenderCount": 3, - "DefenderZ": 197, - "StrengthWeight": 400, - "HintPriority": 150, - "PreviewScenario": "MergedArcherTower", - "MergeRequirement": "Archer Tower:21;Archer Tower:21" - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_MULTI_ARCHER_TOWER", - "InfoTID": "TID_MULTI_ARCHER_TOWER_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "merged_archer_tower_lvl2", - "ExportNameConstruction": "merged_archer_tower_const", - "BuildTimeD": 15, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 22000000, - "TownHallLevel": 16, - "CapitalHallLevel": 16, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "merged_archer_tower_upg", - "Hitpoints": 5200, - "RegenTime": 25, - "AttackRange": 1000, - "AttackSpeed": 500, - "DamageMulti": 60, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "MergedArcherTower_attack", - "HitEffect": "Explosive Arrow", - "Projectile": "super_archer_tower_projectile", - "ExportNameDamaged": "destroyedBuilding_3m_grass_wood", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "defense_tower_turret_base", - "AirTargets": true, - "GroundTargets": true, - "MultiTargets": true, - "NumMultiTargets": 3, - "MultiHitsTarget": true, - "PickUpEffect": "Tower Turret Pickup", - "PlacingEffect": "Tower Turret Placing", - "DefenderCharacter": "Archer12", - "DefenderCount": 3, - "DefenderZ": 197, - "StrengthWeight": 440, - "HintPriority": 150, - "PreviewScenario": "MergedArcherTower", - "MergeRequirement": "Archer Tower:21;Archer Tower:21" - } - }, - "Ricochet Cannon": { - "1": { - "BuildingLevel": 1, - "TID": "TID_BUILDING_RICOCHET_CANNON", - "InfoTID": "TID_RICOCHET_CANNON_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "merged_cannon_lvl1", - "ExportNameConstruction": "merged_cannon_const", - "BuildTimeD": 14, - "BuildTimeH": 0, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 20000000, - "TownHallLevel": 16, - "CapitalHallLevel": 16, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "merged_cannon_upg", - "Hitpoints": 5400, - "RegenTime": 25, - "AttackRange": 900, - "AttackSpeed": 800, - "DPS": 360, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Cannon Attack Larger", - "HitEffect": "Merged_Cannon_Ricochet_Hit", - "Projectile": "MergedCannonProjectile", - "ExportNameDamaged": "destroyedBuilding_3s_base_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "basic_cannon_lvl11_base", - "AirTargets": false, - "GroundTargets": true, - "PickUpEffect": "Basic Turret Pickup", - "PlacingEffect": "Basic Turret Placing", - "AnimateTurret": true, - "StrengthWeight": 200, - "HintPriority": 150, - "PreviewScenario": "MergedCannon", - "MergeRequirement": "Cannon:21;Cannon:21", - "ProjectileBounces": 1 - }, - "2": { - "BuildingLevel": 2, - "TID": "TID_BUILDING_RICOCHET_CANNON", - "InfoTID": "TID_RICOCHET_CANNON_INFO", - "BuildingClass": "Defense", - "SWF": "sc/buildings.sc", - "ExportName": "merged_cannon_lvl2", - "ExportNameConstruction": "merged_cannon_const", - "BuildTimeD": 15, - "BuildTimeH": 12, - "BuildTimeM": 0, - "BuildTimeS": 0, - "BuildResource": "Gold", - "BuildCost": 22000000, - "TownHallLevel": 16, - "CapitalHallLevel": 16, - "Width": 3, - "Height": 3, - "ExportNameBuildAnim": "merged_cannon_upg", - "Hitpoints": 5700, - "RegenTime": 25, - "AttackRange": 900, - "AttackSpeed": 800, - "DPS": 390, - "DestroyEffect": "Building Destroyed", - "AttackEffect": "Cannon Attack Larger", - "HitEffect": "Merged_Cannon_Ricochet_Hit", - "Projectile": "MergedCannonProjectile", - "ExportNameDamaged": "destroyedBuilding_3s_base_rock", - "BuildingW": 2, - "BuildingH": 2, - "ExportNameBase": "basic_cannon_lvl11_base", - "AirTargets": false, - "GroundTargets": true, - "PickUpEffect": "Basic Turret Pickup", - "PlacingEffect": "Basic Turret Placing", - "AnimateTurret": true, - "StrengthWeight": 220, - "HintPriority": 150, - "PreviewScenario": "MergedCannon", - "MergeRequirement": "Cannon:21;Cannon:21", - "ProjectileBounces": 1 - } - } +{ + "Army Camp": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_HOUSING", + "InfoTID": "TID_HOUSING2_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings2.sc", + "ExportName": "adv_fireplace_lvl1_3x3", + "ExportNameConstruction": "basic_turret_const", + "ExportNameLocked": "adv_fireplace_broken_3x3", + "BuildResource": "Elixir2", + "BuildCost": 0, + "TownHallLevel": 1, + "CapitalHallLevel": 1, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "ArmySlotType": "Normal", + "Hitpoints": 300, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3s_pit_none", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "adv_fireplace_lvl1_base", + "PickUpEffect": "Troop Housing Pickup", + "PlacingEffect": "Troop Housing Placing", + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 750 + } + }, + "Town Hall": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_TOWN_HALL", + "InfoTID": "TID_TOWN_HALL_INFO", + "BuildingClass": "Town Hall", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "town_hall_lvl1", + "ExportNameNpc": "goblin_townhall_lvl1", + "ExportNameConstruction": "town_hall_const", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 0, + "TownHallLevel": 0, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "MaxStoredGold": 1000, + "MaxStoredElixir": 1000, + "MaxStoredDarkElixir": 2500, + "PercentageStoredDarkElixir": 20, + "LootOnDestruction": true, + "Hitpoints": 450, + "RegenTime": 20, + "DestroyEffect": "Town Hall Destroyed", + "ExportNameDamaged": "destroyedBuilding_4m_base_woodpanel_yellow", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "townhall_base", + "PickUpEffect": "Town Hall Pickup", + "PlacingEffect": "Town Hall Placing", + "DestructionXP": 1, + "StartingHomeCount": 1, + "IsRed": true, + "ActivateCombatOnDamageTaken": 1, + "ActivatedCombatAddBuildingClass": "Defense", + "CombatActivationDelay": 500, + "Weapon": "Townhall12", + "HintPriority": 100, + "PreviewScenario": "NoCombatBuilding" + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_TOWN_HALL", + "InfoTID": "TID_TOWN_HALL_INFO", + "BuildingClass": "Town Hall", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "town_hall_lvl2", + "ExportNameNpc": "goblin_townhall_lvl1", + "ExportNameConstruction": "town_hall_const", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 10, + "BuildResource": "Gold", + "BuildCost": 1000, + "TownHallLevel": 1, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "MaxStoredGold": 2500, + "MaxStoredElixir": 2500, + "MaxStoredDarkElixir": 5000, + "PercentageStoredDarkElixir": 20, + "LootOnDestruction": true, + "Hitpoints": 1600, + "RegenTime": 21, + "DestroyEffect": "Town Hall Destroyed", + "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "townhall_base", + "PickUpEffect": "Town Hall Pickup", + "PlacingEffect": "Town Hall Placing", + "DestructionXP": 2, + "StartingHomeCount": 1, + "IsRed": true, + "ActivateCombatOnDamageTaken": 1, + "ActivatedCombatAddBuildingClass": "Defense", + "CombatActivationDelay": 500, + "Weapon": "Townhall13", + "HintPriority": 100, + "PreviewScenario": "NoCombatBuilding" + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_TOWN_HALL", + "InfoTID": "TID_TOWN_HALL_INFO", + "BuildingClass": "Town Hall", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "town_hall_lvl3", + "ExportNameNpc": "goblin_townhall_lvl1", + "ExportNameConstruction": "town_hall_const", + "BuildTimeD": 0, + "BuildTimeH": 1, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 4000, + "TownHallLevel": 2, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "MaxStoredGold": 10000, + "MaxStoredElixir": 10000, + "MaxStoredDarkElixir": 10000, + "PercentageStoredDarkElixir": 20, + "LootOnDestruction": true, + "Hitpoints": 1850, + "RegenTime": 22, + "DestroyEffect": "Town Hall Destroyed", + "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "townhall_base", + "PickUpEffect": "Town Hall Pickup", + "PlacingEffect": "Town Hall Placing", + "DestructionXP": 3, + "StartingHomeCount": 1, + "IsRed": true, + "ActivateCombatOnDamageTaken": 1, + "ActivatedCombatAddBuildingClass": "Defense", + "CombatActivationDelay": 500, + "Weapon": "Townhall14", + "HintPriority": 100, + "PreviewScenario": "NoCombatBuilding" + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_TOWN_HALL", + "InfoTID": "TID_TOWN_HALL_INFO", + "BuildingClass": "Town Hall", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "town_hall_lvl4", + "ExportNameNpc": "goblin_townhall_lvl1", + "ExportNameConstruction": "town_hall_const", + "BuildTimeD": 0, + "BuildTimeH": 3, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 25000, + "TownHallLevel": 3, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "MaxStoredGold": 50000, + "MaxStoredElixir": 50000, + "MaxStoredDarkElixir": 20000, + "PercentageStoredDarkElixir": 20, + "LootOnDestruction": true, + "Hitpoints": 2100, + "RegenTime": 23, + "DestroyEffect": "Town Hall Destroyed", + "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "townhall_base", + "PickUpEffect": "Town Hall Pickup", + "PlacingEffect": "Town Hall Placing", + "DestructionXP": 4, + "StartingHomeCount": 1, + "IsRed": true, + "ActivateCombatOnDamageTaken": 1, + "ActivatedCombatAddBuildingClass": "Defense", + "CombatActivationDelay": 500, + "Weapon": "Townhall15", + "HintPriority": 100, + "PreviewScenario": "NoCombatBuilding" + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_TOWN_HALL", + "InfoTID": "TID_TOWN_HALL_INFO", + "BuildingClass": "Town Hall", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "town_hall_lvl5", + "ExportNameNpc": "goblin_townhall_lvl1", + "ExportNameConstruction": "town_hall_const", + "BuildTimeD": 0, + "BuildTimeH": 6, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 150000, + "TownHallLevel": 4, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "MaxStoredGold": 100000, + "MaxStoredElixir": 100000, + "MaxStoredDarkElixir": 20000, + "PercentageStoredDarkElixir": 20, + "LootOnDestruction": true, + "Hitpoints": 2400, + "RegenTime": 24, + "DestroyEffect": "Town Hall Destroyed", + "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "townhall_base", + "PickUpEffect": "Town Hall Pickup", + "PlacingEffect": "Town Hall Placing", + "DestructionXP": 5, + "StartingHomeCount": 1, + "IsRed": true, + "ActivateCombatOnDamageTaken": 1, + "ActivatedCombatAddBuildingClass": "Defense", + "CombatActivationDelay": 500, + "Weapon": "Townhall16", + "HintPriority": 100, + "PreviewScenario": "NoCombatBuilding" + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_BUILDING_TOWN_HALL", + "InfoTID": "TID_TOWN_HALL_INFO", + "BuildingClass": "Town Hall", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "town_hall_lvl6", + "ExportNameNpc": "goblin_townhall_lvl1", + "ExportNameConstruction": "town_hall_const", + "BuildTimeD": 0, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 750000, + "TownHallLevel": 5, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "MaxStoredGold": 300000, + "MaxStoredElixir": 300000, + "MaxStoredDarkElixir": 20000, + "PercentageStoredDarkElixir": 20, + "LootOnDestruction": true, + "Hitpoints": 2800, + "RegenTime": 25, + "DestroyEffect": "Town Hall Destroyed", + "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "townhall_base", + "PickUpEffect": "Town Hall Pickup", + "PlacingEffect": "Town Hall Placing", + "DestructionXP": 6, + "StartingHomeCount": 1, + "IsRed": true, + "ActivatedCombatAddBuildingClass": "Defense", + "HintPriority": 100, + "PreviewScenario": "NoCombatBuilding" + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_BUILDING_TOWN_HALL", + "InfoTID": "TID_TOWN_HALL_INFO", + "BuildingClass": "Town Hall", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "town_hall_lvl7", + "ExportNameNpc": "goblin_townhall_lvl1", + "ExportNameConstruction": "town_hall_const", + "BuildTimeD": 0, + "BuildTimeH": 18, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 1000000, + "TownHallLevel": 6, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "MaxStoredGold": 500000, + "MaxStoredElixir": 500000, + "MaxStoredDarkElixir": 20000, + "PercentageStoredDarkElixir": 20, + "LootOnDestruction": true, + "Hitpoints": 3300, + "RegenTime": 26, + "DestroyEffect": "Town Hall Destroyed", + "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "townhall_base", + "PickUpEffect": "Town Hall Pickup", + "PlacingEffect": "Town Hall Placing", + "DestructionXP": 7, + "StartingHomeCount": 1, + "IsRed": true, + "ActivatedCombatAddBuildingClass": "Defense", + "HintPriority": 100, + "PreviewScenario": "NoCombatBuilding" + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_BUILDING_TOWN_HALL", + "InfoTID": "TID_TOWN_HALL_INFO", + "BuildingClass": "Town Hall", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "town_hall_lvl8", + "ExportNameNpc": "goblin_townhall_lvl1", + "ExportNameConstruction": "town_hall_const", + "BuildTimeD": 1, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 2000000, + "TownHallLevel": 7, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "MaxStoredGold": 750000, + "MaxStoredElixir": 750000, + "MaxStoredDarkElixir": 20000, + "PercentageStoredDarkElixir": 20, + "LootOnDestruction": true, + "Hitpoints": 3900, + "RegenTime": 27, + "DestroyEffect": "Town Hall Destroyed", + "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "townhall_base", + "PickUpEffect": "Town Hall Pickup", + "PlacingEffect": "Town Hall Placing", + "DestructionXP": 8, + "StartingHomeCount": 1, + "IsRed": true, + "ActivatedCombatAddBuildingClass": "Defense", + "HintPriority": 100, + "PreviewScenario": "NoCombatBuilding" + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_BUILDING_TOWN_HALL", + "InfoTID": "TID_TOWN_HALL_INFO", + "BuildingClass": "Town Hall", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "town_hall_lvl9", + "ExportNameNpc": "goblin_townhall_lvl1", + "ExportNameConstruction": "town_hall_const", + "BuildTimeD": 2, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 3000000, + "TownHallLevel": 8, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "MaxStoredGold": 1000000, + "MaxStoredElixir": 1000000, + "MaxStoredDarkElixir": 20000, + "PercentageStoredDarkElixir": 20, + "LootOnDestruction": true, + "Hitpoints": 4600, + "RegenTime": 28, + "DestroyEffect": "Town Hall Destroyed", + "ExportNameDamaged": "destroyedBuilding_4l_base_rockwoodpanel_grey", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "townhall_base", + "PickUpEffect": "Town Hall Pickup", + "PlacingEffect": "Town Hall Placing", + "DestructionXP": 9, + "StartingHomeCount": 1, + "IsRed": true, + "ActivatedCombatAddBuildingClass": "Defense", + "HintPriority": 100, + "PreviewScenario": "NoCombatBuilding" + }, + "10": { + "BuildingLevel": 10, + "TID": "TID_BUILDING_TOWN_HALL", + "InfoTID": "TID_TOWN_HALL_INFO", + "BuildingClass": "Town Hall", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "town_hall_lvl10", + "ExportNameNpc": "goblin_townhall_lvl1", + "ExportNameConstruction": "town_hall_const", + "BuildTimeD": 2, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 3500000, + "TownHallLevel": 9, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "MaxStoredGold": 1500000, + "MaxStoredElixir": 1500000, + "MaxStoredDarkElixir": 20000, + "PercentageStoredDarkElixir": 20, + "LootOnDestruction": true, + "Hitpoints": 5500, + "RegenTime": 29, + "DestroyEffect": "Town Hall Destroyed", + "ExportNameDamaged": "destroyedBuilding_4l_base_rockwoodpanel_grey", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "townhall_lvl10_base", + "PickUpEffect": "Town Hall Pickup", + "PlacingEffect": "Town Hall Placing", + "DestructionXP": 10, + "StartingHomeCount": 1, + "IsRed": true, + "ActivatedCombatAddBuildingClass": "Defense", + "HintPriority": 100, + "PreviewScenario": "NoCombatBuilding" + }, + "11": { + "BuildingLevel": 11, + "TID": "TID_BUILDING_TOWN_HALL", + "InfoTID": "TID_TOWN_HALL_INFO", + "BuildingClass": "Town Hall", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "town_hall_lvl11", + "ExportNameNpc": "goblin_townhall_lvl1", + "ExportNameConstruction": "town_hall_const", + "BuildTimeD": 2, + "BuildTimeH": 18, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 4000000, + "TownHallLevel": 10, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "MaxStoredGold": 2000000, + "MaxStoredElixir": 2000000, + "LootOnDestruction": true, + "Hitpoints": 6800, + "RegenTime": 30, + "DestroyEffect": "Town Hall Destroyed", + "ExportNameDamaged": "destroyedBuilding_4l_base_rockwoodpanel_white", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "townhall_base", + "PickUpEffect": "Town Hall Pickup", + "PlacingEffect": "Town Hall Placing", + "DestructionXP": 11, + "StartingHomeCount": 1, + "IsRed": true, + "ActivatedCombatAddBuildingClass": "Defense", + "HintPriority": 100, + "PreviewScenario": "NoCombatBuilding" + }, + "12": { + "BuildingLevel": 12, + "TID": "TID_BUILDING_TOWN_HALL", + "InfoTID": "TID_TOWN_HALL_INFO", + "BuildingClass": "Town Hall", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "town_hall_lvl12_t1", + "ExportNameNpc": "goblin_townhall_lvl1", + "ExportNameConstruction": "town_hall_const", + "BuildTimeD": 4, + "BuildTimeH": 6, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 6000000, + "TownHallLevel": 11, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "MaxStoredGold": 2000000, + "MaxStoredElixir": 2000000, + "LootOnDestruction": true, + "Hitpoints": 7500, + "RegenTime": 31, + "DestroyEffect": "Town Hall Destroyed", + "ExportNameDamaged": "destroyedBuilding_4l_base_rockwoodpanel_blue", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "townhall_base_th12", + "PickUpEffect": "Town Hall Pickup", + "PlacingEffect": "Town Hall Placing", + "DestructionXP": 12, + "StartingHomeCount": 1, + "IsRed": true, + "ActivatedCombatAddBuildingClass": "Defense", + "HintPriority": 100, + "PreviewScenario": "NoCombatBuilding" + }, + "13": { + "BuildingLevel": 13, + "TID": "TID_BUILDING_TOWN_HALL", + "InfoTID": "TID_TOWN_HALL_INFO", + "BuildingClass": "Town Hall", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "town_hall_lvl13_t1", + "ExportNameNpc": "goblin_townhall_lvl1", + "ExportNameConstruction": "town_hall_const", + "BuildTimeD": 7, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 9000000, + "TownHallLevel": 12, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "MaxStoredGold": 2000000, + "MaxStoredElixir": 2000000, + "LootOnDestruction": true, + "Hitpoints": 8200, + "RegenTime": 31, + "DestroyEffect": "Town Hall Destroyed", + "ExportNameDamaged": "destroyedBuilding_4l_base_rockwoodpanel_blue", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "townhall_base_th12", + "PickUpEffect": "Town Hall Pickup", + "PlacingEffect": "Town Hall Placing", + "DestructionXP": 13, + "StartingHomeCount": 1, + "IsRed": true, + "ActivatedCombatAddBuildingClass": "Defense", + "HintPriority": 100, + "PreviewScenario": "NoCombatBuilding" + }, + "14": { + "BuildingLevel": 14, + "TID": "TID_BUILDING_TOWN_HALL", + "InfoTID": "TID_TOWN_HALL_INFO", + "BuildingClass": "Town Hall", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "town_hall_lvl14_t1", + "ExportNameNpc": "goblin_townhall_lvl1", + "ExportNameConstruction": "town_hall_const", + "BuildTimeD": 13, + "BuildTimeH": 6, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 15000000, + "TownHallLevel": 13, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "MaxStoredGold": 2000000, + "MaxStoredElixir": 2000000, + "LootOnDestruction": true, + "Hitpoints": 8900, + "RegenTime": 31, + "DestroyEffect": "Town Hall Destroyed", + "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "townhall_base_th12", + "PickUpEffect": "Town Hall Pickup", + "PlacingEffect": "Town Hall Placing", + "DestructionXP": 14, + "StartingHomeCount": 1, + "IsRed": true, + "ActivatedCombatAddBuildingClass": "Defense", + "HintPriority": 100, + "PreviewScenario": "NoCombatBuilding" + }, + "15": { + "BuildingLevel": 15, + "TID": "TID_BUILDING_TOWN_HALL", + "InfoTID": "TID_TOWN_HALL_INFO", + "BuildingClass": "Town Hall", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "town_hall_lvl15_t1", + "ExportNameNpc": "goblin_townhall_lvl1", + "ExportNameConstruction": "town_hall_const", + "BuildTimeD": 13, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 18000000, + "TownHallLevel": 14, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "MaxStoredGold": 2000000, + "MaxStoredElixir": 2000000, + "LootOnDestruction": true, + "Hitpoints": 9600, + "RegenTime": 31, + "DestroyEffect": "Town Hall Destroyed", + "ExportNameDamaged": "destroyedBuilding_4l_base_rockwoodpanel_darkpurple", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "townhall_base_th12", + "PickUpEffect": "Town Hall Pickup", + "PlacingEffect": "Town Hall Placing", + "DestructionXP": 15, + "StartingHomeCount": 1, + "IsRed": true, + "ActivatedCombatAddBuildingClass": "Defense", + "HintPriority": 100, + "PreviewScenario": "NoCombatBuilding" + }, + "16": { + "BuildingLevel": 16, + "TID": "TID_BUILDING_TOWN_HALL", + "InfoTID": "TID_TOWN_HALL_INFO", + "BuildingClass": "Town Hall", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "town_hall_lvl16", + "ExportNameNpc": "goblin_townhall_lvl1", + "ExportNameConstruction": "town_hall_const", + "BuildTimeD": 14, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 20000000, + "TownHallLevel": 15, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "MaxStoredGold": 2000000, + "MaxStoredElixir": 2000000, + "LootOnDestruction": true, + "Hitpoints": 10000, + "RegenTime": 32, + "DestroyEffect": "Town Hall Destroyed", + "ExportNameDamaged": "destroyedBuilding_4l_base_rockwoodpanel_darkpurple", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "townhall_base_th12", + "PickUpEffect": "Town Hall Pickup", + "PlacingEffect": "Town Hall Placing", + "DestructionXP": 16, + "StartingHomeCount": 1, + "IsRed": true, + "ActivatedCombatAddBuildingClass": "Defense", + "HintPriority": 100, + "PreviewScenario": "NoCombatBuilding" + } + }, + "Elixir Collector": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_ELIXIR_PUMP", + "InfoTID": "TID_ELIXIR_PUMP_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "elixir_pump_lvl1_v2", + "ExportNameConstruction": "elixir_pump_const", + "ExportNameLocked": "elixir_pump_broken", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 10, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 1000, + "TownHallLevel": 1, + "CapitalHallLevel": 1, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "elixir_pump_upg", + "ProducesResource": "Elixir2", + "ResourcePer100Hours": 100000, + "ResourceMax": 24000, + "ResourceIconLimit": 30, + "Hitpoints": 300, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3s_round_pit_woodglass", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "elixir_pump_base", + "PickUpEffect": "Elixir Pump Pickup", + "PlacingEffect": "Elixir Pump Placing", + "StartingHomeCount": 1, + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 250 + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_ELIXIR_PUMP", + "InfoTID": "TID_ELIXIR_PUMP_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "elixir_pump_lvl2_v2", + "ExportNameConstruction": "elixir_pump_const", + "ExportNameLocked": "elixir_pump_broken", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 20, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 5000, + "TownHallLevel": 3, + "CapitalHallLevel": 3, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "elixir_pump_upg", + "ProducesResource": "Elixir2", + "ResourcePer100Hours": 120000, + "ResourceMax": 28800, + "ResourceIconLimit": 40, + "Hitpoints": 350, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3s_round_pit_woodglass", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "elixir_pump_base", + "PickUpEffect": "Elixir Pump Pickup", + "PlacingEffect": "Elixir Pump Placing", + "StartingHomeCount": 1, + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 250 + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_ELIXIR_PUMP", + "InfoTID": "TID_ELIXIR_PUMP_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "elixir_pump_lvl3_v2", + "ExportNameConstruction": "elixir_pump_const", + "ExportNameLocked": "elixir_pump_broken", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 40, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 10000, + "TownHallLevel": 3, + "CapitalHallLevel": 3, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "elixir_pump_upg", + "ProducesResource": "Elixir2", + "ResourcePer100Hours": 150000, + "ResourceMax": 36000, + "ResourceIconLimit": 50, + "Hitpoints": 400, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3s_round_pit_woodglass", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "elixir_pump_base", + "PickUpEffect": "Elixir Pump Pickup", + "PlacingEffect": "Elixir Pump Placing", + "StartingHomeCount": 1, + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 250 + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_ELIXIR_PUMP", + "InfoTID": "TID_ELIXIR_PUMP_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "elixir_pump_lvl4_v2", + "ExportNameConstruction": "elixir_pump_const", + "ExportNameLocked": "elixir_pump_broken", + "BuildTimeD": 0, + "BuildTimeH": 2, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 30000, + "TownHallLevel": 4, + "CapitalHallLevel": 4, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "elixir_pump_upg", + "ProducesResource": "Elixir2", + "ResourcePer100Hours": 180000, + "ResourceMax": 43200, + "ResourceIconLimit": 60, + "Hitpoints": 460, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3s_round_pit_woodglass", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "elixir_pump_base", + "PickUpEffect": "Elixir Pump Pickup", + "PlacingEffect": "Elixir Pump Placing", + "StartingHomeCount": 1, + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 250 + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_ELIXIR_PUMP", + "InfoTID": "TID_ELIXIR_PUMP_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "elixir_pump_lvl5_v2", + "ExportNameConstruction": "elixir_pump_const", + "ExportNameLocked": "elixir_pump_broken", + "BuildTimeD": 0, + "BuildTimeH": 6, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 60000, + "TownHallLevel": 5, + "CapitalHallLevel": 5, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "elixir_pump_upg", + "ProducesResource": "Elixir2", + "ResourcePer100Hours": 210000, + "ResourceMax": 50400, + "ResourceIconLimit": 70, + "Hitpoints": 550, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3s_round_pit_woodglass", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "elixir_pump_lvl5_base", + "PickUpEffect": "Elixir Pump Pickup", + "PlacingEffect": "Elixir Pump Placing", + "StartingHomeCount": 1, + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 250 + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_BUILDING_ELIXIR_PUMP", + "InfoTID": "TID_ELIXIR_PUMP_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "elixir_pump_lvl6_v2", + "ExportNameConstruction": "elixir_pump_const", + "ExportNameLocked": "elixir_pump_broken", + "BuildTimeD": 1, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 100000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "elixir_pump_upg", + "ProducesResource": "Elixir2", + "ResourcePer100Hours": 250000, + "ResourceMax": 60000, + "ResourceIconLimit": 80, + "Hitpoints": 650, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3s_round_pit_woodglass", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "elixir_pump_lvl5_base", + "PickUpEffect": "Elixir Pump Pickup", + "PlacingEffect": "Elixir Pump Placing", + "StartingHomeCount": 1, + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 250 + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_BUILDING_ELIXIR_PUMP", + "InfoTID": "TID_ELIXIR_PUMP_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "elixir_pump_lvl7_v2", + "ExportNameConstruction": "elixir_pump_const", + "ExportNameLocked": "elixir_pump_broken", + "BuildTimeD": 1, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 200000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "elixir_pump_upg", + "ProducesResource": "Elixir2", + "ResourcePer100Hours": 300000, + "ResourceMax": 72000, + "ResourceIconLimit": 100, + "Hitpoints": 750, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3s_round_pit_woodglass", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "elixir_pump_lvl5_base", + "PickUpEffect": "Elixir Pump Pickup", + "PlacingEffect": "Elixir Pump Placing", + "StartingHomeCount": 1, + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 250 + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_BUILDING_ELIXIR_PUMP", + "InfoTID": "TID_ELIXIR_PUMP_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "elixir_pump_lvl8_v2", + "ExportNameConstruction": "elixir_pump_const", + "ExportNameLocked": "elixir_pump_broken", + "BuildTimeD": 2, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 300000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "elixir_pump_upg", + "ProducesResource": "Elixir2", + "ResourcePer100Hours": 350000, + "ResourceMax": 84000, + "ResourceIconLimit": 120, + "Hitpoints": 850, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3s_round_pit_woodglass", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "elixir_pump_lvl5_base", + "PickUpEffect": "Elixir Pump Pickup", + "PlacingEffect": "Elixir Pump Placing", + "StartingHomeCount": 1, + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 250 + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_BUILDING_ELIXIR_PUMP", + "InfoTID": "TID_ELIXIR_PUMP_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "elixir_pump_lvl9_v2", + "ExportNameConstruction": "elixir_pump_const", + "ExportNameLocked": "elixir_pump_broken", + "BuildTimeD": 2, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 400000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "elixir_pump_upg", + "ProducesResource": "Elixir2", + "ResourcePer100Hours": 400000, + "ResourceMax": 96000, + "ResourceIconLimit": 140, + "Hitpoints": 1000, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3s_round_pit_woodglass", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "elixir_pump_lvl5_base", + "PickUpEffect": "Elixir Pump Pickup", + "PlacingEffect": "Elixir Pump Placing", + "StartingHomeCount": 1, + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 250 + }, + "10": { + "BuildingLevel": 10, + "TID": "TID_BUILDING_ELIXIR_PUMP", + "InfoTID": "TID_ELIXIR_PUMP_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "elixir_pump_lvl10_v2", + "ExportNameConstruction": "elixir_pump_const", + "ExportNameLocked": "elixir_pump_broken", + "BuildTimeD": 3, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 800000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "elixir_pump_upg", + "ProducesResource": "Elixir2", + "ResourcePer100Hours": 450000, + "ResourceMax": 108000, + "ResourceIconLimit": 160, + "Hitpoints": 1150, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3s_round_pit_woodglass", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "elixir_pump_lvl5_base", + "PickUpEffect": "Elixir Pump Pickup", + "PlacingEffect": "Elixir Pump Placing", + "StartingHomeCount": 1, + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 250 + } + }, + "Elixir Storage": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_ELIXIR_STORAGE", + "InfoTID": "TID_ELIXIR_STORAGE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "elixir_storage_level1_v2", + "ExportNameConstruction": "elixir_storage_const", + "ExportNameLocked": "alliance_castle_lvl1_broken", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 30, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 20000, + "TownHallLevel": 3, + "CapitalHallLevel": 3, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "elixir_storage_upg", + "MaxStoredElixir2": 70000, + "Hitpoints": 650, + "RegenTime": 1, + "DestroyEffect": "Elixir Storage Destroyed", + "ExportNameDamaged": "elixir_destructed_state3", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "elixir_storage_lvl1_base", + "PickUpEffect": "Elixir Storage Pickup", + "PlacingEffect": "Elixir Storage Placing", + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 200 + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_ELIXIR_STORAGE", + "InfoTID": "TID_ELIXIR_STORAGE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "elixir_storage_level2_v2", + "ExportNameConstruction": "elixir_storage_const", + "ExportNameLocked": "alliance_castle_lvl1_broken", + "BuildTimeD": 0, + "BuildTimeH": 1, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 80000, + "TownHallLevel": 3, + "CapitalHallLevel": 3, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "goldmine_upg", + "MaxStoredElixir2": 150000, + "Hitpoints": 800, + "RegenTime": 1, + "DestroyEffect": "Elixir Storage Destroyed", + "ExportNameDamaged": "elixir_destructed_state3", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "elixir_storage_lvl2_base", + "PickUpEffect": "Elixir Storage Pickup", + "PlacingEffect": "Elixir Storage Placing", + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 200 + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_ELIXIR_STORAGE", + "InfoTID": "TID_ELIXIR_STORAGE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "elixir_storage_level3_v2", + "ExportNameConstruction": "elixir_storage_const", + "ExportNameLocked": "alliance_castle_lvl1_broken", + "BuildTimeD": 0, + "BuildTimeH": 3, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 200000, + "TownHallLevel": 3, + "CapitalHallLevel": 3, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "goldmine_upg", + "MaxStoredElixir2": 250000, + "Hitpoints": 975, + "RegenTime": 1, + "DestroyEffect": "Elixir Storage Destroyed", + "ExportNameDamaged": "elixir_destructed_state3", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "elixir_storage_lvl3_base", + "PickUpEffect": "Elixir Storage Pickup", + "PlacingEffect": "Elixir Storage Placing", + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 200 + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_ELIXIR_STORAGE", + "InfoTID": "TID_ELIXIR_STORAGE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "elixir_storage_level4_v2", + "ExportNameConstruction": "elixir_storage_const", + "ExportNameLocked": "alliance_castle_lvl1_broken", + "BuildTimeD": 0, + "BuildTimeH": 6, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 300000, + "TownHallLevel": 4, + "CapitalHallLevel": 4, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "goldmine_upg", + "MaxStoredElixir2": 350000, + "Hitpoints": 1150, + "RegenTime": 1, + "DestroyEffect": "Elixir Storage Destroyed", + "ExportNameDamaged": "elixir_destructed_state3", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "elixir_storage_lvl4_base", + "PickUpEffect": "Elixir Storage Pickup", + "PlacingEffect": "Elixir Storage Placing", + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 200 + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_ELIXIR_STORAGE", + "InfoTID": "TID_ELIXIR_STORAGE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "elixir_storage_level5_v2", + "ExportNameConstruction": "elixir_storage_const", + "ExportNameLocked": "alliance_castle_lvl1_broken", + "BuildTimeD": 0, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 600000, + "TownHallLevel": 5, + "CapitalHallLevel": 5, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "goldmine_upg", + "MaxStoredElixir2": 600000, + "Hitpoints": 1350, + "RegenTime": 1, + "DestroyEffect": "Elixir Storage Destroyed", + "ExportNameDamaged": "elixir_destructed_state3", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "elixir_storage_lvl5_base", + "PickUpEffect": "Elixir Storage Pickup", + "PlacingEffect": "Elixir Storage Placing", + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 200 + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_BUILDING_ELIXIR_STORAGE", + "InfoTID": "TID_ELIXIR_STORAGE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "elixir_storage_level6_v2", + "ExportNameConstruction": "elixir_storage_const", + "ExportNameLocked": "alliance_castle_lvl1_broken", + "BuildTimeD": 1, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 1000000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredElixir2": 800000, + "Hitpoints": 1600, + "RegenTime": 1, + "DestroyEffect": "Elixir Storage Destroyed", + "ExportNameDamaged": "elixir_destructed_state3", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "elixir_storage_lvl6_base", + "PickUpEffect": "Elixir Storage Pickup", + "PlacingEffect": "Elixir Storage Placing", + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 200 + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_BUILDING_ELIXIR_STORAGE", + "InfoTID": "TID_ELIXIR_STORAGE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "elixir_storage_level7_v2", + "ExportNameConstruction": "elixir_storage_const", + "ExportNameLocked": "alliance_castle_lvl1_broken", + "BuildTimeD": 2, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 1500000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredElixir2": 1200000, + "Hitpoints": 1850, + "RegenTime": 1, + "DestroyEffect": "Elixir Storage Destroyed", + "ExportNameDamaged": "elixir_destructed_state3", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "elixir_storage_lvl7_base", + "PickUpEffect": "Elixir Storage Pickup", + "PlacingEffect": "Elixir Storage Placing", + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 200 + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_BUILDING_ELIXIR_STORAGE", + "InfoTID": "TID_ELIXIR_STORAGE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "elixir_storage_level8_v2", + "ExportNameConstruction": "elixir_storage_const", + "ExportNameLocked": "alliance_castle_lvl1_broken", + "BuildTimeD": 3, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 2000000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredElixir2": 1600000, + "Hitpoints": 2150, + "RegenTime": 1, + "DestroyEffect": "Elixir Storage Destroyed", + "ExportNameDamaged": "elixir_destructed_state3", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "elixir_storage_lvl8_base", + "PickUpEffect": "Elixir Storage Pickup", + "PlacingEffect": "Elixir Storage Placing", + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 200 + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_BUILDING_ELIXIR_STORAGE", + "InfoTID": "TID_ELIXIR_STORAGE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "elixir_storage_level9_v2", + "ExportNameConstruction": "elixir_storage_const", + "ExportNameLocked": "alliance_castle_lvl1_broken", + "BuildTimeD": 4, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 2500000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredElixir2": 2000000, + "Hitpoints": 2450, + "RegenTime": 1, + "DestroyEffect": "Elixir Storage Destroyed", + "ExportNameDamaged": "elixir_destructed_state3", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "elixir_storage_lvl9_base", + "PickUpEffect": "Elixir Storage Pickup", + "PlacingEffect": "Elixir Storage Placing", + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 200 + }, + "10": { + "BuildingLevel": 10, + "TID": "TID_BUILDING_ELIXIR_STORAGE", + "InfoTID": "TID_ELIXIR_STORAGE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "elixir_storage_level10_v2", + "ExportNameConstruction": "elixir_storage_const", + "ExportNameLocked": "alliance_castle_lvl1_broken", + "BuildTimeD": 5, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 3200000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredElixir2": 2500000, + "Hitpoints": 2750, + "RegenTime": 1, + "DestroyEffect": "Elixir Storage Destroyed", + "ExportNameDamaged": "elixir_destructed_state3", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "elixir_storage_lvl9_base", + "PickUpEffect": "Elixir Storage Pickup", + "PlacingEffect": "Elixir Storage Placing", + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 200 + } + }, + "Gold Mine": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_GOLD_MINE", + "InfoTID": "TID_GOLD_MINE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "goldmine_lvl1", + "ExportNameConstruction": "goldmine_const", + "ExportNameLocked": "goldmine_broken", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 10, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 1000, + "TownHallLevel": 1, + "CapitalHallLevel": 1, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "ProducesResource": "Gold2", + "ResourcePer100Hours": 100000, + "ResourceMax": 24000, + "ResourceIconLimit": 30, + "Hitpoints": 300, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "goldmine_base", + "PickUpEffect": "Gold Mine Pickup", + "PlacingEffect": "Gold Mine Placing", + "StartingHomeCount": 1, + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 250 + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_GOLD_MINE", + "InfoTID": "TID_GOLD_MINE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "goldmine_lvl2", + "ExportNameConstruction": "goldmine_const", + "ExportNameLocked": "goldmine_broken", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 20, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 5000, + "TownHallLevel": 3, + "CapitalHallLevel": 3, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "ProducesResource": "Gold2", + "ResourcePer100Hours": 120000, + "ResourceMax": 28800, + "ResourceIconLimit": 40, + "Hitpoints": 350, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "goldmine_base", + "PickUpEffect": "Gold Mine Pickup", + "PlacingEffect": "Gold Mine Placing", + "StartingHomeCount": 1, + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 250 + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_GOLD_MINE", + "InfoTID": "TID_GOLD_MINE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "goldmine_lvl3", + "ExportNameConstruction": "goldmine_const", + "ExportNameLocked": "goldmine_broken", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 40, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 10000, + "TownHallLevel": 3, + "CapitalHallLevel": 3, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "ProducesResource": "Gold2", + "ResourcePer100Hours": 150000, + "ResourceMax": 36000, + "ResourceIconLimit": 50, + "Hitpoints": 400, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "goldmine_base", + "PickUpEffect": "Gold Mine Pickup", + "PlacingEffect": "Gold Mine Placing", + "StartingHomeCount": 1, + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 250 + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_GOLD_MINE", + "InfoTID": "TID_GOLD_MINE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "goldmine_lvl4", + "ExportNameConstruction": "goldmine_const", + "ExportNameLocked": "goldmine_broken", + "BuildTimeD": 0, + "BuildTimeH": 2, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 30000, + "TownHallLevel": 4, + "CapitalHallLevel": 4, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "ProducesResource": "Gold2", + "ResourcePer100Hours": 180000, + "ResourceMax": 43200, + "ResourceIconLimit": 60, + "Hitpoints": 460, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "goldmine_base", + "PickUpEffect": "Gold Mine Pickup", + "PlacingEffect": "Gold Mine Placing", + "StartingHomeCount": 1, + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 250 + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_GOLD_MINE", + "InfoTID": "TID_GOLD_MINE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "goldmine_lvl5", + "ExportNameConstruction": "goldmine_const", + "ExportNameLocked": "goldmine_broken", + "BuildTimeD": 0, + "BuildTimeH": 6, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 60000, + "TownHallLevel": 5, + "CapitalHallLevel": 5, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "ProducesResource": "Gold2", + "ResourcePer100Hours": 210000, + "ResourceMax": 50400, + "ResourceIconLimit": 70, + "Hitpoints": 550, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "goldmine_base", + "PickUpEffect": "Gold Mine Pickup", + "PlacingEffect": "Gold Mine Placing", + "StartingHomeCount": 1, + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 250 + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_BUILDING_GOLD_MINE", + "InfoTID": "TID_GOLD_MINE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "goldmine_lvl6", + "ExportNameConstruction": "goldmine_const", + "ExportNameLocked": "goldmine_broken", + "BuildTimeD": 1, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 100000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "ProducesResource": "Gold2", + "ResourcePer100Hours": 250000, + "ResourceMax": 60000, + "ResourceIconLimit": 80, + "Hitpoints": 650, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "goldmine_base", + "PickUpEffect": "Gold Mine Pickup", + "PlacingEffect": "Gold Mine Placing", + "StartingHomeCount": 1, + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 250 + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_BUILDING_GOLD_MINE", + "InfoTID": "TID_GOLD_MINE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "goldmine_lvl7", + "ExportNameConstruction": "goldmine_const", + "ExportNameLocked": "goldmine_broken", + "BuildTimeD": 1, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 200000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "ProducesResource": "Gold2", + "ResourcePer100Hours": 300000, + "ResourceMax": 72000, + "ResourceIconLimit": 100, + "Hitpoints": 750, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "goldmine_base", + "PickUpEffect": "Gold Mine Pickup", + "PlacingEffect": "Gold Mine Placing", + "StartingHomeCount": 1, + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 250 + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_BUILDING_GOLD_MINE", + "InfoTID": "TID_GOLD_MINE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "goldmine_lvl8", + "ExportNameConstruction": "goldmine_const", + "ExportNameLocked": "goldmine_broken", + "BuildTimeD": 2, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 300000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "ProducesResource": "Gold2", + "ResourcePer100Hours": 350000, + "ResourceMax": 84000, + "ResourceIconLimit": 120, + "Hitpoints": 850, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "goldmine_base", + "PickUpEffect": "Gold Mine Pickup", + "PlacingEffect": "Gold Mine Placing", + "StartingHomeCount": 1, + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 250 + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_BUILDING_GOLD_MINE", + "InfoTID": "TID_GOLD_MINE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "goldmine_lvl9", + "ExportNameConstruction": "goldmine_const", + "ExportNameLocked": "goldmine_broken", + "BuildTimeD": 2, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 400000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "ProducesResource": "Gold2", + "ResourcePer100Hours": 400000, + "ResourceMax": 96000, + "ResourceIconLimit": 140, + "Hitpoints": 1000, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "goldmine_base", + "PickUpEffect": "Gold Mine Pickup", + "PlacingEffect": "Gold Mine Placing", + "StartingHomeCount": 1, + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 250 + }, + "10": { + "BuildingLevel": 10, + "TID": "TID_BUILDING_GOLD_MINE", + "InfoTID": "TID_GOLD_MINE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "goldmine_lvl10", + "ExportNameConstruction": "goldmine_const", + "ExportNameLocked": "goldmine_broken", + "BuildTimeD": 3, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 800000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "ProducesResource": "Gold2", + "ResourcePer100Hours": 450000, + "ResourceMax": 108000, + "ResourceIconLimit": 160, + "Hitpoints": 1150, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "goldmine_base", + "PickUpEffect": "Gold Mine Pickup", + "PlacingEffect": "Gold Mine Placing", + "StartingHomeCount": 1, + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 250 + } + }, + "Gold Storage": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_GOLD_STORAGE", + "InfoTID": "TID_GOLD_STORAGE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "gold_storage_lvl1_v2", + "ExportNameConstruction": "gold_storage_const", + "ExportNameLocked": "alliance_castle_lvl1_broken", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 30, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 20000, + "TownHallLevel": 3, + "CapitalHallLevel": 3, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredGold2": 70000, + "Hitpoints": 650, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_base_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "gold_storage_lvl1_base", + "PickUpEffect": "Gold Storage Pickup", + "PlacingEffect": "Gold Storage Placing", + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 200 + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_GOLD_STORAGE", + "InfoTID": "TID_GOLD_STORAGE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "gold_storage_lvl2_v2", + "ExportNameConstruction": "gold_storage_const", + "ExportNameLocked": "alliance_castle_lvl1_broken", + "BuildTimeD": 0, + "BuildTimeH": 1, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 80000, + "TownHallLevel": 3, + "CapitalHallLevel": 3, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredGold2": 150000, + "Hitpoints": 800, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_base_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "gold_storage_lvl2_base", + "PickUpEffect": "Gold Storage Pickup", + "PlacingEffect": "Gold Storage Placing", + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 200 + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_GOLD_STORAGE", + "InfoTID": "TID_GOLD_STORAGE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "gold_storage_lvl3_v2", + "ExportNameConstruction": "gold_storage_const", + "ExportNameLocked": "alliance_castle_lvl1_broken", + "BuildTimeD": 0, + "BuildTimeH": 3, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 200000, + "TownHallLevel": 3, + "CapitalHallLevel": 3, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredGold2": 250000, + "Hitpoints": 975, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_base_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "gold_storage_lvl3_base", + "PickUpEffect": "Gold Storage Pickup", + "PlacingEffect": "Gold Storage Placing", + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 200 + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_GOLD_STORAGE", + "InfoTID": "TID_GOLD_STORAGE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "gold_storage_lvl4_v2", + "ExportNameConstruction": "gold_storage_const", + "ExportNameLocked": "alliance_castle_lvl1_broken", + "BuildTimeD": 0, + "BuildTimeH": 6, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 300000, + "TownHallLevel": 4, + "CapitalHallLevel": 4, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredGold2": 350000, + "Hitpoints": 1150, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_base_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "gold_storage_lvl4_base", + "PickUpEffect": "Gold Storage Pickup", + "PlacingEffect": "Gold Storage Placing", + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 200 + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_GOLD_STORAGE", + "InfoTID": "TID_GOLD_STORAGE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "gold_storage_lvl5_v2", + "ExportNameConstruction": "gold_storage_const", + "ExportNameLocked": "alliance_castle_lvl1_broken", + "BuildTimeD": 0, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 600000, + "TownHallLevel": 5, + "CapitalHallLevel": 5, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredGold2": 600000, + "Hitpoints": 1350, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_base_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "gold_storage_lvl5_base", + "PickUpEffect": "Gold Storage Pickup", + "PlacingEffect": "Gold Storage Placing", + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 200 + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_BUILDING_GOLD_STORAGE", + "InfoTID": "TID_GOLD_STORAGE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "gold_storage_lvl6_v2", + "ExportNameConstruction": "gold_storage_const", + "ExportNameLocked": "alliance_castle_lvl1_broken", + "BuildTimeD": 1, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 1000000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredGold2": 800000, + "Hitpoints": 1600, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_base_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "gold_storage_lvl6_base", + "PickUpEffect": "Gold Storage Pickup", + "PlacingEffect": "Gold Storage Placing", + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 200 + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_BUILDING_GOLD_STORAGE", + "InfoTID": "TID_GOLD_STORAGE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "gold_storage_lvl7_v2", + "ExportNameConstruction": "gold_storage_const", + "ExportNameLocked": "alliance_castle_lvl1_broken", + "BuildTimeD": 2, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 1500000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredGold2": 1200000, + "Hitpoints": 1850, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_base_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "gold_storage_lvl7_base", + "PickUpEffect": "Gold Storage Pickup", + "PlacingEffect": "Gold Storage Placing", + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 200 + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_BUILDING_GOLD_STORAGE", + "InfoTID": "TID_GOLD_STORAGE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "gold_storage_lvl8_v2", + "ExportNameConstruction": "gold_storage_const", + "ExportNameLocked": "alliance_castle_lvl1_broken", + "BuildTimeD": 3, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 2000000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredGold2": 1600000, + "Hitpoints": 2150, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_base_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "gold_storage_lvl8_base", + "PickUpEffect": "Gold Storage Pickup", + "PlacingEffect": "Gold Storage Placing", + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 200 + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_BUILDING_GOLD_STORAGE", + "InfoTID": "TID_GOLD_STORAGE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "gold_storage_lvl9_v2", + "ExportNameConstruction": "gold_storage_const", + "ExportNameLocked": "alliance_castle_lvl1_broken", + "BuildTimeD": 4, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 2500000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredGold2": 2000000, + "Hitpoints": 2450, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_base_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "gold_storage_lvl9_base", + "PickUpEffect": "Gold Storage Pickup", + "PlacingEffect": "Gold Storage Placing", + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 200 + }, + "10": { + "BuildingLevel": 10, + "TID": "TID_BUILDING_GOLD_STORAGE", + "InfoTID": "TID_GOLD_STORAGE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "gold_storage_lvl10_v2", + "ExportNameConstruction": "gold_storage_const", + "ExportNameLocked": "alliance_castle_lvl1_broken", + "BuildTimeD": 5, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 3200000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredGold2": 2500000, + "Hitpoints": 2750, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_base_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "gold_storage_lvl9_base", + "PickUpEffect": "Gold Storage Pickup", + "PlacingEffect": "Gold Storage Placing", + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 200 + } + }, + "Barracks": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_BARRACK", + "InfoTID": "TID_BARRACK_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "barracks_lvl1", + "ExportNameConstruction": "barracks_const", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 10, + "BuildResource": "Elixir", + "BuildCost": 100, + "TownHallLevel": 1, + "CapitalHallLevel": 1, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "UnitProduction": 20, + "ProducesUnitsOfType": 1, + "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", + "BoostCost": 5, + "Hitpoints": 250, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 400, + "PreviewScenario": "NoCombatBuilding" + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_BARRACK", + "InfoTID": "TID_BARRACK_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "barracks_lvl2", + "ExportNameConstruction": "barracks_const", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 1, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 500, + "TownHallLevel": 2, + "CapitalHallLevel": 1, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "UnitProduction": 25, + "ProducesUnitsOfType": 1, + "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", + "BoostCost": 5, + "Hitpoints": 290, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 400, + "PreviewScenario": "NoCombatBuilding" + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_BARRACK", + "InfoTID": "TID_BARRACK_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "barracks_lvl3", + "ExportNameConstruction": "barracks_const", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 10, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 2500, + "TownHallLevel": 2, + "CapitalHallLevel": 1, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "UnitProduction": 30, + "ProducesUnitsOfType": 1, + "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", + "BoostCost": 5, + "Hitpoints": 330, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 400, + "PreviewScenario": "NoCombatBuilding" + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_BARRACK", + "InfoTID": "TID_BARRACK_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "barracks_lvl4", + "ExportNameConstruction": "barracks_const", + "BuildTimeD": 0, + "BuildTimeH": 1, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 5000, + "TownHallLevel": 2, + "CapitalHallLevel": 2, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "UnitProduction": 35, + "ProducesUnitsOfType": 1, + "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", + "BoostCost": 5, + "Hitpoints": 370, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 400, + "PreviewScenario": "NoCombatBuilding" + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_BARRACK", + "InfoTID": "TID_BARRACK_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "barracks_lvl5", + "ExportNameConstruction": "barracks_const", + "BuildTimeD": 0, + "BuildTimeH": 8, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 20000, + "TownHallLevel": 3, + "CapitalHallLevel": 3, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "UnitProduction": 40, + "ProducesUnitsOfType": 1, + "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", + "BoostCost": 5, + "Hitpoints": 420, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 400, + "PreviewScenario": "NoCombatBuilding" + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_BUILDING_BARRACK", + "InfoTID": "TID_BARRACK_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "barracks_lvl6", + "ExportNameConstruction": "barracks_const", + "BuildTimeD": 0, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 120000, + "TownHallLevel": 4, + "CapitalHallLevel": 4, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "UnitProduction": 45, + "ProducesUnitsOfType": 1, + "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", + "BoostCost": 5, + "Hitpoints": 470, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 400, + "PreviewScenario": "NoCombatBuilding" + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_BUILDING_BARRACK", + "InfoTID": "TID_BARRACK_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "barracks_lvl7", + "ExportNameConstruction": "barracks_const", + "BuildTimeD": 0, + "BuildTimeH": 18, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 270000, + "TownHallLevel": 5, + "CapitalHallLevel": 5, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "UnitProduction": 50, + "ProducesUnitsOfType": 1, + "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", + "BoostCost": 5, + "Hitpoints": 520, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 400, + "PreviewScenario": "NoCombatBuilding" + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_BUILDING_BARRACK", + "InfoTID": "TID_BARRACK_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "barracks_lvl8", + "ExportNameConstruction": "barracks_const", + "BuildTimeD": 1, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 800000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "UnitProduction": 55, + "ProducesUnitsOfType": 1, + "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", + "BoostCost": 5, + "Hitpoints": 580, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 400, + "PreviewScenario": "NoCombatBuilding" + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_BUILDING_BARRACK", + "InfoTID": "TID_BARRACK_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "barracks_lvl9", + "ExportNameConstruction": "barracks_const", + "BuildTimeD": 1, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 1000000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "UnitProduction": 60, + "ProducesUnitsOfType": 1, + "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", + "BoostCost": 5, + "Hitpoints": 650, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 400, + "PreviewScenario": "NoCombatBuilding" + }, + "10": { + "BuildingLevel": 10, + "TID": "TID_BUILDING_BARRACK", + "InfoTID": "TID_BARRACK_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "barracks_lvl10", + "ExportNameConstruction": "barracks_const", + "BuildTimeD": 2, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 1400000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "UnitProduction": 75, + "ProducesUnitsOfType": 1, + "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", + "BoostCost": 5, + "Hitpoints": 730, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 400, + "PreviewScenario": "NoCombatBuilding" + }, + "11": { + "BuildingLevel": 11, + "TID": "TID_BUILDING_BARRACK", + "InfoTID": "TID_BARRACK_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "barracks_lvl11", + "ExportNameConstruction": "barracks_const", + "BuildTimeD": 4, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 2600000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "UnitProduction": 80, + "ProducesUnitsOfType": 1, + "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", + "BoostCost": 5, + "Hitpoints": 810, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 400, + "PreviewScenario": "NoCombatBuilding" + }, + "12": { + "BuildingLevel": 12, + "TID": "TID_BUILDING_BARRACK", + "InfoTID": "TID_BARRACK_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "barracks_lvl12", + "ExportNameConstruction": "barracks_const", + "BuildTimeD": 5, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 3700000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "UnitProduction": 85, + "ProducesUnitsOfType": 1, + "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", + "BoostCost": 5, + "Hitpoints": 900, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 400, + "PreviewScenario": "NoCombatBuilding" + }, + "13": { + "BuildingLevel": 13, + "TID": "TID_BUILDING_BARRACK", + "InfoTID": "TID_BARRACK_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "barracks_lvl13", + "ExportNameConstruction": "barracks_const", + "BuildTimeD": 7, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 6500000, + "TownHallLevel": 11, + "CapitalHallLevel": 11, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "UnitProduction": 90, + "ProducesUnitsOfType": 1, + "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", + "BoostCost": 5, + "Hitpoints": 980, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 400, + "PreviewScenario": "NoCombatBuilding" + }, + "14": { + "BuildingLevel": 14, + "TID": "TID_BUILDING_BARRACK", + "InfoTID": "TID_BARRACK_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "barracks_lvl14", + "ExportNameConstruction": "barracks_const", + "BuildTimeD": 9, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 8000000, + "TownHallLevel": 12, + "CapitalHallLevel": 12, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "UnitProduction": 95, + "ProducesUnitsOfType": 1, + "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", + "BoostCost": 5, + "Hitpoints": 1050, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 400, + "PreviewScenario": "NoCombatBuilding" + }, + "15": { + "BuildingLevel": 15, + "TID": "TID_BUILDING_BARRACK", + "InfoTID": "TID_BARRACK_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "barracks_lvl15", + "ExportNameConstruction": "barracks_const", + "BuildTimeD": 9, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 10000000, + "TownHallLevel": 13, + "CapitalHallLevel": 13, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "UnitProduction": 100, + "ProducesUnitsOfType": 1, + "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", + "Hitpoints": 1150, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 400, + "PreviewScenario": "NoCombatBuilding" + }, + "16": { + "BuildingLevel": 16, + "TID": "TID_BUILDING_BARRACK", + "InfoTID": "TID_BARRACK_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "barracks_lvl16", + "ExportNameConstruction": "barracks_const", + "BuildTimeD": 12, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 12000000, + "TownHallLevel": 14, + "CapitalHallLevel": 14, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "UnitProduction": 105, + "ProducesUnitsOfType": 1, + "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", + "Hitpoints": 1250, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 400, + "PreviewScenario": "NoCombatBuilding" + }, + "17": { + "BuildingLevel": 17, + "TID": "TID_BUILDING_BARRACK", + "InfoTID": "TID_BARRACK_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "barracks_lvl17", + "ExportNameConstruction": "barracks_const", + "BuildTimeD": 14, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 16000000, + "TownHallLevel": 15, + "CapitalHallLevel": 15, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "UnitProduction": 110, + "ProducesUnitsOfType": 1, + "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", + "Hitpoints": 1350, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 400, + "PreviewScenario": "NoCombatBuilding" + } + }, + "Laboratory": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_LABORATORY", + "InfoTID": "TID_LABORATORY_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "laboratory_lvl1", + "ExportNameConstruction": "laboratory_const", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 1, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 5000, + "TownHallLevel": 3, + "CapitalHallLevel": 3, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "laboratory_upg", + "UpgradesUnitType": "UNIT", + "Hitpoints": 500, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "laboratory_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 1000, + "PreviewScenario": "NoCombatBuilding" + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_LABORATORY", + "InfoTID": "TID_LABORATORY_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "laboratory_lvl2", + "ExportNameConstruction": "laboratory_const", + "BuildTimeD": 0, + "BuildTimeH": 1, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 25000, + "TownHallLevel": 4, + "CapitalHallLevel": 4, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "laboratory_upg", + "UpgradesUnitType": "UNIT", + "Hitpoints": 550, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_round_rock", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "laboratory_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 1000, + "PreviewScenario": "NoCombatBuilding" + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_LABORATORY", + "InfoTID": "TID_LABORATORY_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "laboratory_lvl3", + "ExportNameConstruction": "laboratory_const", + "BuildTimeD": 0, + "BuildTimeH": 2, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 50000, + "TownHallLevel": 5, + "CapitalHallLevel": 5, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "laboratory_upg", + "UpgradesUnitType": "UNIT", + "Hitpoints": 600, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_round_rock", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "laboratory_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 1000, + "PreviewScenario": "NoCombatBuilding" + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_LABORATORY", + "InfoTID": "TID_LABORATORY_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "laboratory_lvl4", + "ExportNameConstruction": "laboratory_const", + "BuildTimeD": 0, + "BuildTimeH": 4, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 100000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "laboratory_upg", + "UpgradesUnitType": "UNIT", + "Hitpoints": 650, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_round_rock", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "laboratory_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 1000, + "PreviewScenario": "NoCombatBuilding" + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_LABORATORY", + "InfoTID": "TID_LABORATORY_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "laboratory_lvl5", + "ExportNameConstruction": "laboratory_const", + "BuildTimeD": 0, + "BuildTimeH": 8, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 200000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "laboratory_upg", + "UpgradesUnitType": "UNIT", + "Hitpoints": 700, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_round_rock", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "laboratory_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 1000, + "PreviewScenario": "NoCombatBuilding" + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_BUILDING_LABORATORY", + "InfoTID": "TID_LABORATORY_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "laboratory_lvl6", + "ExportNameConstruction": "laboratory_const", + "BuildTimeD": 0, + "BuildTimeH": 16, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 400000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "laboratory_upg", + "UpgradesUnitType": "UNIT", + "Hitpoints": 750, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_round_rock", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "laboratory_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 1000, + "PreviewScenario": "NoCombatBuilding" + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_BUILDING_LABORATORY", + "InfoTID": "TID_LABORATORY_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "laboratory_lvl7", + "ExportNameConstruction": "laboratory_const", + "BuildTimeD": 1, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 800000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "laboratory_upg", + "UpgradesUnitType": "UNIT", + "Hitpoints": 830, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_round_rock", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "laboratory_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 1000, + "PreviewScenario": "NoCombatBuilding" + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_BUILDING_LABORATORY", + "InfoTID": "TID_LABORATORY_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "laboratory_lvl8", + "ExportNameConstruction": "laboratory_const", + "BuildTimeD": 1, + "BuildTimeH": 18, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 1300000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "laboratory_upg", + "UpgradesUnitType": "UNIT", + "Hitpoints": 950, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_round_rock", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "laboratory_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 1000, + "PreviewScenario": "NoCombatBuilding" + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_BUILDING_LABORATORY", + "InfoTID": "TID_LABORATORY_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "laboratory_lvl9", + "ExportNameConstruction": "laboratory_const", + "BuildTimeD": 2, + "BuildTimeH": 18, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 2100000, + "TownHallLevel": 11, + "CapitalHallLevel": 11, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "laboratory_upg", + "UpgradesUnitType": "UNIT", + "Hitpoints": 1070, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_round_rock", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "laboratory_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 1000, + "PreviewScenario": "NoCombatBuilding" + }, + "10": { + "BuildingLevel": 10, + "TID": "TID_BUILDING_LABORATORY", + "InfoTID": "TID_LABORATORY_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "laboratory_lvl10", + "ExportNameConstruction": "laboratory_const", + "BuildTimeD": 4, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 3800000, + "TownHallLevel": 12, + "CapitalHallLevel": 12, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "laboratory_upg", + "UpgradesUnitType": "UNIT", + "Hitpoints": 1140, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_round_rock", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "laboratory_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 1000, + "PreviewScenario": "NoCombatBuilding" + }, + "11": { + "BuildingLevel": 11, + "TID": "TID_BUILDING_LABORATORY", + "InfoTID": "TID_LABORATORY_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "laboratory_lvl11", + "ExportNameConstruction": "laboratory_const", + "BuildTimeD": 6, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 5500000, + "TownHallLevel": 13, + "CapitalHallLevel": 13, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "laboratory_upg", + "UpgradesUnitType": "UNIT", + "Hitpoints": 1210, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_round_rock", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "laboratory_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 1000, + "PreviewScenario": "NoCombatBuilding" + }, + "12": { + "BuildingLevel": 12, + "TID": "TID_BUILDING_LABORATORY", + "InfoTID": "TID_LABORATORY_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "laboratory_lvl12", + "ExportNameConstruction": "laboratory_const", + "BuildTimeD": 11, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 8100000, + "TownHallLevel": 14, + "CapitalHallLevel": 14, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "laboratory_upg", + "UpgradesUnitType": "UNIT", + "Hitpoints": 1280, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_round_rock", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "laboratory_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 1000, + "PreviewScenario": "NoCombatBuilding" + }, + "13": { + "BuildingLevel": 13, + "TID": "TID_BUILDING_LABORATORY", + "InfoTID": "TID_LABORATORY_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "laboratory_lvl13", + "ExportNameConstruction": "laboratory_const", + "BuildTimeD": 12, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 12500000, + "TownHallLevel": 15, + "CapitalHallLevel": 15, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "laboratory_upg", + "UpgradesUnitType": "UNIT", + "Hitpoints": 1350, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_round_rock", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "laboratory_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 1000, + "PreviewScenario": "NoCombatBuilding" + }, + "14": { + "BuildingLevel": 14, + "TID": "TID_BUILDING_LABORATORY", + "InfoTID": "TID_LABORATORY_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "laboratory_lvl14", + "ExportNameConstruction": "laboratory_const", + "BuildTimeD": 16, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 13500000, + "TownHallLevel": 16, + "CapitalHallLevel": 16, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "laboratory_upg", + "UpgradesUnitType": "UNIT", + "Hitpoints": 1400, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_round_rock", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "laboratory_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 1000, + "PreviewScenario": "NoCombatBuilding" + } + }, + "Cannon": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_CANNON", + "InfoTID": "TID_BASIC_TURRET_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "basic_turret_lvl1", + "ExportNameConstruction": "basic_turret_const", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 10, + "BuildResource": "Gold", + "BuildCost": 250, + "TownHallLevel": 1000, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "basic_turret_upg", + "Hitpoints": 420, + "RegenTime": 15, + "AttackRange": 900, + "AttackSpeed": 800, + "DPS": 9, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Cannon Attack", + "HitEffect": "Generic Hit", + "Projectile": "Cannonball", + "AltProjectile": "Cannonball", + "ExportNameDamaged": "destroyedBuilding_3s_pit_none", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "basic_cannon_lvl1_base", + "AirTargets": false, + "GroundTargets": true, + "PickUpEffect": "Basic Turret Pickup", + "PlacingEffect": "Basic Turret Placing", + "AnimateTurret": true + } + }, + "Archer Tower": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_ARCHER_TOWER2", + "InfoTID": "TID_ARCHER_TOWER2_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "adv_archer_tower_lvl1", + "ExportNameConstruction": "tower_turret_const", + "ExportNameLocked": "adv_archer_tower_broken", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 5, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 12000, + "TownHallLevel": 2, + "CapitalHallLevel": 2, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 500, + "RegenTime": 1, + "AttackRange": 1000, + "AltAttackMode": true, + "AltAttackRange": 700, + "AttackSpeed": 1000, + "AltAttackSpeed": 450, + "DPS": 40, + "AltDPS": 89, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Archer Attack", + "HitEffect": "Generic Hit", + "Projectile": "Tower Arrow HIGH", + "AltProjectile": "Tower Arrow LOW", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "defense_tower_turret_base", + "AirTargets": true, + "GroundTargets": true, + "AltAirTargets": true, + "AltGroundTargets": true, + "ToggleAttackModeEffect": "Bow Target", + "PickUpEffect": "Tower Turret Pickup", + "PlacingEffect": "Tower Turret Placing", + "DefenderCharacter": "Archer", + "DefenderCount": 1, + "DefenderZ": 150, + "AltDefenderZ": 58, + "StrengthWeight": 254, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "AirAndGroundDefense2" + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_ARCHER_TOWER2", + "InfoTID": "TID_ARCHER_TOWER2_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "adv_archer_tower_lvl2", + "ExportNameConstruction": "tower_turret_const", + "ExportNameLocked": "adv_archer_tower_broken", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 15, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 30000, + "TownHallLevel": 3, + "CapitalHallLevel": 3, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 575, + "RegenTime": 1, + "AttackRange": 1000, + "AltAttackMode": true, + "AltAttackRange": 700, + "AttackSpeed": 1000, + "AltAttackSpeed": 450, + "DPS": 44, + "AltDPS": 98, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Archer Attack", + "HitEffect": "Generic Hit", + "Projectile": "Tower Arrow HIGH", + "AltProjectile": "Tower Arrow LOW", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "defense_tower_turret_base", + "AirTargets": true, + "GroundTargets": true, + "AltAirTargets": true, + "AltGroundTargets": true, + "ToggleAttackModeEffect": "Bow Target", + "PickUpEffect": "Tower Turret Pickup", + "PlacingEffect": "Tower Turret Placing", + "DefenderCharacter": "Archer", + "DefenderCount": 1, + "DefenderZ": 150, + "AltDefenderZ": 58, + "StrengthWeight": 260, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "AirAndGroundDefense2" + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_ARCHER_TOWER2", + "InfoTID": "TID_ARCHER_TOWER2_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "adv_archer_tower_lvl3", + "ExportNameConstruction": "tower_turret_const", + "ExportNameLocked": "adv_archer_tower_broken", + "BuildTimeD": 0, + "BuildTimeH": 2, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 60000, + "TownHallLevel": 3, + "CapitalHallLevel": 3, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 660, + "RegenTime": 1, + "AttackRange": 1000, + "AltAttackMode": true, + "AltAttackRange": 700, + "AttackSpeed": 1000, + "AltAttackSpeed": 450, + "DPS": 48, + "AltDPS": 107, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Archer Attack", + "HitEffect": "Generic Hit", + "Projectile": "Tower Arrow HIGH", + "AltProjectile": "Tower Arrow LOW", + "ExportNameDamaged": "destroyedBuilding_3m_base_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "defense_tower_turret_base", + "AirTargets": true, + "GroundTargets": true, + "AltAirTargets": true, + "AltGroundTargets": true, + "ToggleAttackModeEffect": "Bow Target", + "PickUpEffect": "Tower Turret Pickup", + "PlacingEffect": "Tower Turret Placing", + "DefenderCharacter": "Archer", + "DefenderCount": 1, + "DefenderZ": 150, + "AltDefenderZ": 58, + "StrengthWeight": 266, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "AirAndGroundDefense2" + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_ARCHER_TOWER2", + "InfoTID": "TID_ARCHER_TOWER2_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "adv_archer_tower_lvl4", + "ExportNameConstruction": "tower_turret_const", + "ExportNameLocked": "adv_archer_tower_broken", + "BuildTimeD": 0, + "BuildTimeH": 8, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 250000, + "TownHallLevel": 4, + "CapitalHallLevel": 4, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 760, + "RegenTime": 1, + "AttackRange": 1000, + "AltAttackMode": true, + "AltAttackRange": 700, + "AttackSpeed": 1000, + "AltAttackSpeed": 450, + "DPS": 53, + "AltDPS": 118, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Archer Attack", + "HitEffect": "Generic Hit", + "Projectile": "Tower Arrow HIGH", + "AltProjectile": "Tower Arrow LOW", + "ExportNameDamaged": "destroyedBuilding_3m_base_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "defense_tower_turret_base", + "AirTargets": true, + "GroundTargets": true, + "AltAirTargets": true, + "AltGroundTargets": true, + "ToggleAttackModeEffect": "Bow Target", + "PickUpEffect": "Tower Turret Pickup", + "PlacingEffect": "Tower Turret Placing", + "DefenderCharacter": "Archer2", + "DefenderCount": 1, + "DefenderZ": 150, + "AltDefenderZ": 58, + "StrengthWeight": 272, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "AirAndGroundDefense2" + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_ARCHER_TOWER2", + "InfoTID": "TID_ARCHER_TOWER2_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "adv_archer_tower_lvl5", + "ExportNameConstruction": "tower_turret_const", + "ExportNameLocked": "adv_archer_tower_broken", + "BuildTimeD": 1, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 800000, + "TownHallLevel": 5, + "CapitalHallLevel": 5, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 875, + "RegenTime": 1, + "AttackRange": 1000, + "AltAttackMode": true, + "AltAttackRange": 700, + "AttackSpeed": 1000, + "AltAttackSpeed": 450, + "DPS": 59, + "AltDPS": 131, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Archer Attack", + "HitEffect": "Generic Hit", + "Projectile": "Tower Arrow HIGH", + "AltProjectile": "Tower Arrow LOW", + "ExportNameDamaged": "destroyedBuilding_3m_base_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "defense_tower_turret_base", + "AirTargets": true, + "GroundTargets": true, + "AltAirTargets": true, + "AltGroundTargets": true, + "ToggleAttackModeEffect": "Bow Target", + "PickUpEffect": "Tower Turret Pickup", + "PlacingEffect": "Tower Turret Placing", + "DefenderCharacter": "Archer2", + "DefenderCount": 1, + "DefenderZ": 150, + "AltDefenderZ": 58, + "StrengthWeight": 280, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "AirAndGroundDefense2" + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_BUILDING_ARCHER_TOWER2", + "InfoTID": "TID_ARCHER_TOWER2_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "adv_archer_tower_lvl6", + "ExportNameConstruction": "tower_turret_const", + "ExportNameLocked": "adv_archer_tower_broken", + "BuildTimeD": 2, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 1200000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 1050, + "RegenTime": 1, + "AttackRange": 1000, + "AltAttackMode": true, + "AltAttackRange": 700, + "AttackSpeed": 1000, + "AltAttackSpeed": 450, + "DPS": 64, + "AltDPS": 142, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Archer Attack", + "HitEffect": "Generic Hit", + "Projectile": "Tower Arrow HIGH", + "AltProjectile": "Tower Arrow LOW", + "ExportNameDamaged": "destroyedBuilding_3m_base_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "defense_tower_turret_base", + "AirTargets": true, + "GroundTargets": true, + "AltAirTargets": true, + "AltGroundTargets": true, + "ToggleAttackModeEffect": "Bow Target", + "PickUpEffect": "Tower Turret Pickup", + "PlacingEffect": "Tower Turret Placing", + "DefenderCharacter": "Archer3", + "DefenderCount": 1, + "DefenderZ": 150, + "AltDefenderZ": 58, + "StrengthWeight": 288, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "AirAndGroundDefense2" + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_BUILDING_ARCHER_TOWER2", + "InfoTID": "TID_ARCHER_TOWER2_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "adv_archer_tower_lvl7", + "ExportNameConstruction": "tower_turret_const", + "ExportNameLocked": "adv_archer_tower_broken", + "BuildTimeD": 4, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 2000000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 1250, + "RegenTime": 1, + "AttackRange": 1000, + "AltAttackMode": true, + "AltAttackRange": 700, + "AttackSpeed": 1000, + "AltAttackSpeed": 450, + "DPS": 71, + "AltDPS": 158, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Archer Attack", + "HitEffect": "Explosive Arrow", + "Projectile": "Tower Arrow HIGH", + "AltProjectile": "Tower Arrow LOW", + "ExportNameDamaged": "destroyedBuilding_3m_base_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "defense_tower_turret_base", + "AirTargets": true, + "GroundTargets": true, + "AltAirTargets": true, + "AltGroundTargets": true, + "ToggleAttackModeEffect": "Bow Target", + "PickUpEffect": "Tower Turret Pickup", + "PlacingEffect": "Tower Turret Placing", + "DefenderCharacter": "Archer3", + "DefenderCount": 1, + "DefenderZ": 160, + "AltDefenderZ": 68, + "StrengthWeight": 296, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "AirAndGroundDefense2" + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_BUILDING_ARCHER_TOWER2", + "InfoTID": "TID_ARCHER_TOWER2_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "adv_archer_tower_lvl8", + "ExportNameConstruction": "tower_turret_const", + "ExportNameLocked": "adv_archer_tower_broken", + "BuildTimeD": 6, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 2800000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 1450, + "RegenTime": 1, + "AttackRange": 1000, + "AltAttackMode": true, + "AltAttackRange": 700, + "AttackSpeed": 1000, + "AltAttackSpeed": 450, + "DPS": 78, + "AltDPS": 173, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Archer Attack", + "HitEffect": "Explosive Arrow", + "Projectile": "Tower Arrow HIGH", + "AltProjectile": "Tower Arrow LOW", + "ExportNameDamaged": "destroyedBuilding_3m_base_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "defense_tower_turret_base", + "AirTargets": true, + "GroundTargets": true, + "AltAirTargets": true, + "AltGroundTargets": true, + "ToggleAttackModeEffect": "Bow Target", + "PickUpEffect": "Tower Turret Pickup", + "PlacingEffect": "Tower Turret Placing", + "DefenderCharacter": "Archer6", + "DefenderCount": 1, + "DefenderZ": 160, + "AltDefenderZ": 68, + "StrengthWeight": 304, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "AirAndGroundDefense2" + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_BUILDING_ARCHER_TOWER2", + "InfoTID": "TID_ARCHER_TOWER2_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "adv_archer_tower_lvl9", + "ExportNameConstruction": "tower_turret_const", + "ExportNameLocked": "adv_archer_tower_broken", + "BuildTimeD": 8, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 3600000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 1650, + "RegenTime": 1, + "AttackRange": 1000, + "AltAttackMode": true, + "AltAttackRange": 700, + "AttackSpeed": 1000, + "AltAttackSpeed": 450, + "DPS": 86, + "AltDPS": 191, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Archer Attack", + "HitEffect": "Explosive Arrow", + "Projectile": "Tower Arrow HIGH", + "AltProjectile": "Tower Arrow LOW", + "ExportNameDamaged": "destroyedBuilding_3m_base_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "defense_tower_turret_base", + "AirTargets": true, + "GroundTargets": true, + "AltAirTargets": true, + "AltGroundTargets": true, + "ToggleAttackModeEffect": "Bow Target", + "PickUpEffect": "Tower Turret Pickup", + "PlacingEffect": "Tower Turret Placing", + "DefenderCharacter": "Archer6", + "DefenderCount": 1, + "DefenderZ": 160, + "AltDefenderZ": 68, + "StrengthWeight": 312, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "AirAndGroundDefense2" + }, + "10": { + "BuildingLevel": 10, + "TID": "TID_BUILDING_ARCHER_TOWER2", + "InfoTID": "TID_ARCHER_TOWER2_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "adv_archer_tower_lvl10", + "ExportNameConstruction": "tower_turret_const", + "ExportNameLocked": "adv_archer_tower_broken", + "BuildTimeD": 9, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 4600000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 1850, + "RegenTime": 1, + "AttackRange": 1000, + "AltAttackMode": true, + "AltAttackRange": 700, + "AttackSpeed": 1000, + "AltAttackSpeed": 450, + "DPS": 94, + "AltDPS": 209, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Archer Attack", + "HitEffect": "Explosive Arrow", + "Projectile": "Tower Arrow HIGH", + "AltProjectile": "Tower Arrow LOW", + "ExportNameDamaged": "destroyedBuilding_3m_base_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "defense_tower_turret_base", + "AirTargets": true, + "GroundTargets": true, + "AltAirTargets": true, + "AltGroundTargets": true, + "ToggleAttackModeEffect": "Bow Target", + "PickUpEffect": "Tower Turret Pickup", + "PlacingEffect": "Tower Turret Placing", + "DefenderCharacter": "Archer6", + "DefenderCount": 1, + "DefenderZ": 160, + "AltDefenderZ": 68, + "StrengthWeight": 320, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "AirAndGroundDefense2" + } + }, + "Wall": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_WALL", + "InfoTID": "TID_WALL_INFO", + "BuildingClass": "Wall", + "SWF": "sc/buildings2.sc", + "ExportName": "secondVillage_wall_lvl1", + "ExportNameConstruction": "generic_construction_state1", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 1000, + "TownHallLevel": 2, + "CapitalHallLevel": 2, + "Width": 1, + "Height": 1, + "ExportNameBuildAnim": "dummy_particle", + "Hitpoints": 900, + "RegenTime": 1, + "DestroyEffect": "wall_lvl1_destroyed", + "ExportNameDamaged": "wall_destructed_lvl1", + "WallCornerPieces": "Looping", + "StartingHomeCount": 10, + "StrengthWeight": 100, + "AltBuildResource": "Elixir2", + "VillageType": 1, + "StartUpgradeBoosterCost": 1, + "HintPriority": 50 + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_WALL", + "InfoTID": "TID_WALL_INFO", + "BuildingClass": "Wall", + "SWF": "sc/buildings2.sc", + "ExportName": "secondVillage_wall_lvl2", + "ExportNameConstruction": "generic_construction_state1", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 2000, + "TownHallLevel": 3, + "CapitalHallLevel": 2, + "Width": 1, + "Height": 1, + "ExportNameBuildAnim": "dummy_particle", + "Hitpoints": 1100, + "RegenTime": 1, + "DestroyEffect": "wall_lvl2_destroyed", + "ExportNameDamaged": "wall_destructed_lvl2", + "WallCornerPieces": "Looping", + "StartingHomeCount": 10, + "StrengthWeight": 100, + "AltBuildResource": "Elixir2", + "VillageType": 1, + "StartUpgradeBoosterCost": 1, + "HintPriority": 50 + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_WALL", + "InfoTID": "TID_WALL_INFO", + "BuildingClass": "Wall", + "SWF": "sc/buildings2.sc", + "ExportName": "secondVillage_wall_lvl3", + "ExportNameConstruction": "generic_construction_state1", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 10000, + "TownHallLevel": 3, + "CapitalHallLevel": 3, + "Width": 1, + "Height": 1, + "ExportNameBuildAnim": "dummy_particle", + "Hitpoints": 1300, + "RegenTime": 1, + "DestroyEffect": "wall_lvl2_destroyed", + "ExportNameDamaged": "wall_destructed_lvl2", + "WallCornerPieces": "Looping", + "StartingHomeCount": 10, + "StrengthWeight": 100, + "AltBuildResource": "Elixir2", + "VillageType": 1, + "StartUpgradeBoosterCost": 1, + "HintPriority": 50 + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_WALL", + "InfoTID": "TID_WALL_INFO", + "BuildingClass": "Wall", + "SWF": "sc/buildings2.sc", + "ExportName": "secondVillage_wall_lvl4", + "ExportNameConstruction": "generic_construction_state1", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 50000, + "TownHallLevel": 4, + "CapitalHallLevel": 4, + "Width": 1, + "Height": 1, + "ExportNameBuildAnim": "dummy_particle", + "Hitpoints": 1600, + "RegenTime": 1, + "DestroyEffect": "wall_lvl2_destroyed", + "ExportNameDamaged": "wall_destructed_lvl2", + "WallCornerPieces": "Looping", + "StartingHomeCount": 10, + "StrengthWeight": 100, + "AltBuildResource": "Elixir2", + "VillageType": 1, + "StartUpgradeBoosterCost": 1, + "HintPriority": 50 + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_WALL", + "InfoTID": "TID_WALL_INFO", + "BuildingClass": "Wall", + "SWF": "sc/buildings2.sc", + "ExportName": "secondVillage_wall_lvl5", + "ExportNameConstruction": "generic_construction_state1", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 150000, + "TownHallLevel": 5, + "CapitalHallLevel": 5, + "Width": 1, + "Height": 1, + "ExportNameBuildAnim": "dummy_particle", + "Hitpoints": 1900, + "RegenTime": 1, + "DestroyEffect": "wall_lvl2_destroyed", + "ExportNameDamaged": "wall_destructed_lvl2", + "WallCornerPieces": "Looping", + "StartingHomeCount": 10, + "StrengthWeight": 100, + "VillageType": 1, + "StartUpgradeBoosterCost": 1, + "HintPriority": 50 + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_BUILDING_WALL", + "InfoTID": "TID_WALL_INFO", + "BuildingClass": "Wall", + "SWF": "sc/buildings2.sc", + "ExportName": "secondVillage_wall_lvl6", + "ExportNameConstruction": "generic_construction_state1", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 240000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 1, + "Height": 1, + "ExportNameBuildAnim": "dummy_particle", + "Hitpoints": 2200, + "RegenTime": 1, + "DestroyEffect": "wall_lvl2_destroyed", + "ExportNameDamaged": "wall_destructed_lvl2", + "WallCornerPieces": "Looping", + "StartingHomeCount": 10, + "StrengthWeight": 100, + "VillageType": 1, + "StartUpgradeBoosterCost": 1, + "HintPriority": 50 + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_BUILDING_WALL", + "InfoTID": "TID_WALL_INFO", + "BuildingClass": "Wall", + "SWF": "sc/buildings2.sc", + "ExportName": "secondVillage_wall_lvl7", + "ExportNameConstruction": "generic_construction_state1", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 400000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 1, + "Height": 1, + "ExportNameBuildAnim": "dummy_particle", + "Hitpoints": 2500, + "RegenTime": 1, + "DestroyEffect": "wall_lvl2_destroyed", + "ExportNameDamaged": "wall_destructed_lvl2", + "WallCornerPieces": "Looping", + "StartingHomeCount": 10, + "StrengthWeight": 100, + "VillageType": 1, + "StartUpgradeBoosterCost": 1, + "HintPriority": 50 + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_BUILDING_WALL", + "InfoTID": "TID_WALL_INFO", + "BuildingClass": "Wall", + "SWF": "sc/buildings2.sc", + "ExportName": "secondVillage_wall_lvl8", + "ExportNameConstruction": "generic_construction_state1", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 600000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 1, + "Height": 1, + "ExportNameBuildAnim": "dummy_particle", + "Hitpoints": 2750, + "RegenTime": 1, + "DestroyEffect": "wall_lvl2_destroyed", + "ExportNameDamaged": "wall_destructed_lvl2", + "WallCornerPieces": "Looping", + "StartingHomeCount": 10, + "StrengthWeight": 100, + "VillageType": 1, + "StartUpgradeBoosterCost": 2, + "HintPriority": 50 + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_BUILDING_WALL", + "InfoTID": "TID_WALL_INFO", + "BuildingClass": "Wall", + "SWF": "sc/buildings2.sc", + "ExportName": "secondVillage_wall_lvl9", + "ExportNameConstruction": "generic_construction_state1", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 800000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 1, + "Height": 1, + "ExportNameBuildAnim": "dummy_particle", + "Hitpoints": 3050, + "RegenTime": 1, + "DestroyEffect": "wall_lvl2_destroyed", + "ExportNameDamaged": "wall_destructed_lvl2", + "WallCornerPieces": "Looping", + "StartingHomeCount": 10, + "StrengthWeight": 100, + "VillageType": 1, + "StartUpgradeBoosterCost": 2, + "HintPriority": 50 + }, + "10": { + "BuildingLevel": 10, + "TID": "TID_BUILDING_WALL", + "InfoTID": "TID_WALL_INFO", + "BuildingClass": "Wall", + "SWF": "sc/buildings2.sc", + "ExportName": "secondVillage_wall_lvl10", + "ExportNameConstruction": "generic_construction_state1", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 1000000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 1, + "Height": 1, + "ExportNameBuildAnim": "dummy_particle", + "Hitpoints": 3350, + "RegenTime": 1, + "DestroyEffect": "wall_lvl2_destroyed", + "ExportNameDamaged": "wall_destructed_lvl2", + "WallCornerPieces": "Synced", + "StartingHomeCount": 10, + "StrengthWeight": 100, + "VillageType": 1, + "StartUpgradeBoosterCost": 2, + "HintPriority": 50 + } + }, + "Wizard Tower": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_WIZARD_TOWER", + "InfoTID": "TID_WIZARD_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "wizard_tower_lvl1", + "ExportNameConstruction": "wizard_tower_const", + "BuildTimeD": 0, + "BuildTimeH": 3, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 120000, + "TownHallLevel": 5, + "CapitalHallLevel": 5, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "wizard_tower_upg", + "Hitpoints": 620, + "RegenTime": 15, + "AttackRange": 700, + "AttackSpeed": 1300, + "DPS": 11, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "WizardTower_attack", + "HitEffect": "Wizard Tower hit", + "Projectile": "wizardTower_projectile", + "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "wizard_tower_base", + "AirTargets": true, + "GroundTargets": true, + "DamageRadius": 100, + "PickUpEffect": "Wizard Tower Pickup", + "PlacingEffect": "Wizard Tower Placing", + "DefenderCharacter": "Wizard", + "DefenderCount": 1, + "DefenderZ": 155, + "StrengthWeight": 450, + "HintPriority": 150, + "PreviewScenario": "Defense" + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_WIZARD_TOWER", + "InfoTID": "TID_WIZARD_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "wizard_tower_lvl4", + "ExportNameConstruction": "wizard_tower_const", + "BuildTimeD": 0, + "BuildTimeH": 3, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 220000, + "TownHallLevel": 5, + "CapitalHallLevel": 5, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "wizard_tower_upg", + "Hitpoints": 650, + "RegenTime": 16, + "AttackRange": 700, + "AttackSpeed": 1300, + "DPS": 13, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "WizardTower_attack", + "HitEffect": "Wizard Tower hit", + "Projectile": "wizardTower_projectile", + "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "wizard_tower_base", + "AirTargets": true, + "GroundTargets": true, + "DamageRadius": 100, + "PickUpEffect": "Wizard Tower Pickup", + "PlacingEffect": "Wizard Tower Placing", + "DefenderCharacter": "Wizard", + "DefenderCount": 1, + "DefenderZ": 155, + "StrengthWeight": 420, + "HintPriority": 150, + "PreviewScenario": "Defense" + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_WIZARD_TOWER", + "InfoTID": "TID_WIZARD_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "wizard_tower_lvl7", + "ExportNameConstruction": "wizard_tower_const", + "BuildTimeD": 0, + "BuildTimeH": 8, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 400000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "wizard_tower_upg", + "Hitpoints": 680, + "RegenTime": 17, + "AttackRange": 700, + "AttackSpeed": 1300, + "DPS": 16, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "WizardTower_attack", + "HitEffect": "Wizard Tower hit", + "Projectile": "wizardTower_projectile", + "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "wizard_tower_base", + "AirTargets": true, + "GroundTargets": true, + "DamageRadius": 100, + "PickUpEffect": "Wizard Tower Pickup", + "PlacingEffect": "Wizard Tower Placing", + "DefenderCharacter": "Wizard2", + "DefenderCount": 1, + "DefenderZ": 155, + "StrengthWeight": 390, + "HintPriority": 150, + "PreviewScenario": "Defense" + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_WIZARD_TOWER", + "InfoTID": "TID_WIZARD_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "wizard_tower_lvl8", + "ExportNameConstruction": "wizard_tower_const", + "BuildTimeD": 0, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 540000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "wizard_tower_upg", + "Hitpoints": 730, + "RegenTime": 18, + "AttackRange": 700, + "AttackSpeed": 1300, + "DPS": 20, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "WizardTower_attack", + "HitEffect": "Wizard Tower hit", + "Projectile": "wizardTower_projectile", + "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "wizard_tower_base", + "AirTargets": true, + "GroundTargets": true, + "DamageRadius": 100, + "PickUpEffect": "Wizard Tower Pickup", + "PlacingEffect": "Wizard Tower Placing", + "DefenderCharacter": "Wizard2", + "DefenderCount": 1, + "DefenderZ": 155, + "StrengthWeight": 360, + "HintPriority": 150, + "PreviewScenario": "Defense" + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_WIZARD_TOWER", + "InfoTID": "TID_WIZARD_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "wizard_tower_lvl9", + "ExportNameConstruction": "wizard_tower_const", + "BuildTimeD": 0, + "BuildTimeH": 18, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 700000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "wizard_tower_upg", + "Hitpoints": 840, + "RegenTime": 19, + "AttackRange": 700, + "AttackSpeed": 1300, + "DPS": 24, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "WizardTower_attack2", + "HitEffect": "Wizard Tower hit", + "Projectile": "wizardTower_projectile2", + "ExportNameDamaged": "destroyedBuilding_3l_round_pit_crystal", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "wizard_tower_base", + "AirTargets": true, + "GroundTargets": true, + "DamageRadius": 100, + "PickUpEffect": "Wizard Tower Pickup", + "PlacingEffect": "Wizard Tower Placing", + "DefenderCharacter": "Wizard3", + "DefenderCount": 1, + "DefenderZ": 155, + "StrengthWeight": 330, + "HintPriority": 150, + "PreviewScenario": "Defense" + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_BUILDING_WIZARD_TOWER", + "InfoTID": "TID_WIZARD_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "wizard_tower_lvl10", + "ExportNameConstruction": "wizard_tower_const", + "BuildTimeD": 1, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 1000000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "wizard_tower_upg", + "Hitpoints": 960, + "RegenTime": 20, + "AttackRange": 700, + "AttackSpeed": 1300, + "DPS": 32, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "WizardTower_attack2", + "HitEffect": "Wizard Tower hit", + "Projectile": "wizardTower_projectile2", + "ExportNameDamaged": "destroyedBuilding_3l_round_pit_crystal", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "wizard_tower_base", + "AirTargets": true, + "GroundTargets": true, + "DamageRadius": 100, + "PickUpEffect": "Wizard Tower Pickup", + "PlacingEffect": "Wizard Tower Placing", + "DefenderCharacter": "Wizard3", + "DefenderCount": 1, + "DefenderZ": 155, + "StrengthWeight": 300, + "HintPriority": 150, + "PreviewScenario": "Defense" + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_BUILDING_WIZARD_TOWER", + "InfoTID": "TID_WIZARD_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "wizard_tower_lvl11", + "ExportNameConstruction": "wizard_tower_const", + "BuildTimeD": 1, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 2000000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "wizard_tower_upg", + "Hitpoints": 1200, + "RegenTime": 21, + "AttackRange": 700, + "AttackSpeed": 1300, + "DPS": 40, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "WizardTower_attack2", + "HitEffect": "Wizard Tower hit", + "Projectile": "wizardTower_projectile2", + "ExportNameDamaged": "destroyedBuilding_3l_round_pit_crystaldark", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "wizard_tower_base", + "AirTargets": true, + "GroundTargets": true, + "DamageRadius": 100, + "PickUpEffect": "Wizard Tower Pickup", + "PlacingEffect": "Wizard Tower Placing", + "DefenderCharacter": "Wizard6", + "DefenderCount": 1, + "DefenderZ": 155, + "StrengthWeight": 270, + "HintPriority": 150, + "PreviewScenario": "Defense" + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_BUILDING_WIZARD_TOWER", + "InfoTID": "TID_WIZARD_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "wizard_tower_lvl12", + "ExportNameConstruction": "wizard_tower_const", + "BuildTimeD": 2, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 2200000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "wizard_tower_upg", + "Hitpoints": 1440, + "RegenTime": 21, + "AttackRange": 700, + "AttackSpeed": 1300, + "DPS": 45, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "WizardTower_attack3", + "HitEffect": "Wizard Tower hit", + "Projectile": "wizardTower_projectile3", + "ExportNameDamaged": "destroyedBuilding_3l_round_pit_crystaldark", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "wizard_tower_base", + "AirTargets": true, + "GroundTargets": true, + "DamageRadius": 100, + "PickUpEffect": "Wizard Tower Pickup", + "PlacingEffect": "Wizard Tower Placing", + "DefenderCharacter": "Wizard6", + "DefenderCount": 1, + "DefenderZ": 135, + "StrengthWeight": 240, + "HintPriority": 150, + "PreviewScenario": "Defense" + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_BUILDING_WIZARD_TOWER", + "InfoTID": "TID_WIZARD_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "wizard_tower_lvl13", + "ExportNameConstruction": "wizard_tower_const", + "BuildTimeD": 2, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 2800000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "wizard_tower_upg", + "Hitpoints": 1680, + "RegenTime": 21, + "AttackRange": 700, + "AttackSpeed": 1300, + "DPS": 50, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "WizardTower_attack3", + "HitEffect": "Wizard Tower hit", + "Projectile": "wizardTower_projectile3", + "ExportNameDamaged": "destroyedBuilding_3l_round_pit_crystaldark", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "wizard_tower_base", + "AirTargets": true, + "GroundTargets": true, + "DamageRadius": 100, + "PickUpEffect": "Wizard Tower Pickup", + "PlacingEffect": "Wizard Tower Placing", + "DefenderCharacter": "Wizard7", + "DefenderCount": 1, + "DefenderZ": 135, + "StrengthWeight": 240, + "HintPriority": 150, + "PreviewScenario": "Defense" + }, + "10": { + "BuildingLevel": 10, + "TID": "TID_BUILDING_WIZARD_TOWER", + "InfoTID": "TID_WIZARD_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "wizard_tower_lvl14", + "ExportNameConstruction": "wizard_tower_const", + "BuildTimeD": 3, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 4000000, + "TownHallLevel": 11, + "CapitalHallLevel": 11, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "wizard_tower_upg", + "Hitpoints": 2000, + "RegenTime": 21, + "AttackRange": 700, + "AttackSpeed": 1300, + "DPS": 62, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "WizardTower_attack3", + "HitEffect": "Wizard Tower hit", + "Projectile": "wizardTower_projectile4", + "ExportNameDamaged": "destroyedBuilding_3l_round_pit_crystaldark", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "wizard_tower_base", + "AirTargets": true, + "GroundTargets": true, + "DamageRadius": 100, + "PickUpEffect": "Wizard Tower Pickup", + "PlacingEffect": "Wizard Tower Placing", + "DefenderCharacter": "Wizard7", + "DefenderCount": 1, + "DefenderZ": 135, + "StrengthWeight": 240, + "HintPriority": 150, + "PreviewScenario": "Defense" + }, + "11": { + "BuildingLevel": 11, + "TID": "TID_BUILDING_WIZARD_TOWER", + "InfoTID": "TID_WIZARD_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "wizard_tower_lvl15", + "ExportNameConstruction": "wizard_tower_const", + "BuildTimeD": 7, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 7200000, + "TownHallLevel": 12, + "CapitalHallLevel": 12, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "wizard_tower_upg", + "Hitpoints": 2240, + "RegenTime": 21, + "AttackRange": 700, + "AttackSpeed": 1300, + "DPS": 70, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "WizardTower_attack3", + "HitEffect": "Wizard Tower hit", + "Projectile": "wizardTower_projectile4", + "ExportNameDamaged": "destroyedBuilding_3l_round_pit_crystaldark", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "wizard_tower_base", + "AirTargets": true, + "GroundTargets": true, + "DamageRadius": 100, + "PickUpEffect": "Wizard Tower Pickup", + "PlacingEffect": "Wizard Tower Placing", + "DefenderCharacter": "Wizard8", + "DefenderCount": 1, + "DefenderZ": 135, + "StrengthWeight": 240, + "HintPriority": 150, + "PreviewScenario": "Defense" + }, + "12": { + "BuildingLevel": 12, + "TID": "TID_BUILDING_WIZARD_TOWER", + "InfoTID": "TID_WIZARD_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "wizard_tower_lvl16", + "ExportNameConstruction": "wizard_tower_const", + "BuildTimeD": 8, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 9200000, + "TownHallLevel": 13, + "CapitalHallLevel": 13, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "wizard_tower_upg", + "Hitpoints": 2480, + "RegenTime": 21, + "AttackRange": 700, + "AttackSpeed": 1300, + "DPS": 78, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "WizardTower_attack3", + "HitEffect": "Wizard Tower hit", + "Projectile": "wizardTower_projectile4", + "ExportNameDamaged": "destroyedBuilding_3l_round_pit_crystaldark", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "wizard_tower_base", + "AirTargets": true, + "GroundTargets": true, + "DamageRadius": 100, + "PickUpEffect": "Wizard Tower Pickup", + "PlacingEffect": "Wizard Tower Placing", + "DefenderCharacter": "Wizard8", + "DefenderCount": 1, + "DefenderZ": 135, + "StrengthWeight": 240, + "HintPriority": 150, + "PreviewScenario": "Defense" + }, + "13": { + "BuildingLevel": 13, + "TID": "TID_BUILDING_WIZARD_TOWER", + "InfoTID": "TID_WIZARD_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "wizard_tower_lvl17", + "ExportNameConstruction": "wizard_tower_const", + "BuildTimeD": 9, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 10200000, + "TownHallLevel": 13, + "CapitalHallLevel": 13, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "wizard_tower_upg", + "Hitpoints": 2700, + "RegenTime": 21, + "AttackRange": 700, + "AttackSpeed": 1300, + "DPS": 84, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "WizardTower_attack3", + "HitEffect": "Wizard Tower hit", + "Projectile": "wizardTower_projectile4", + "ExportNameDamaged": "destroyedBuilding_3l_round_pit_crystaldark", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "wizard_tower_base", + "AirTargets": true, + "GroundTargets": true, + "DamageRadius": 100, + "PickUpEffect": "Wizard Tower Pickup", + "PlacingEffect": "Wizard Tower Placing", + "DefenderCharacter": "Wizard9", + "DefenderCount": 1, + "DefenderZ": 135, + "StrengthWeight": 240, + "HintPriority": 150, + "PreviewScenario": "Defense" + }, + "14": { + "BuildingLevel": 14, + "TID": "TID_BUILDING_WIZARD_TOWER", + "InfoTID": "TID_WIZARD_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "wizard_tower_lvl18", + "ExportNameConstruction": "wizard_tower_const", + "BuildTimeD": 13, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 12000000, + "TownHallLevel": 14, + "CapitalHallLevel": 14, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "wizard_tower_upg", + "Hitpoints": 2900, + "RegenTime": 21, + "AttackRange": 700, + "AttackSpeed": 1300, + "DPS": 90, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "WizardTower_attack3", + "HitEffect": "Wizard Tower hit", + "Projectile": "wizardTower_projectile4", + "ExportNameDamaged": "destroyedBuilding_3l_round_pit_crystaldark", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "wizard_tower_base", + "AirTargets": true, + "GroundTargets": true, + "DamageRadius": 100, + "PickUpEffect": "Wizard Tower Pickup", + "PlacingEffect": "Wizard Tower Placing", + "DefenderCharacter": "Wizard10", + "DefenderCount": 1, + "DefenderZ": 135, + "StrengthWeight": 240, + "HintPriority": 150, + "PreviewScenario": "Defense" + }, + "15": { + "BuildingLevel": 15, + "TID": "TID_BUILDING_WIZARD_TOWER", + "InfoTID": "TID_WIZARD_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "wizard_tower_lvl19", + "ExportNameConstruction": "wizard_tower_const", + "BuildTimeD": 13, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 19200000, + "TownHallLevel": 15, + "CapitalHallLevel": 15, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "wizard_tower_upg", + "Hitpoints": 3000, + "RegenTime": 21, + "AttackRange": 700, + "AttackSpeed": 1300, + "DPS": 95, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "WizardTower_attack3", + "HitEffect": "Wizard Tower hit", + "Projectile": "wizardTower_projectile4", + "ExportNameDamaged": "destroyedBuilding_3l_round_pit_crystaldark", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "wizard_tower_base", + "AirTargets": true, + "GroundTargets": true, + "DamageRadius": 100, + "PickUpEffect": "Wizard Tower Pickup", + "PlacingEffect": "Wizard Tower Placing", + "DefenderCharacter": "Wizard11", + "DefenderCount": 1, + "DefenderZ": 135, + "StrengthWeight": 250, + "HintPriority": 150, + "PreviewScenario": "Defense" + }, + "16": { + "BuildingLevel": 16, + "TID": "TID_BUILDING_WIZARD_TOWER", + "InfoTID": "TID_WIZARD_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "wizard_tower_lvl20", + "ExportNameConstruction": "wizard_tower_const", + "BuildTimeD": 14, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 20200000, + "TownHallLevel": 16, + "CapitalHallLevel": 16, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "wizard_tower_upg", + "Hitpoints": 3150, + "RegenTime": 21, + "AttackRange": 700, + "AttackSpeed": 1300, + "DPS": 102, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "WizardTower_attack3", + "HitEffect": "Wizard Tower hit", + "Projectile": "wizardTower_projectile4", + "ExportNameDamaged": "destroyedBuilding_3l_round_pit_crystaldark", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "wizard_tower_base", + "AirTargets": true, + "GroundTargets": true, + "DamageRadius": 100, + "PickUpEffect": "Wizard Tower Pickup", + "PlacingEffect": "Wizard Tower Placing", + "DefenderCharacter": "Wizard12", + "DefenderCount": 1, + "DefenderZ": 135, + "StrengthWeight": 250, + "HintPriority": 150, + "PreviewScenario": "Defense" + } + }, + "Air Defense": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_AIR_DEFENSE", + "InfoTID": "TID_AIR_DEFENSE_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "fireworks_tower_lvl1", + "ExportNameConstruction": "basic_turret_const", + "BuildTimeD": 0, + "BuildTimeH": 3, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 22000, + "TownHallLevel": 4, + "CapitalHallLevel": 4, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "fireworks_tower_upg", + "ExportNameUpgradeAnim": "fireworks_tower_lvl1_upgrade", + "Hitpoints": 800, + "RegenTime": 15, + "AttackRange": 1000, + "AttackSpeed": 1000, + "DPS": 80, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Air Defence Attack", + "HitEffect": "Air Defence hit1", + "Projectile": "Firework", + "ExportNameDamaged": "destroyedBuilding_3s_pit_wood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "airdefence_tower_base", + "AirTargets": true, + "GroundTargets": false, + "PickUpEffect": "Air Defence Pickup", + "PlacingEffect": "Air Defence Placing", + "StrengthWeight": 50, + "HintPriority": 150, + "PreviewScenario": "AirDefense" + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_AIR_DEFENSE", + "InfoTID": "TID_AIR_DEFENSE_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "fireworks_tower_lvl2", + "ExportNameConstruction": "basic_turret_const", + "BuildTimeD": 0, + "BuildTimeH": 8, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 90000, + "TownHallLevel": 4, + "CapitalHallLevel": 4, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "fireworks_tower_upg", + "ExportNameUpgradeAnim": "fireworks_tower_lvl2_upgrade", + "Hitpoints": 850, + "RegenTime": 16, + "AttackRange": 1000, + "AttackSpeed": 1000, + "DPS": 110, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Air Defence Attack", + "HitEffect": "Air Defence hit1", + "Projectile": "Firework2", + "ExportNameDamaged": "destroyedBuilding_3s_pit_wood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "airdefence_tower_base", + "AirTargets": true, + "GroundTargets": false, + "PickUpEffect": "Air Defence Pickup", + "PlacingEffect": "Air Defence Placing", + "StrengthWeight": 50, + "HintPriority": 150, + "PreviewScenario": "AirDefense" + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_AIR_DEFENSE", + "InfoTID": "TID_AIR_DEFENSE_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "fireworks_tower_lvl3", + "ExportNameConstruction": "basic_turret_const", + "BuildTimeD": 0, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 270000, + "TownHallLevel": 5, + "CapitalHallLevel": 5, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "fireworks_tower_upg", + "ExportNameUpgradeAnim": "fireworks_tower_lvl3_upgrade", + "Hitpoints": 900, + "RegenTime": 17, + "AttackRange": 1000, + "AttackSpeed": 1000, + "DPS": 140, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Air Defence Attack", + "HitEffect": "Air Defence hit2", + "Projectile": "Firework3", + "ExportNameDamaged": "destroyedBuilding_3s_pit_wood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "airdefence_tower_base", + "AirTargets": true, + "GroundTargets": false, + "PickUpEffect": "Air Defence Pickup", + "PlacingEffect": "Air Defence Placing", + "StrengthWeight": 50, + "HintPriority": 150, + "PreviewScenario": "AirDefense" + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_AIR_DEFENSE", + "InfoTID": "TID_AIR_DEFENSE_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "fireworks_tower_lvl4", + "ExportNameConstruction": "basic_turret_const", + "BuildTimeD": 0, + "BuildTimeH": 18, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 500000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "fireworks_tower_upg", + "ExportNameUpgradeAnim": "fireworks_tower_lvl4_upgrade", + "Hitpoints": 950, + "RegenTime": 18, + "AttackRange": 1000, + "AttackSpeed": 1000, + "DPS": 160, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Air Defence Attack", + "HitEffect": "Air Defence hit2", + "Projectile": "Firework4", + "ExportNameDamaged": "destroyedBuilding_3s_pit_wood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "airdefence_tower_base", + "AirTargets": true, + "GroundTargets": false, + "PickUpEffect": "Air Defence Pickup", + "PlacingEffect": "Air Defence Placing", + "StrengthWeight": 50, + "HintPriority": 150, + "PreviewScenario": "AirDefense" + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_AIR_DEFENSE", + "InfoTID": "TID_AIR_DEFENSE_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "fireworks_tower_lvl5", + "ExportNameConstruction": "basic_turret_const", + "BuildTimeD": 1, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 800000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "fireworks_tower_upg", + "ExportNameUpgradeAnim": "fireworks_tower_lvl5_upgrade", + "Hitpoints": 1000, + "RegenTime": 19, + "AttackRange": 1000, + "AttackSpeed": 1000, + "DPS": 190, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Air Defence Attack", + "HitEffect": "Air Defence hit3", + "Projectile": "Firework5", + "ExportNameDamaged": "destroyedBuilding_3s_pit_wood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "airdefence_tower_base", + "AirTargets": true, + "GroundTargets": false, + "PickUpEffect": "Air Defence Pickup", + "PlacingEffect": "Air Defence Placing", + "StrengthWeight": 50, + "HintPriority": 150, + "PreviewScenario": "AirDefense" + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_BUILDING_AIR_DEFENSE", + "InfoTID": "TID_AIR_DEFENSE_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "fireworks_tower_lvl6", + "ExportNameConstruction": "basic_turret_const", + "BuildTimeD": 1, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 1000000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "fireworks_tower_upg", + "ExportNameUpgradeAnim": "fireworks_tower_lvl6_upgrade", + "Hitpoints": 1050, + "RegenTime": 20, + "AttackRange": 1000, + "AttackSpeed": 1000, + "DPS": 230, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Air Defence Attack", + "HitEffect": "Air Defence hit3", + "Projectile": "Firework6", + "ExportNameDamaged": "destroyedBuilding_3s_pit_wood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "airdefence_tower_base", + "AirTargets": true, + "GroundTargets": false, + "PickUpEffect": "Air Defence Pickup", + "PlacingEffect": "Air Defence Placing", + "StrengthWeight": 50, + "HintPriority": 150, + "PreviewScenario": "AirDefense" + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_BUILDING_AIR_DEFENSE", + "InfoTID": "TID_AIR_DEFENSE_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "fireworks_tower_lvl7", + "ExportNameConstruction": "basic_turret_const", + "BuildTimeD": 2, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 1750000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "ExportNameUpgradeAnim": "fireworks_tower_lvl7_upgrade", + "Hitpoints": 1100, + "RegenTime": 21, + "AttackRange": 1000, + "AttackSpeed": 1000, + "DPS": 280, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Air Defence Attack", + "HitEffect": "Air Defence hit3", + "Projectile": "Firework7", + "ExportNameDamaged": "destroyedBuilding_3s_pit_wood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "airdefence_tower_base", + "AirTargets": true, + "GroundTargets": false, + "PickUpEffect": "Air Defence Pickup", + "PlacingEffect": "Air Defence Placing", + "StrengthWeight": 50, + "HintPriority": 150, + "PreviewScenario": "AirDefense" + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_BUILDING_AIR_DEFENSE", + "InfoTID": "TID_AIR_DEFENSE_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "fireworks_tower_lvl8", + "ExportNameConstruction": "basic_turret_const", + "BuildTimeD": 2, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 2300000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "ExportNameUpgradeAnim": "fireworks_tower_lvl8_upgrade", + "Hitpoints": 1210, + "RegenTime": 21, + "AttackRange": 1000, + "AttackSpeed": 1000, + "DPS": 320, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Air Defence Attack", + "HitEffect": "Air Defence hit3", + "Projectile": "Firework8", + "ExportNameDamaged": "destroyedBuilding_3s_pit_wood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "airdefence_tower_base", + "AirTargets": true, + "GroundTargets": false, + "PickUpEffect": "Air Defence Pickup", + "PlacingEffect": "Air Defence Placing", + "StrengthWeight": 50, + "HintPriority": 150, + "PreviewScenario": "AirDefense" + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_BUILDING_AIR_DEFENSE", + "InfoTID": "TID_AIR_DEFENSE_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "fireworks_tower_lvl9", + "ExportNameConstruction": "basic_turret_const", + "BuildTimeD": 3, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 3400000, + "TownHallLevel": 11, + "CapitalHallLevel": 11, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "ExportNameUpgradeAnim": "fireworks_tower_lvl9_upgrade", + "Hitpoints": 1300, + "RegenTime": 21, + "AttackRange": 1000, + "AttackSpeed": 1000, + "DPS": 360, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Air Defence Attack", + "HitEffect": "Air Defence hit3", + "Projectile": "Firework9", + "ExportNameDamaged": "destroyedBuilding_3s_pit_wood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "airdefence_tower_base", + "AirTargets": true, + "GroundTargets": false, + "PickUpEffect": "Air Defence Pickup", + "PlacingEffect": "Air Defence Placing", + "StrengthWeight": 50, + "HintPriority": 150, + "PreviewScenario": "AirDefense" + }, + "10": { + "BuildingLevel": 10, + "TID": "TID_BUILDING_AIR_DEFENSE", + "InfoTID": "TID_AIR_DEFENSE_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "fireworks_tower_lvl10", + "ExportNameConstruction": "basic_turret_const", + "BuildTimeD": 8, + "BuildTimeH": 18, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 5800000, + "TownHallLevel": 12, + "CapitalHallLevel": 12, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "ExportNameUpgradeAnim": "fireworks_tower_lvl10_upgrade", + "Hitpoints": 1400, + "RegenTime": 21, + "AttackRange": 1000, + "AttackSpeed": 1000, + "DPS": 400, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Air Defence Attack", + "HitEffect": "Air Defence hit3", + "Projectile": "Firework9", + "ExportNameDamaged": "destroyedBuilding_3s_pit_wood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "airdefence_tower_base", + "AirTargets": true, + "GroundTargets": false, + "PickUpEffect": "Air Defence Pickup", + "PlacingEffect": "Air Defence Placing", + "StrengthWeight": 50, + "HintPriority": 150, + "PreviewScenario": "AirDefense" + }, + "11": { + "BuildingLevel": 11, + "TID": "TID_BUILDING_AIR_DEFENSE", + "InfoTID": "TID_AIR_DEFENSE_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "fireworks_tower_lvl11", + "ExportNameConstruction": "basic_turret_const", + "BuildTimeD": 9, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 8400000, + "TownHallLevel": 13, + "CapitalHallLevel": 13, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "ExportNameUpgradeAnim": "fireworks_tower_lvl11_upgrade", + "Hitpoints": 1500, + "RegenTime": 21, + "AttackRange": 1000, + "AttackSpeed": 1000, + "DPS": 440, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Air Defence Attack", + "HitEffect": "Air Defence hit3", + "Projectile": "Firework9", + "ExportNameDamaged": "destroyedBuilding_3s_pit_wood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "airdefence_tower_base", + "AirTargets": true, + "GroundTargets": false, + "PickUpEffect": "Air Defence Pickup", + "PlacingEffect": "Air Defence Placing", + "StrengthWeight": 50, + "HintPriority": 150, + "PreviewScenario": "AirDefense" + }, + "12": { + "BuildingLevel": 12, + "TID": "TID_BUILDING_AIR_DEFENSE", + "InfoTID": "TID_AIR_DEFENSE_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "fireworks_tower_lvl12", + "ExportNameConstruction": "basic_turret_const", + "BuildTimeD": 12, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 11900000, + "TownHallLevel": 14, + "CapitalHallLevel": 14, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "ExportNameUpgradeAnim": "fireworks_tower_lvl12_upgrade", + "Hitpoints": 1650, + "RegenTime": 21, + "AttackRange": 1000, + "AttackSpeed": 1000, + "DPS": 500, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Air Defence Attack", + "HitEffect": "Air Defence hit3", + "Projectile": "Firework9", + "ExportNameDamaged": "destroyedBuilding_3s_pit_wood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "airdefence_tower_base", + "AirTargets": true, + "GroundTargets": false, + "PickUpEffect": "Air Defence Pickup", + "PlacingEffect": "Air Defence Placing", + "StrengthWeight": 50, + "HintPriority": 150, + "PreviewScenario": "AirDefense" + }, + "13": { + "BuildingLevel": 13, + "TID": "TID_BUILDING_AIR_DEFENSE", + "InfoTID": "TID_AIR_DEFENSE_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "fireworks_tower_lvl13", + "ExportNameConstruction": "basic_turret_const", + "BuildTimeD": 13, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 19500000, + "TownHallLevel": 15, + "CapitalHallLevel": 15, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "ExportNameUpgradeAnim": "fireworks_tower_lvl13_upgrade", + "Hitpoints": 1750, + "RegenTime": 21, + "AttackRange": 1000, + "AttackSpeed": 1000, + "DPS": 540, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Air Defence Attack", + "HitEffect": "Air Defence hit3", + "Projectile": "Firework9", + "ExportNameDamaged": "destroyedBuilding_3s_pit_wood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "airdefence_tower_base", + "AirTargets": true, + "GroundTargets": false, + "PickUpEffect": "Air Defence Pickup", + "PlacingEffect": "Air Defence Placing", + "StrengthWeight": 50, + "HintPriority": 150, + "PreviewScenario": "AirDefense" + }, + "14": { + "BuildingLevel": 14, + "TID": "TID_BUILDING_AIR_DEFENSE", + "InfoTID": "TID_AIR_DEFENSE_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "fireworks_tower_lvl14", + "ExportNameConstruction": "basic_turret_const", + "BuildTimeD": 15, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 20500000, + "TownHallLevel": 16, + "CapitalHallLevel": 16, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "ExportNameUpgradeAnim": "fireworks_tower_lvl14_upgrade", + "Hitpoints": 1850, + "RegenTime": 21, + "AttackRange": 1000, + "AttackSpeed": 1000, + "DPS": 600, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Air Defence Attack", + "HitEffect": "Air Defence hit3", + "Projectile": "Firework9", + "ExportNameDamaged": "destroyedBuilding_3s_pit_wood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "airdefence_tower_base", + "AirTargets": true, + "GroundTargets": false, + "PickUpEffect": "Air Defence Pickup", + "PlacingEffect": "Air Defence Placing", + "StrengthWeight": 50, + "HintPriority": 150, + "PreviewScenario": "AirDefense" + } + }, + "Mortar": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_MORTAR", + "InfoTID": "TID_MORTAR_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "mortar_lvl1", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 0, + "BuildTimeH": 3, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 5000, + "TownHallLevel": 3, + "CapitalHallLevel": 3, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 400, + "RegenTime": 20, + "AttackRange": 1100, + "AltAttackMode": true, + "AltAttackRange": 1100, + "AttackSpeed": 5000, + "AltAttackSpeed": 1000, + "DPS": 4, + "AltDPS": 8, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Mortar Attack", + "HitEffect": "Mortar Hit", + "Projectile": "Mortar Ammo1", + "AltProjectile": "Mortar Ammo1", + "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "AltAirTargets": false, + "AltGroundTargets": true, + "MinAttackRange": 400, + "DamageRadius": 150, + "PushBack": 100, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "AnimateTurret": true, + "StrengthWeight": 450, + "AltBurstCount": 3, + "AltBurstDelay": 500, + "GearUpBuilding": "Multi Mortar", + "GearUpLevelRequirement": 7, + "GearUpResource": "Gold", + "GearUpCost": 8000000, + "GearUpTime": 20160, + "GearUpTID": "TID_GEAR_UP_MORTAR", + "HintPriority": 150, + "PreviewScenario": "DefenseLongRange", + "AltPreviewScenario": "DefenseLongRange" + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_MORTAR", + "InfoTID": "TID_MORTAR_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "mortar_lvl2", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 0, + "BuildTimeH": 6, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 25000, + "TownHallLevel": 4, + "CapitalHallLevel": 4, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 450, + "RegenTime": 21, + "AttackRange": 1100, + "AltAttackMode": true, + "AltAttackRange": 1100, + "AttackSpeed": 5000, + "AltAttackSpeed": 1000, + "DPS": 5, + "AltDPS": 9, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Mortar Attack", + "HitEffect": "Mortar Hit", + "Projectile": "Mortar Ammo2", + "AltProjectile": "Mortar Ammo2", + "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "AltAirTargets": false, + "AltGroundTargets": true, + "MinAttackRange": 400, + "DamageRadius": 150, + "PushBack": 100, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "AnimateTurret": true, + "StrengthWeight": 440, + "AltBurstCount": 3, + "AltBurstDelay": 500, + "GearUpBuilding": "Multi Mortar", + "GearUpLevelRequirement": 7, + "GearUpResource": "Gold", + "GearUpCost": 8000000, + "GearUpTime": 20160, + "GearUpTID": "TID_GEAR_UP_MORTAR", + "HintPriority": 150, + "PreviewScenario": "DefenseLongRange", + "AltPreviewScenario": "DefenseLongRange" + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_MORTAR", + "InfoTID": "TID_MORTAR_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "mortar_lvl3", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 0, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 100000, + "TownHallLevel": 5, + "CapitalHallLevel": 5, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 500, + "RegenTime": 22, + "AttackRange": 1100, + "AltAttackMode": true, + "AltAttackRange": 1100, + "AttackSpeed": 5000, + "AltAttackSpeed": 1000, + "DPS": 6, + "AltDPS": 11, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Mortar Attack", + "HitEffect": "Mortar Hit", + "Projectile": "Mortar Ammo3", + "AltProjectile": "Mortar Ammo3", + "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "AltAirTargets": false, + "AltGroundTargets": true, + "MinAttackRange": 400, + "DamageRadius": 150, + "PushBack": 100, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "AnimateTurret": true, + "StrengthWeight": 430, + "AltBurstCount": 3, + "AltBurstDelay": 500, + "GearUpBuilding": "Multi Mortar", + "GearUpLevelRequirement": 7, + "GearUpResource": "Gold", + "GearUpCost": 8000000, + "GearUpTime": 20160, + "GearUpTID": "TID_GEAR_UP_MORTAR", + "HintPriority": 150, + "PreviewScenario": "DefenseLongRange", + "AltPreviewScenario": "DefenseLongRange" + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_MORTAR", + "InfoTID": "TID_MORTAR_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "mortar_lvl4", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 0, + "BuildTimeH": 18, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 200000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 550, + "RegenTime": 23, + "AttackRange": 1100, + "AltAttackMode": true, + "AltAttackRange": 1100, + "AttackSpeed": 5000, + "AltAttackSpeed": 1000, + "DPS": 7, + "AltDPS": 13, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Mortar Attack", + "HitEffect": "Mortar Hit", + "Projectile": "Mortar Ammo4", + "AltProjectile": "Mortar Ammo4", + "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "AltAirTargets": false, + "AltGroundTargets": true, + "MinAttackRange": 400, + "DamageRadius": 150, + "PushBack": 100, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "AnimateTurret": true, + "StrengthWeight": 420, + "AltBurstCount": 3, + "AltBurstDelay": 500, + "GearUpBuilding": "Multi Mortar", + "GearUpLevelRequirement": 7, + "GearUpResource": "Gold", + "GearUpCost": 8000000, + "GearUpTime": 20160, + "GearUpTID": "TID_GEAR_UP_MORTAR", + "HintPriority": 150, + "PreviewScenario": "DefenseLongRange", + "AltPreviewScenario": "DefenseLongRange" + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_MORTAR", + "InfoTID": "TID_MORTAR_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "mortar_lvl5", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 1, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 300000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 600, + "RegenTime": 24, + "AttackRange": 1100, + "AltAttackMode": true, + "AltAttackRange": 1100, + "AttackSpeed": 5000, + "AltAttackSpeed": 1000, + "DPS": 9, + "AltDPS": 17, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Mortar Attack", + "HitEffect": "Mortar Hit", + "Projectile": "Mortar Ammo5", + "AltProjectile": "Mortar Ammo5", + "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "AltAirTargets": false, + "AltGroundTargets": true, + "MinAttackRange": 400, + "DamageRadius": 150, + "PushBack": 100, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "AnimateTurret": true, + "StrengthWeight": 410, + "AltBurstCount": 3, + "AltBurstDelay": 500, + "GearUpBuilding": "Multi Mortar", + "GearUpLevelRequirement": 7, + "GearUpResource": "Gold", + "GearUpCost": 8000000, + "GearUpTime": 20160, + "GearUpTID": "TID_GEAR_UP_MORTAR", + "HintPriority": 150, + "PreviewScenario": "DefenseLongRange", + "AltPreviewScenario": "DefenseLongRange" + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_BUILDING_MORTAR", + "InfoTID": "TID_MORTAR_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "mortar_lvl6", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 2, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 560000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 650, + "RegenTime": 25, + "AttackRange": 1100, + "AltAttackMode": true, + "AltAttackRange": 1100, + "AttackSpeed": 5000, + "AltAttackSpeed": 1000, + "DPS": 11, + "AltDPS": 20, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Mortar Attack", + "HitEffect": "Mortar Hit lvl6", + "Projectile": "Mortar Ammo6", + "AltProjectile": "Mortar Ammo6", + "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "AltAirTargets": false, + "AltGroundTargets": true, + "MinAttackRange": 400, + "DamageRadius": 150, + "PushBack": 100, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "AnimateTurret": true, + "StrengthWeight": 400, + "AltBurstCount": 3, + "AltBurstDelay": 500, + "GearUpBuilding": "Multi Mortar", + "GearUpLevelRequirement": 7, + "GearUpResource": "Gold", + "GearUpCost": 8000000, + "GearUpTime": 20160, + "GearUpTID": "TID_GEAR_UP_MORTAR", + "HintPriority": 150, + "PreviewScenario": "DefenseLongRange", + "AltPreviewScenario": "DefenseLongRange" + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_BUILDING_MORTAR", + "InfoTID": "TID_MORTAR_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "mortar_lvl7", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 2, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 1300000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 700, + "RegenTime": 26, + "AttackRange": 1100, + "AltAttackMode": true, + "AltAttackRange": 1100, + "AttackSpeed": 5000, + "AltAttackSpeed": 1000, + "DPS": 15, + "AltDPS": 27, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Mortar Attack", + "HitEffect": "Mortar Hit lvl6", + "Projectile": "Mortar Ammo6", + "AltProjectile": "Mortar Ammo6", + "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "AltAirTargets": false, + "AltGroundTargets": true, + "MinAttackRange": 400, + "DamageRadius": 150, + "PushBack": 100, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "AnimateTurret": true, + "StrengthWeight": 390, + "AltBurstCount": 3, + "AltBurstDelay": 500, + "GearUpBuilding": "Multi Mortar", + "GearUpLevelRequirement": 7, + "GearUpResource": "Gold", + "GearUpCost": 8000000, + "GearUpTime": 20160, + "GearUpTID": "TID_GEAR_UP_MORTAR", + "HintPriority": 150, + "PreviewScenario": "DefenseLongRange", + "AltPreviewScenario": "DefenseLongRange" + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_BUILDING_MORTAR", + "InfoTID": "TID_MORTAR_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "mortar_lvl8", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 2, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 1900000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 800, + "RegenTime": 26, + "AttackRange": 1100, + "AltAttackMode": true, + "AltAttackRange": 1100, + "AttackSpeed": 5000, + "AltAttackSpeed": 1000, + "DPS": 20, + "AltDPS": 37, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Mortar Attack", + "HitEffect": "Mortar Hit lvl8", + "Projectile": "Mortar Ammo8", + "AltProjectile": "Mortar Ammo8", + "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "AltAirTargets": false, + "AltGroundTargets": true, + "MinAttackRange": 400, + "DamageRadius": 150, + "PushBack": 100, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "AnimateTurret": true, + "StrengthWeight": 380, + "AltBurstCount": 3, + "AltBurstDelay": 500, + "GearUpBuilding": "Multi Mortar", + "GearUpLevelRequirement": 7, + "GearUpResource": "Gold", + "GearUpCost": 8000000, + "GearUpTime": 20160, + "GearUpTID": "TID_GEAR_UP_MORTAR", + "HintPriority": 150, + "PreviewScenario": "DefenseLongRange", + "AltPreviewScenario": "DefenseLongRange" + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_BUILDING_MORTAR", + "InfoTID": "TID_MORTAR_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "mortar_lvl9", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 3, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 2500000, + "TownHallLevel": 11, + "CapitalHallLevel": 11, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 950, + "RegenTime": 27, + "AttackRange": 1100, + "AltAttackMode": true, + "AltAttackRange": 1100, + "AttackSpeed": 5000, + "AltAttackSpeed": 1000, + "DPS": 25, + "AltDPS": 47, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Mortar Attack", + "HitEffect": "Mortar Hit lvl8", + "Projectile": "Mortar Ammo9", + "AltProjectile": "Mortar Ammo9", + "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "AltAirTargets": false, + "AltGroundTargets": true, + "MinAttackRange": 400, + "DamageRadius": 150, + "PushBack": 100, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "AnimateTurret": true, + "StrengthWeight": 370, + "AltBurstCount": 3, + "AltBurstDelay": 500, + "GearUpBuilding": "Multi Mortar", + "GearUpLevelRequirement": 7, + "GearUpResource": "Gold", + "GearUpCost": 8000000, + "GearUpTime": 20160, + "GearUpTID": "TID_GEAR_UP_MORTAR", + "HintPriority": 150, + "PreviewScenario": "DefenseLongRange", + "AltPreviewScenario": "DefenseLongRange" + }, + "10": { + "BuildingLevel": 10, + "TID": "TID_BUILDING_MORTAR", + "InfoTID": "TID_MORTAR_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "mortar_lvl10", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 3, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 3500000, + "TownHallLevel": 11, + "CapitalHallLevel": 11, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 1100, + "RegenTime": 27, + "AttackRange": 1100, + "AltAttackMode": true, + "AltAttackRange": 1100, + "AttackSpeed": 5000, + "AltAttackSpeed": 1000, + "DPS": 30, + "AltDPS": 56, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Mortar Attack", + "HitEffect": "Mortar Hit lvl8", + "Projectile": "Mortar Ammo10", + "AltProjectile": "Mortar Ammo10", + "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "AltAirTargets": false, + "AltGroundTargets": true, + "MinAttackRange": 400, + "DamageRadius": 150, + "PushBack": 100, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "AnimateTurret": true, + "StrengthWeight": 360, + "AltBurstCount": 3, + "AltBurstDelay": 500, + "GearUpBuilding": "Multi Mortar", + "GearUpLevelRequirement": 7, + "GearUpResource": "Gold", + "GearUpTID": "TID_GEAR_UP_MORTAR", + "HintPriority": 150, + "PreviewScenario": "DefenseLongRange", + "AltPreviewScenario": "DefenseLongRange" + }, + "11": { + "BuildingLevel": 11, + "TID": "TID_BUILDING_MORTAR", + "InfoTID": "TID_MORTAR_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "mortar_lvl11", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 7, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 5800000, + "TownHallLevel": 12, + "CapitalHallLevel": 12, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 1300, + "RegenTime": 27, + "AttackRange": 1100, + "AltAttackMode": true, + "AltAttackRange": 1100, + "AttackSpeed": 5000, + "AltAttackSpeed": 1000, + "DPS": 35, + "AltDPS": 64, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Mortar Attack", + "HitEffect": "Mortar Hit lvl8", + "Projectile": "Mortar Ammo10", + "AltProjectile": "Mortar Ammo10", + "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "AltAirTargets": false, + "AltGroundTargets": true, + "MinAttackRange": 400, + "DamageRadius": 150, + "PushBack": 100, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "AnimateTurret": true, + "StrengthWeight": 350, + "AltBurstCount": 3, + "AltBurstDelay": 500, + "GearUpBuilding": "Multi Mortar", + "GearUpLevelRequirement": 7, + "GearUpResource": "Gold", + "GearUpTID": "TID_GEAR_UP_MORTAR", + "HintPriority": 150, + "PreviewScenario": "DefenseLongRange", + "AltPreviewScenario": "DefenseLongRange" + }, + "12": { + "BuildingLevel": 12, + "TID": "TID_BUILDING_MORTAR", + "InfoTID": "TID_MORTAR_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "mortar_lvl12", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 7, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 6500000, + "TownHallLevel": 12, + "CapitalHallLevel": 12, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 1500, + "RegenTime": 27, + "AttackRange": 1100, + "AltAttackMode": true, + "AltAttackRange": 1100, + "AttackSpeed": 5000, + "AltAttackSpeed": 1000, + "DPS": 38, + "AltDPS": 70, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Mortar Attack", + "HitEffect": "Mortar Hit lvl8", + "Projectile": "Mortar Ammo10", + "AltProjectile": "Mortar Ammo10", + "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "AltAirTargets": false, + "AltGroundTargets": true, + "MinAttackRange": 400, + "DamageRadius": 150, + "PushBack": 100, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "AnimateTurret": true, + "StrengthWeight": 350, + "AltBurstCount": 3, + "AltBurstDelay": 500, + "GearUpBuilding": "Multi Mortar", + "GearUpLevelRequirement": 7, + "GearUpResource": "Gold", + "GearUpTID": "TID_GEAR_UP_MORTAR", + "HintPriority": 150, + "PreviewScenario": "DefenseLongRange", + "AltPreviewScenario": "DefenseLongRange" + }, + "13": { + "BuildingLevel": 13, + "TID": "TID_BUILDING_MORTAR", + "InfoTID": "TID_MORTAR_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "mortar_lvl13", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 7, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 8200000, + "TownHallLevel": 13, + "CapitalHallLevel": 13, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 1700, + "RegenTime": 27, + "AttackRange": 1100, + "AltAttackMode": true, + "AltAttackRange": 1100, + "AttackSpeed": 5000, + "AltAttackSpeed": 1000, + "DPS": 42, + "AltDPS": 77, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Mortar Attack", + "HitEffect": "Mortar Hit lvl8", + "Projectile": "Mortar Ammo11", + "AltProjectile": "Mortar Ammo11", + "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "AltAirTargets": false, + "AltGroundTargets": true, + "MinAttackRange": 400, + "DamageRadius": 150, + "PushBack": 100, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "AnimateTurret": true, + "StrengthWeight": 340, + "AltBurstCount": 3, + "AltBurstDelay": 500, + "GearUpBuilding": "Multi Mortar", + "GearUpLevelRequirement": 7, + "GearUpResource": "Gold", + "GearUpTID": "TID_GEAR_UP_MORTAR", + "HintPriority": 150, + "PreviewScenario": "DefenseLongRange", + "AltPreviewScenario": "DefenseLongRange" + }, + "14": { + "BuildingLevel": 14, + "TID": "TID_BUILDING_MORTAR", + "InfoTID": "TID_MORTAR_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "mortar_lvl14", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 12, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 15000000, + "TownHallLevel": 14, + "CapitalHallLevel": 14, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 1950, + "RegenTime": 27, + "AttackRange": 1100, + "AltAttackMode": true, + "AltAttackRange": 1100, + "AttackSpeed": 5000, + "AltAttackSpeed": 1000, + "DPS": 48, + "AltDPS": 88, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Mortar Attack", + "HitEffect": "Mortar Hit lvl8", + "Projectile": "Mortar Ammo11", + "AltProjectile": "Mortar Ammo11", + "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "AltAirTargets": false, + "AltGroundTargets": true, + "MinAttackRange": 400, + "DamageRadius": 150, + "PushBack": 100, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "AnimateTurret": true, + "StrengthWeight": 340, + "AltBurstCount": 3, + "AltBurstDelay": 500, + "GearUpBuilding": "Multi Mortar", + "GearUpLevelRequirement": 7, + "GearUpResource": "Gold", + "GearUpTID": "TID_GEAR_UP_MORTAR", + "HintPriority": 150, + "PreviewScenario": "DefenseLongRange", + "AltPreviewScenario": "DefenseLongRange" + }, + "15": { + "BuildingLevel": 15, + "TID": "TID_BUILDING_MORTAR", + "InfoTID": "TID_MORTAR_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "mortar_lvl15", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 13, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 19000000, + "TownHallLevel": 15, + "CapitalHallLevel": 15, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 2150, + "RegenTime": 27, + "AttackRange": 1100, + "AltAttackMode": true, + "AltAttackRange": 1100, + "AttackSpeed": 5000, + "AltAttackSpeed": 1000, + "DPS": 54, + "AltDPS": 99, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Mortar Attack", + "HitEffect": "Mortar Hit lvl8", + "Projectile": "Mortar Ammo11", + "AltProjectile": "Mortar Ammo11", + "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "AltAirTargets": false, + "AltGroundTargets": true, + "MinAttackRange": 400, + "DamageRadius": 150, + "PushBack": 100, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "AnimateTurret": true, + "StrengthWeight": 340, + "AltBurstCount": 3, + "AltBurstDelay": 500, + "GearUpBuilding": "Multi Mortar", + "GearUpLevelRequirement": 7, + "GearUpResource": "Gold", + "GearUpTID": "TID_GEAR_UP_MORTAR", + "HintPriority": 150, + "PreviewScenario": "DefenseLongRange", + "AltPreviewScenario": "DefenseLongRange" + }, + "16": { + "BuildingLevel": 16, + "TID": "TID_BUILDING_MORTAR", + "InfoTID": "TID_MORTAR_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "mortar_lvl16", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 14, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 19500000, + "TownHallLevel": 16, + "CapitalHallLevel": 16, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 2300, + "RegenTime": 27, + "AttackRange": 1100, + "AltAttackMode": true, + "AltAttackRange": 1100, + "AttackSpeed": 5000, + "AltAttackSpeed": 1000, + "DPS": 60, + "AltDPS": 110, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Mortar Attack", + "HitEffect": "Mortar Hit lvl8", + "Projectile": "Mortar Ammo lvl16", + "AltProjectile": "Mortar Ammo lvl16", + "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "AltAirTargets": false, + "AltGroundTargets": true, + "MinAttackRange": 400, + "DamageRadius": 150, + "PushBack": 100, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "AnimateTurret": true, + "StrengthWeight": 340, + "AltBurstCount": 3, + "AltBurstDelay": 500, + "GearUpBuilding": "Multi Mortar", + "GearUpLevelRequirement": 7, + "GearUpResource": "Gold", + "GearUpTID": "TID_GEAR_UP_MORTAR", + "HintPriority": 150, + "PreviewScenario": "DefenseLongRange", + "AltPreviewScenario": "DefenseLongRange" + } + }, + "Clan Castle": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_ALLIANCE_CASTLE", + "InfoTID": "TID_ALLIANCE_CASTLE_INFO", + "BuildingClass": "Army", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "alliance_castle_lvl1", + "ExportNameConstruction": "generic_construction_state3", + "ExportNameLocked": "alliance_castle_lvl1_broken", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 10000, + "TownHallLevel": 3, + "CapitalHallLevel": 3, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredWarGold": 75000, + "MaxStoredWarElixir": 75000, + "MaxStoredWarDarkElixir": 500, + "LootOnDestruction": true, + "Bunker": true, + "HousingSpace": 10, + "HousingSpaceAlt": 0, + "HousingSpaceSiege": 0, + "Hitpoints": 1000, + "RegenTime": 27, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "alliance_castle_lvl1_broken", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "alliance_castle_base", + "PickUpEffect": "Alliance Castle Pickup", + "PlacingEffect": "Alliance Castle Placing", + "Locked": true, + "StartingHomeCount": 1, + "HintPriority": 900, + "PreviewScenario": "ClanCastle" + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_ALLIANCE_CASTLE", + "InfoTID": "TID_ALLIANCE_CASTLE_INFO", + "BuildingClass": "Army", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "alliance_castle_lvl2", + "ExportNameConstruction": "generic_construction_state3", + "ExportNameLocked": "alliance_castle_lvl1_broken", + "BuildTimeD": 0, + "BuildTimeH": 8, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 100000, + "TownHallLevel": 4, + "CapitalHallLevel": 4, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredWarGold": 250000, + "MaxStoredWarElixir": 250000, + "MaxStoredWarDarkElixir": 1000, + "LootOnDestruction": true, + "Bunker": true, + "HousingSpace": 15, + "HousingSpaceAlt": 0, + "HousingSpaceSiege": 0, + "Hitpoints": 1400, + "RegenTime": 28, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "alliance_castle_lvl1_broken", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "alliance_castle_base", + "PickUpEffect": "Alliance Castle Pickup", + "PlacingEffect": "Alliance Castle Placing", + "Locked": true, + "StartingHomeCount": 1, + "HintPriority": 900, + "PreviewScenario": "ClanCastle" + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_ALLIANCE_CASTLE", + "InfoTID": "TID_ALLIANCE_CASTLE_INFO", + "BuildingClass": "Army", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "alliance_castle_lvl3", + "ExportNameConstruction": "generic_construction_state3", + "ExportNameLocked": "alliance_castle_lvl1_broken", + "BuildTimeD": 0, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 800000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredWarGold": 700000, + "MaxStoredWarElixir": 700000, + "MaxStoredWarDarkElixir": 2500, + "LootOnDestruction": true, + "Bunker": true, + "HousingSpace": 20, + "HousingSpaceAlt": 0, + "HousingSpaceSiege": 0, + "Hitpoints": 2000, + "RegenTime": 29, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "alliance_castle_lvl1_broken", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "alliance_castle_base", + "PickUpEffect": "Alliance Castle Pickup", + "PlacingEffect": "Alliance Castle Placing", + "Locked": true, + "StartingHomeCount": 1, + "HintPriority": 900, + "PreviewScenario": "ClanCastleTH7" + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_ALLIANCE_CASTLE", + "InfoTID": "TID_ALLIANCE_CASTLE_INFO", + "BuildingClass": "Army", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "alliance_castle_lvl4", + "ExportNameConstruction": "generic_construction_state3", + "ExportNameLocked": "alliance_castle_lvl1_broken", + "BuildTimeD": 1, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 1200000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredWarGold": 1000000, + "MaxStoredWarElixir": 1000000, + "MaxStoredWarDarkElixir": 4000, + "LootOnDestruction": true, + "Bunker": true, + "HousingSpace": 25, + "HousingSpaceAlt": 1, + "HousingSpaceSiege": 0, + "Hitpoints": 2600, + "RegenTime": 30, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "alliance_castle_lvl1_broken", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "alliance_castle_base", + "PickUpEffect": "Alliance Castle Pickup", + "PlacingEffect": "Alliance Castle Placing", + "Locked": true, + "StartingHomeCount": 1, + "HintPriority": 900, + "PreviewScenario": "ClanCastleTH7" + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_ALLIANCE_CASTLE", + "InfoTID": "TID_ALLIANCE_CASTLE_INFO", + "BuildingClass": "Army", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "alliance_castle_lvl5", + "ExportNameConstruction": "generic_construction_state3", + "ExportNameLocked": "alliance_castle_lvl1_broken", + "BuildTimeD": 2, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 2500000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredWarGold": 1600000, + "MaxStoredWarElixir": 1600000, + "MaxStoredWarDarkElixir": 8000, + "LootOnDestruction": true, + "Bunker": true, + "HousingSpace": 30, + "HousingSpaceAlt": 1, + "HousingSpaceSiege": 0, + "Hitpoints": 3000, + "RegenTime": 30, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "alliance_castle_lvl1_broken", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "alliance_castle_base", + "PickUpEffect": "Alliance Castle Pickup", + "PlacingEffect": "Alliance Castle Placing", + "Locked": true, + "StartingHomeCount": 1, + "HintPriority": 900, + "PreviewScenario": "ClanCastleTH7" + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_BUILDING_ALLIANCE_CASTLE", + "InfoTID": "TID_ALLIANCE_CASTLE_INFO", + "BuildingClass": "Army", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "alliance_castle_lvl6", + "ExportNameConstruction": "generic_construction_state3", + "ExportNameLocked": "alliance_castle_lvl1_broken", + "BuildTimeD": 5, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 4200000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredWarGold": 2000000, + "MaxStoredWarElixir": 2000000, + "MaxStoredWarDarkElixir": 10000, + "LootOnDestruction": true, + "Bunker": true, + "HousingSpace": 35, + "HousingSpaceAlt": 1, + "HousingSpaceSiege": 1, + "Hitpoints": 3400, + "RegenTime": 30, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "alliance_castle_lvl1_broken", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "alliance_castle_base", + "PickUpEffect": "Alliance Castle Pickup", + "PlacingEffect": "Alliance Castle Placing", + "Locked": true, + "StartingHomeCount": 1, + "HintPriority": 900, + "PreviewScenario": "ClanCastleTH7" + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_BUILDING_ALLIANCE_CASTLE", + "InfoTID": "TID_ALLIANCE_CASTLE_INFO", + "BuildingClass": "Army", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "alliance_castle_lvl7", + "ExportNameConstruction": "generic_construction_state3", + "ExportNameLocked": "alliance_castle_lvl1_broken", + "BuildTimeD": 6, + "BuildTimeH": 6, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 5500000, + "TownHallLevel": 11, + "CapitalHallLevel": 11, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredWarGold": 2400000, + "MaxStoredWarElixir": 2400000, + "MaxStoredWarDarkElixir": 12000, + "LootOnDestruction": true, + "Bunker": true, + "HousingSpace": 35, + "HousingSpaceAlt": 2, + "HousingSpaceSiege": 1, + "Hitpoints": 4000, + "RegenTime": 30, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "alliance_castle_lvl1_broken", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "alliance_castle_base", + "PickUpEffect": "Alliance Castle Pickup", + "PlacingEffect": "Alliance Castle Placing", + "Locked": true, + "StartingHomeCount": 1, + "HintPriority": 900, + "PreviewScenario": "ClanCastleTH11" + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_BUILDING_ALLIANCE_CASTLE", + "InfoTID": "TID_ALLIANCE_CASTLE_INFO", + "BuildingClass": "Army", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "alliance_castle_lvl8", + "ExportNameConstruction": "generic_construction_state3", + "ExportNameLocked": "alliance_castle_lvl1_broken", + "BuildTimeD": 9, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 8000000, + "TownHallLevel": 12, + "CapitalHallLevel": 12, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredWarGold": 2800000, + "MaxStoredWarElixir": 2800000, + "MaxStoredWarDarkElixir": 14000, + "LootOnDestruction": true, + "Bunker": true, + "HousingSpace": 40, + "HousingSpaceAlt": 2, + "HousingSpaceSiege": 1, + "Hitpoints": 4400, + "RegenTime": 30, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "alliance_castle_lvl1_broken", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "alliance_castle_base", + "PickUpEffect": "Alliance Castle Pickup", + "PlacingEffect": "Alliance Castle Placing", + "Locked": true, + "StartingHomeCount": 1, + "HintPriority": 900, + "PreviewScenario": "ClanCastleTH11" + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_BUILDING_ALLIANCE_CASTLE", + "InfoTID": "TID_ALLIANCE_CASTLE_INFO", + "BuildingClass": "Army", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "alliance_castle_lvl9", + "ExportNameConstruction": "generic_construction_state3", + "ExportNameLocked": "alliance_castle_lvl1_broken", + "BuildTimeD": 11, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 10000000, + "TownHallLevel": 13, + "CapitalHallLevel": 13, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredWarGold": 3200000, + "MaxStoredWarElixir": 3200000, + "MaxStoredWarDarkElixir": 16000, + "LootOnDestruction": true, + "Bunker": true, + "HousingSpace": 45, + "HousingSpaceAlt": 2, + "HousingSpaceSiege": 1, + "Hitpoints": 4800, + "RegenTime": 30, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "alliance_castle_lvl1_broken", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "alliance_castle_base", + "PickUpEffect": "Alliance Castle Pickup", + "PlacingEffect": "Alliance Castle Placing", + "Locked": true, + "StartingHomeCount": 1, + "HintPriority": 900, + "PreviewScenario": "ClanCastleTH11" + }, + "10": { + "BuildingLevel": 10, + "TID": "TID_BUILDING_ALLIANCE_CASTLE", + "InfoTID": "TID_ALLIANCE_CASTLE_INFO", + "BuildingClass": "Army", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "alliance_castle_lvl10", + "ExportNameConstruction": "generic_construction_state3", + "ExportNameLocked": "alliance_castle_lvl1_broken", + "BuildTimeD": 13, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 12600000, + "TownHallLevel": 14, + "CapitalHallLevel": 14, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredWarGold": 3600000, + "MaxStoredWarElixir": 3600000, + "MaxStoredWarDarkElixir": 18000, + "LootOnDestruction": true, + "Bunker": true, + "HousingSpace": 45, + "HousingSpaceAlt": 3, + "HousingSpaceSiege": 1, + "Hitpoints": 5200, + "RegenTime": 30, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "alliance_castle_lvl1_broken", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "alliance_castle_base", + "PickUpEffect": "Alliance Castle Pickup", + "PlacingEffect": "Alliance Castle Placing", + "Locked": true, + "StartingHomeCount": 1, + "HintPriority": 900, + "PreviewScenario": "ClanCastleTH11" + }, + "11": { + "BuildingLevel": 11, + "TID": "TID_BUILDING_ALLIANCE_CASTLE", + "InfoTID": "TID_ALLIANCE_CASTLE_INFO", + "BuildingClass": "Army", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "alliance_castle_lvl11", + "ExportNameConstruction": "generic_construction_state3", + "ExportNameLocked": "alliance_castle_lvl1_broken", + "BuildTimeD": 14, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 20000000, + "TownHallLevel": 15, + "CapitalHallLevel": 15, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredWarGold": 4000000, + "MaxStoredWarElixir": 4000000, + "MaxStoredWarDarkElixir": 20000, + "LootOnDestruction": true, + "Bunker": true, + "HousingSpace": 50, + "HousingSpaceAlt": 3, + "HousingSpaceSiege": 1, + "Hitpoints": 5400, + "RegenTime": 30, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "alliance_castle_lvl1_broken", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "alliance_castle_base", + "PickUpEffect": "Alliance Castle Pickup", + "PlacingEffect": "Alliance Castle Placing", + "Locked": true, + "StartingHomeCount": 1, + "HintPriority": 900, + "PreviewScenario": "ClanCastleTH11" + } + }, + "Builder's Hut": { + "1": { + "BuildingLevel": 1, + "TID": "TID_WORKER_BUILDING", + "InfoTID": "TID_WORKER_INFO", + "BuildingClass": "Worker", + "SWF": "sc/buildings.sc", + "ExportName": "worker_building", + "ExportNameConstruction": "worker_building_const", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Diamonds", + "BuildCost": 0, + "TownHallLevel": 1, + "CapitalHallLevel": 1, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "worker_building_upg", + "BoostCost": 500, + "Hitpoints": 250, + "RegenTime": 20, + "AttackRange": 700, + "AttackSpeed": 400, + "DPS": 80, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Nailgun Attack FX", + "HitEffect": "Generic Hit", + "Projectile": "Nail Ammo", + "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_darkbrown", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "worker_building_base", + "AirTargets": true, + "GroundTargets": true, + "PickUpEffect": "Worker Building Pickup", + "PlacingEffect": "Worker Building Placing", + "AnimateTurret": true, + "StartingHomeCount": 1, + "StrengthWeight": 400, + "WakeUpSpeed": 1600, + "WakeUpSpace": 1, + "DefenceTroopCount": 1, + "DefenceTroopCharacter": "Defending Builder", + "DefenceTroopLevel": 1, + "ActivatedCombatAddBuildingClass": "Defense", + "HintPriority": 200, + "PreviewScenario": "NoCombatBuilding" + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_WORKER_BUILDING", + "InfoTID": "TID_WORKER_INFO", + "BuildingClass": "Worker", + "SWF": "sc/buildings.sc", + "ExportName": "worker_building_armed_lvl1", + "ExportNameConstruction": "worker_building_const", + "BuildTimeD": 9, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 8000000, + "TownHallLevel": 14, + "CapitalHallLevel": 14, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "worker_building_upg", + "BoostCost": 500, + "Hitpoints": 1000, + "RegenTime": 20, + "AttackRange": 700, + "AttackSpeed": 400, + "DPS": 100, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Nailgun Attack FX", + "HitEffect": "Generic Hit", + "Projectile": "Nail Ammo", + "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_darkbrown", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "worker_building_base", + "AirTargets": true, + "GroundTargets": true, + "PickUpEffect": "Worker Building Pickup", + "PlacingEffect": "Worker Building Placing", + "AnimateTurret": true, + "StartingHomeCount": 1, + "StrengthWeight": 380, + "WakeUpSpeed": 1600, + "WakeUpSpace": 1, + "DefenceTroopCount": 1, + "DefenceTroopCharacter": "Defending Builder", + "DefenceTroopLevel": 2, + "ActivatedCombatAddBuildingClass": "Defense", + "HintPriority": 200, + "PreviewScenario": "DefensiveBuilder" + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_WORKER_BUILDING", + "InfoTID": "TID_WORKER_INFO", + "BuildingClass": "Worker", + "SWF": "sc/buildings.sc", + "ExportName": "worker_building_armed_lvl2", + "ExportNameConstruction": "worker_building_const", + "BuildTimeD": 11, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 10000000, + "TownHallLevel": 14, + "CapitalHallLevel": 14, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "worker_building_upg", + "BoostCost": 500, + "Hitpoints": 1300, + "RegenTime": 20, + "AttackRange": 700, + "AttackSpeed": 400, + "DPS": 120, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Nailgun Attack FX", + "HitEffect": "Generic Hit", + "Projectile": "Nail Ammo 2", + "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_darkbrown", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "worker_building_base", + "AirTargets": true, + "GroundTargets": true, + "PickUpEffect": "Worker Building Pickup", + "PlacingEffect": "Worker Building Placing", + "AnimateTurret": true, + "StartingHomeCount": 1, + "StrengthWeight": 360, + "WakeUpSpeed": 1600, + "WakeUpSpace": 1, + "DefenceTroopCount": 1, + "DefenceTroopCharacter": "Defending Builder", + "DefenceTroopLevel": 3, + "ActivatedCombatAddBuildingClass": "Defense", + "HintPriority": 200, + "PreviewScenario": "DefensiveBuilder" + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_WORKER_BUILDING", + "InfoTID": "TID_WORKER_INFO", + "BuildingClass": "Worker", + "SWF": "sc/buildings.sc", + "ExportName": "worker_building_armed_lvl3", + "ExportNameConstruction": "worker_building_const", + "BuildTimeD": 13, + "BuildTimeH": 6, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 12000000, + "TownHallLevel": 14, + "CapitalHallLevel": 14, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "worker_building_upg", + "BoostCost": 500, + "Hitpoints": 1600, + "RegenTime": 20, + "AttackRange": 700, + "AttackSpeed": 400, + "DPS": 135, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Nailgun Attack FX", + "HitEffect": "Generic Hit", + "Projectile": "Nail Ammo 2", + "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_darkgreen", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "worker_building_base", + "AirTargets": true, + "GroundTargets": true, + "PickUpEffect": "Worker Building Pickup", + "PlacingEffect": "Worker Building Placing", + "AnimateTurret": true, + "StartingHomeCount": 1, + "StrengthWeight": 340, + "WakeUpSpeed": 1600, + "WakeUpSpace": 1, + "DefenceTroopCount": 1, + "DefenceTroopCharacter": "Defending Builder", + "DefenceTroopLevel": 4, + "ActivatedCombatAddBuildingClass": "Defense", + "HintPriority": 200, + "PreviewScenario": "DefensiveBuilder" + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_WORKER_BUILDING", + "InfoTID": "TID_WORKER_INFO", + "BuildingClass": "Worker", + "SWF": "sc/buildings.sc", + "ExportName": "worker_building_armed_lvl4", + "ExportNameConstruction": "worker_building_const", + "BuildTimeD": 14, + "BuildTimeH": 6, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 17000000, + "TownHallLevel": 15, + "CapitalHallLevel": 15, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "worker_building_upg", + "BoostCost": 500, + "Hitpoints": 1800, + "RegenTime": 20, + "AttackRange": 700, + "AttackSpeed": 400, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Nailgun Attack FX", + "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_darkpurple", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "worker_building_base", + "AirTargets": true, + "GroundTargets": true, + "PickUpEffect": "Worker Building Pickup", + "PlacingEffect": "Worker Building Placing", + "AnimateTurret": true, + "StartingHomeCount": 1, + "WakeUpSpeed": 1600, + "ActivatedCombatAddBuildingClass": "Defense", + "HintPriority": 200, + "PreviewScenario": "DefensiveBuilder" + } + }, + "Radio Tower": { + "1": { + "BuildingLevel": 1, + "TID": "TID_COMM_MAST", + "InfoTID": "TID_COMM_MAST", + "BuildingClass": "Npc", + "SWF": "sc/buildings.sc", + "ExportName": "comm_mast_lvl1", + "ExportNameConstruction": "generic_construction_state3", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 1000, + "TownHallLevel": 1, + "CapitalHallLevel": 1, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "comm_mast_upg", + "Hitpoints": 250, + "RegenTime": 30, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_2s_pit_wood", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "comm_mast_base" + } + }, + "Hidden Tesla": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_TESLA_TOWER2", + "InfoTID": "TID_TESLA_TOWER2_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "teslatower_lvl1_setup", + "ExportNameConstruction": "teslatower_const", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 30, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 50000, + "TownHallLevel": 3, + "CapitalHallLevel": 3, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "teslatower_upg", + "Hitpoints": 300, + "RegenTime": 1, + "AttackRange": 700, + "AttackSpeed": 600, + "Damage": 36, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Tesla Attack_1", + "AttackEffect2": "Tesla Attack_4_Secondary", + "HitEffect": "Tesla Hit", + "ExportNameDamaged": "destroyedBuilding_2s_pit_wood", + "BuildingW": 1, + "BuildingH": 1, + "BaseGfx": "-1", + "AirTargets": true, + "GroundTargets": true, + "PickUpEffect": "Tesla Pickup", + "PlacingEffect": "Tesla Placing", + "Hidden": true, + "TriggerRadius": 600, + "ExportNameTriggered": "teslatower_lvl1", + "AppearEffect": "Tesla Appear", + "StrengthWeight": 248, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_TESLA_TOWER2", + "InfoTID": "TID_TESLA_TOWER2_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "teslatower_lvl2_setup", + "ExportNameConstruction": "teslatower_const", + "BuildTimeD": 0, + "BuildTimeH": 3, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 100000, + "TownHallLevel": 3, + "CapitalHallLevel": 3, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "teslatower_upg", + "Hitpoints": 350, + "RegenTime": 1, + "AttackRange": 700, + "AttackSpeed": 600, + "Damage": 40, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Tesla Attack_1", + "AttackEffect2": "Tesla Attack_8_Secondary", + "HitEffect": "Tesla Hit", + "ExportNameDamaged": "destroyedBuilding_2s_pit_wood", + "BuildingW": 1, + "BuildingH": 1, + "BaseGfx": "-1", + "AirTargets": true, + "GroundTargets": true, + "PickUpEffect": "Tesla Pickup", + "PlacingEffect": "Tesla Placing", + "Hidden": true, + "TriggerRadius": 600, + "ExportNameTriggered": "teslatower_lvl2", + "AppearEffect": "Tesla Appear", + "StrengthWeight": 254, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_TESLA_TOWER2", + "InfoTID": "TID_TESLA_TOWER2_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "teslatower_lvl3_setup", + "ExportNameConstruction": "teslatower_const", + "BuildTimeD": 0, + "BuildTimeH": 5, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 150000, + "TownHallLevel": 3, + "CapitalHallLevel": 3, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "teslatower_upg", + "Hitpoints": 400, + "RegenTime": 1, + "AttackRange": 700, + "AttackSpeed": 600, + "Damage": 44, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Tesla Attack_1", + "AttackEffect2": "Tesla Attack_8_Secondary", + "HitEffect": "Tesla Hit", + "ExportNameDamaged": "destroyedBuilding_2s_pit_wood", + "BuildingW": 1, + "BuildingH": 1, + "BaseGfx": "-1", + "AirTargets": true, + "GroundTargets": true, + "PickUpEffect": "Tesla Pickup", + "PlacingEffect": "Tesla Placing", + "Hidden": true, + "TriggerRadius": 600, + "ExportNameTriggered": "teslatower_lvl3", + "AppearEffect": "Tesla Appear", + "StrengthWeight": 261, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_TESLA_TOWER2", + "InfoTID": "TID_TESLA_TOWER2_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "teslatower_lvl4_setup", + "ExportNameConstruction": "teslatower_const", + "BuildTimeD": 0, + "BuildTimeH": 10, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 280000, + "TownHallLevel": 4, + "CapitalHallLevel": 4, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "teslatower_upg", + "Hitpoints": 460, + "RegenTime": 1, + "AttackRange": 700, + "AttackSpeed": 600, + "Damage": 48, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Tesla Attack_2", + "AttackEffect2": "Tesla Attack_8_Secondary", + "HitEffect": "Tesla Hit", + "ExportNameDamaged": "destroyedBuilding_2s_pit_wood", + "BuildingW": 1, + "BuildingH": 1, + "BaseGfx": "-1", + "AirTargets": true, + "GroundTargets": true, + "PickUpEffect": "Tesla Pickup", + "PlacingEffect": "Tesla Placing", + "Hidden": true, + "TriggerRadius": 600, + "ExportNameTriggered": "teslatower_lvl4", + "AppearEffect": "Tesla Appear", + "StrengthWeight": 269, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_TESLA_TOWER2", + "InfoTID": "TID_TESLA_TOWER2_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "teslatower_lvl5_setup", + "ExportNameConstruction": "teslatower_const", + "BuildTimeD": 1, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 700000, + "TownHallLevel": 5, + "CapitalHallLevel": 5, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "teslatower_upg", + "Hitpoints": 550, + "RegenTime": 1, + "AttackRange": 700, + "AttackSpeed": 600, + "Damage": 53, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Tesla Attack_2", + "HitEffect": "Tesla Hit", + "ExportNameDamaged": "destroyedBuilding_2s_pit_wood", + "BuildingW": 1, + "BuildingH": 1, + "BaseGfx": "-1", + "AirTargets": true, + "GroundTargets": true, + "PickUpEffect": "Tesla Pickup", + "PlacingEffect": "Tesla Placing", + "Hidden": true, + "TriggerRadius": 600, + "ExportNameTriggered": "teslatower_lvl5", + "AppearEffect": "Tesla Appear", + "StrengthWeight": 276, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_BUILDING_TESLA_TOWER2", + "InfoTID": "TID_TESLA_TOWER2_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "teslatower_lvl6_setup", + "ExportNameConstruction": "teslatower_const", + "BuildTimeD": 2, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 1300000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "teslatower_upg", + "Hitpoints": 650, + "RegenTime": 1, + "AttackRange": 700, + "AttackSpeed": 600, + "Damage": 58, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Tesla Attack_3", + "HitEffect": "Tesla Hit", + "ExportNameDamaged": "destroyedBuilding_2s_pit_wood", + "BuildingW": 1, + "BuildingH": 1, + "BaseGfx": "-1", + "AirTargets": true, + "GroundTargets": true, + "PickUpEffect": "Tesla Pickup", + "PlacingEffect": "Tesla Placing", + "Hidden": true, + "TriggerRadius": 600, + "ExportNameTriggered": "teslatower_lvl6", + "AppearEffect": "Tesla Appear", + "StrengthWeight": 284, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_BUILDING_TESLA_TOWER2", + "InfoTID": "TID_TESLA_TOWER2_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "teslatower_lvl7_setup", + "ExportNameConstruction": "teslatower_const", + "BuildTimeD": 4, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 2100000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "teslatower_upg", + "Hitpoints": 750, + "RegenTime": 1, + "AttackRange": 700, + "AttackSpeed": 600, + "Damage": 64, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Tesla Attack_4", + "HitEffect": "Tesla Hit", + "ExportNameDamaged": "destroyedBuilding_2s_pit_wood", + "BuildingW": 1, + "BuildingH": 1, + "BaseGfx": "-1", + "AirTargets": true, + "GroundTargets": true, + "PickUpEffect": "Tesla Pickup", + "PlacingEffect": "Tesla Placing", + "Hidden": true, + "TriggerRadius": 600, + "ExportNameTriggered": "teslatower_lvl7", + "AppearEffect": "Tesla Appear", + "StrengthWeight": 291, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_BUILDING_TESLA_TOWER2", + "InfoTID": "TID_TESLA_TOWER2_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "teslatower_lvl8_setup", + "ExportNameConstruction": "teslatower_const", + "BuildTimeD": 6, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 3100000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "teslatower_upg", + "Hitpoints": 850, + "RegenTime": 1, + "AttackRange": 700, + "AttackSpeed": 600, + "Damage": 70, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Tesla Attack_4", + "HitEffect": "Tesla Hit", + "ExportNameDamaged": "destroyedBuilding_2s_pit_wood", + "BuildingW": 1, + "BuildingH": 1, + "BaseGfx": "-1", + "AirTargets": true, + "GroundTargets": true, + "PickUpEffect": "Tesla Pickup", + "PlacingEffect": "Tesla Placing", + "Hidden": true, + "TriggerRadius": 600, + "ExportNameTriggered": "teslatower_lvl8", + "AppearEffect": "Tesla Appear", + "StrengthWeight": 299, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_BUILDING_TESLA_TOWER2", + "InfoTID": "TID_TESLA_TOWER2_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "teslatower_lvl9_setup", + "ExportNameConstruction": "teslatower_const", + "BuildTimeD": 8, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 4100000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "teslatower_upg", + "Hitpoints": 1000, + "RegenTime": 1, + "AttackRange": 700, + "AttackSpeed": 600, + "Damage": 77, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Tesla Attack_4", + "HitEffect": "Tesla Hit", + "ExportNameDamaged": "destroyedBuilding_2s_pit_wood", + "BuildingW": 1, + "BuildingH": 1, + "BaseGfx": "-1", + "AirTargets": true, + "GroundTargets": true, + "PickUpEffect": "Tesla Pickup", + "PlacingEffect": "Tesla Placing", + "Hidden": true, + "TriggerRadius": 600, + "ExportNameTriggered": "teslatower_lvl9", + "AppearEffect": "Tesla Appear", + "StrengthWeight": 308, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "10": { + "BuildingLevel": 10, + "TID": "TID_BUILDING_TESLA_TOWER2", + "InfoTID": "TID_TESLA_TOWER2_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "teslatower_lvl10_setup", + "ExportNameConstruction": "teslatower_const", + "BuildTimeD": 10, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 5100000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "teslatower_upg", + "Hitpoints": 1150, + "RegenTime": 1, + "AttackRange": 700, + "AttackSpeed": 600, + "Damage": 85, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Tesla Attack_4", + "HitEffect": "Tesla Hit", + "ExportNameDamaged": "destroyedBuilding_2s_pit_wood", + "BuildingW": 1, + "BuildingH": 1, + "BaseGfx": "-1", + "AirTargets": true, + "GroundTargets": true, + "PickUpEffect": "Tesla Pickup", + "PlacingEffect": "Tesla Placing", + "Hidden": true, + "TriggerRadius": 600, + "ExportNameTriggered": "teslatower_lvl10", + "AppearEffect": "Tesla Appear", + "StrengthWeight": 320, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + } + }, + "Spell Factory": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_SPELL_FORGE", + "InfoTID": "TID_SPELL_FORGE_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "spell_factory_lvl1", + "ExportNameConstruction": "spell_factory_const", + "BuildTimeD": 0, + "BuildTimeH": 8, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 150000, + "TownHallLevel": 5, + "CapitalHallLevel": 5, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "spell_factory_upg", + "HousingSpaceAlt": 2, + "UnitProduction": 2, + "ProducesUnitsOfType": 1, + "LevelRequirementTID": "TID_REQUIRED_SPELL_FORGE_LEVEL", + "BoostCost": 5, + "Hitpoints": 425, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "goldmine_base", + "PickUpEffect": "Spell Factory Pickup", + "PlacingEffect": "Spell Factory Place", + "ForgesSpells": true, + "HintPriority": 600, + "PreviewScenario": "NoCombatBuilding" + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_SPELL_FORGE", + "InfoTID": "TID_SPELL_FORGE_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "spell_factory_lvl2", + "ExportNameConstruction": "spell_factory_const", + "BuildTimeD": 1, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 300000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "spell_factory_upg", + "HousingSpaceAlt": 4, + "UnitProduction": 4, + "ProducesUnitsOfType": 1, + "LevelRequirementTID": "TID_REQUIRED_SPELL_FORGE_LEVEL", + "BoostCost": 5, + "Hitpoints": 470, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "goldmine_base", + "PickUpEffect": "Spell Factory Pickup", + "PlacingEffect": "Spell Factory Place", + "ForgesSpells": true, + "HintPriority": 600, + "PreviewScenario": "NoCombatBuilding" + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_SPELL_FORGE", + "InfoTID": "TID_SPELL_FORGE_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "spell_factory_lvl3", + "ExportNameConstruction": "spell_factory_const", + "BuildTimeD": 2, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 600000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "spell_factory_upg", + "HousingSpaceAlt": 6, + "UnitProduction": 6, + "ProducesUnitsOfType": 1, + "LevelRequirementTID": "TID_REQUIRED_SPELL_FORGE_LEVEL", + "BoostCost": 5, + "Hitpoints": 520, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "goldmine_base", + "PickUpEffect": "Spell Factory Pickup", + "PlacingEffect": "Spell Factory Place", + "ForgesSpells": true, + "HintPriority": 600, + "PreviewScenario": "NoCombatBuilding" + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_SPELL_FORGE", + "InfoTID": "TID_SPELL_FORGE_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "spell_factory_lvl4", + "ExportNameConstruction": "spell_factory_const", + "BuildTimeD": 3, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 1200000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "spell_factory_upg", + "HousingSpaceAlt": 8, + "UnitProduction": 8, + "ProducesUnitsOfType": 1, + "LevelRequirementTID": "TID_REQUIRED_SPELL_FORGE_LEVEL", + "BoostCost": 5, + "Hitpoints": 600, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "spellforge_lvl4_base", + "PickUpEffect": "Spell Factory Pickup", + "PlacingEffect": "Spell Factory Place", + "ForgesSpells": true, + "HintPriority": 600, + "PreviewScenario": "NoCombatBuilding" + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_SPELL_FORGE", + "InfoTID": "TID_SPELL_FORGE_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "spell_factory_lvl5", + "ExportNameConstruction": "spell_factory_const", + "BuildTimeD": 4, + "BuildTimeH": 6, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 2000000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "spell_factory_upg", + "HousingSpaceAlt": 10, + "UnitProduction": 10, + "ProducesUnitsOfType": 1, + "LevelRequirementTID": "TID_REQUIRED_SPELL_FORGE_LEVEL", + "BoostCost": 5, + "Hitpoints": 720, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "spellforge_lvl4_base", + "PickUpEffect": "Spell Factory Pickup", + "PlacingEffect": "Spell Factory Place", + "ForgesSpells": true, + "HintPriority": 600, + "PreviewScenario": "NoCombatBuilding" + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_BUILDING_SPELL_FORGE", + "InfoTID": "TID_SPELL_FORGE_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "spell_factory_lvl6", + "ExportNameConstruction": "spell_factory_const", + "BuildTimeD": 5, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 3500000, + "TownHallLevel": 11, + "CapitalHallLevel": 11, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "spell_factory_upg", + "HousingSpaceAlt": 10, + "UnitProduction": 10, + "ProducesUnitsOfType": 1, + "LevelRequirementTID": "TID_REQUIRED_SPELL_FORGE_LEVEL", + "BoostCost": 5, + "Hitpoints": 840, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "spellforge_lvl4_base", + "PickUpEffect": "Spell Factory Pickup", + "PlacingEffect": "Spell Factory Place", + "ForgesSpells": true, + "HintPriority": 600, + "PreviewScenario": "NoCombatBuilding" + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_BUILDING_SPELL_FORGE", + "InfoTID": "TID_SPELL_FORGE_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "spell_factory_lvl7", + "ExportNameConstruction": "spell_factory_const", + "BuildTimeD": 8, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 9000000, + "TownHallLevel": 13, + "CapitalHallLevel": 13, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "spell_factory_upg", + "HousingSpaceAlt": 10, + "UnitProduction": 10, + "ProducesUnitsOfType": 1, + "LevelRequirementTID": "TID_REQUIRED_SPELL_FORGE_LEVEL", + "BoostCost": 5, + "Hitpoints": 960, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "spellforge_lvl4_base", + "PickUpEffect": "Spell Factory Pickup", + "PlacingEffect": "Spell Factory Place", + "ForgesSpells": true, + "HintPriority": 600, + "PreviewScenario": "NoCombatBuilding" + } + }, + "X-Bow": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_XBOW2", + "InfoTID": "TID_BUILDING_XBOW2_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "BB_xbow_lvl1", + "ExportNameConstruction": "tower_turret_const", + "BuildTimeD": 7, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 4400000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "ExportNameUpgradeAnim": "BB_xbow_upgrade_lvl1", + "Hitpoints": 1700, + "RegenTime": 1, + "AttackRange": 1200, + "AltAttackMode": true, + "AltAttackRange": 1200, + "AttackSpeed": 192, + "AltAttackSpeed": 192, + "DPS": 80, + "AltDPS": 80, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Rapidfire bow attack", + "HitEffect": "Generic Hit", + "Projectile": "Rapidfire arrow lvl6", + "AltProjectile": "Rapidfire arrow lvl6", + "ExportNameDamaged": "destroyedBuilding_3l_pit_wood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "rapidfire_base", + "AirTargets": false, + "GroundTargets": true, + "AltAirTargets": true, + "AltGroundTargets": false, + "ToggleAttackModeEffect": "Bow Target", + "PickUpEffect": "Bow Pickup", + "PlacingEffect": "Bow Placing", + "AnimateTurret": true, + "StrengthWeight": 2310, + "VillageType": 1, + "NewTargetAttackDelay": 500, + "HintPriority": 150, + "PreviewScenario": "Defense" + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_XBOW2", + "InfoTID": "TID_BUILDING_XBOW2_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "BB_xbow_lvl2", + "ExportNameConstruction": "tower_turret_const", + "BuildTimeD": 8, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 4800000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "ExportNameUpgradeAnim": "BB_xbow_upgrade_lvl2", + "Hitpoints": 1900, + "RegenTime": 1, + "AttackRange": 1200, + "AltAttackMode": true, + "AltAttackRange": 1200, + "AttackSpeed": 192, + "AltAttackSpeed": 192, + "DPS": 89, + "AltDPS": 89, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Rapidfire bow attack", + "HitEffect": "Generic Hit", + "Projectile": "Rapidfire arrow lvl6", + "AltProjectile": "Rapidfire arrow lvl6", + "ExportNameDamaged": "destroyedBuilding_3l_pit_wood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "rapidfire_base", + "AirTargets": false, + "GroundTargets": true, + "AltAirTargets": true, + "AltGroundTargets": false, + "ToggleAttackModeEffect": "Bow Target", + "PickUpEffect": "Bow Pickup", + "PlacingEffect": "Bow Placing", + "AnimateTurret": true, + "StrengthWeight": 2360, + "VillageType": 1, + "NewTargetAttackDelay": 500, + "HintPriority": 150, + "PreviewScenario": "Defense" + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_XBOW2", + "InfoTID": "TID_BUILDING_XBOW2_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "BB_xbow_lvl3", + "ExportNameConstruction": "tower_turret_const", + "BuildTimeD": 10, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 5200000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "ExportNameUpgradeAnim": "BB_xbow_upgrade_lvl3", + "Hitpoints": 2100, + "RegenTime": 1, + "AttackRange": 1200, + "AltAttackMode": true, + "AltAttackRange": 1200, + "AttackSpeed": 192, + "AltAttackSpeed": 192, + "DPS": 97, + "AltDPS": 97, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Rapidfire bow attack", + "HitEffect": "Generic Hit", + "Projectile": "Rapidfire arrow lvl6", + "AltProjectile": "Rapidfire arrow lvl6", + "ExportNameDamaged": "destroyedBuilding_3l_pit_wood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "rapidfire_base", + "AirTargets": false, + "GroundTargets": true, + "AltAirTargets": true, + "AltGroundTargets": false, + "ToggleAttackModeEffect": "Bow Target", + "PickUpEffect": "Bow Pickup", + "PlacingEffect": "Bow Placing", + "AnimateTurret": true, + "StrengthWeight": 2410, + "VillageType": 1, + "NewTargetAttackDelay": 500, + "HintPriority": 150, + "PreviewScenario": "Defense" + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_XBOW2", + "InfoTID": "TID_BUILDING_XBOW2_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "BB_xbow_lvl4", + "ExportNameConstruction": "tower_turret_const", + "BuildTimeD": 11, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 5600000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "ExportNameUpgradeAnim": "BB_xbow_upgrade_lvl4", + "Hitpoints": 2350, + "RegenTime": 1, + "AttackRange": 1200, + "AltAttackMode": true, + "AltAttackRange": 1200, + "AttackSpeed": 192, + "AltAttackSpeed": 192, + "DPS": 107, + "AltDPS": 107, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Rapidfire bow attack", + "HitEffect": "Generic Hit", + "Projectile": "Rapidfire arrow lvl6", + "AltProjectile": "Rapidfire arrow lvl6", + "ExportNameDamaged": "destroyedBuilding_3l_pit_wood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "rapidfire_base", + "AirTargets": false, + "GroundTargets": true, + "AltAirTargets": true, + "AltGroundTargets": false, + "ToggleAttackModeEffect": "Bow Target", + "PickUpEffect": "Bow Pickup", + "PlacingEffect": "Bow Placing", + "AnimateTurret": true, + "StrengthWeight": 2430, + "VillageType": 1, + "NewTargetAttackDelay": 500, + "HintPriority": 150, + "PreviewScenario": "Defense" + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_XBOW2", + "InfoTID": "TID_BUILDING_XBOW2_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "BB_xbow_lvl5", + "ExportNameConstruction": "tower_turret_const", + "BuildTimeD": 12, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 6000000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "ExportNameUpgradeAnim": "BB_xbow_upgrade_lvl5", + "Hitpoints": 2600, + "RegenTime": 1, + "AttackRange": 1200, + "AltAttackMode": true, + "AltAttackRange": 1200, + "AttackSpeed": 192, + "AltAttackSpeed": 192, + "DPS": 117, + "AltDPS": 117, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Rapidfire bow attack", + "HitEffect": "Generic Hit", + "Projectile": "Rapidfire arrow lvl6", + "AltProjectile": "Rapidfire arrow lvl6", + "ExportNameDamaged": "destroyedBuilding_3l_pit_wood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "rapidfire_base", + "AirTargets": false, + "GroundTargets": true, + "AltAirTargets": true, + "AltGroundTargets": false, + "ToggleAttackModeEffect": "Bow Target", + "PickUpEffect": "Bow Pickup", + "PlacingEffect": "Bow Placing", + "AnimateTurret": true, + "StrengthWeight": 2450, + "VillageType": 1, + "NewTargetAttackDelay": 500, + "HintPriority": 150, + "PreviewScenario": "Defense" + } + }, + "Barbarian King": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_BARBARIAN_KING_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "heroaltar_barbarian_king_lvl1", + "ExportNameConstruction": "heroaltar_barbarian_king_const", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "DarkElixir", + "BuildCost": 5000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "heroaltar_barbarian_king_upg", + "BoostCost": 5, + "Hitpoints": 250, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "heroaltar_base", + "PickUpEffect": "Hero Altar Pickup", + "PlacingEffect": "Hero Altar Place", + "IsHeroBarrack": true, + "HeroType": "Barbarian King", + "HintPriority": 700 + } + }, + "Dark Elixir Drill": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_DARK_ELIXIR_PUMP", + "InfoTID": "TID_DARK_ELIXIR_PUMP_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "darkelixir_pump_lvl1", + "ExportNameConstruction": "darkelixir_pump_const", + "BuildTimeD": 0, + "BuildTimeH": 6, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 500000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "darkelixir_pump_upg", + "ProducesResource": "DarkElixir", + "ResourcePer100Hours": 2000, + "ResourceMax": 160, + "ResourceIconLimit": 1, + "BoostCost": 7, + "Hitpoints": 800, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "dark_elixir_pump_base", + "PickUpEffect": "Dark Elixir Drill Pickup", + "PlacingEffect": "Dark Elixir Drill Place", + "HintPriority": 400, + "PreviewScenario": "NoCombatBuilding" + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_DARK_ELIXIR_PUMP", + "InfoTID": "TID_DARK_ELIXIR_PUMP_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "darkelixir_pump_lvl2", + "ExportNameConstruction": "darkelixir_pump_const", + "BuildTimeD": 0, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 700000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "darkelixir_pump_upg", + "ProducesResource": "DarkElixir", + "ResourcePer100Hours": 3000, + "ResourceMax": 300, + "ResourceIconLimit": 1, + "BoostCost": 10, + "Hitpoints": 860, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "dark_elixir_pump_base", + "PickUpEffect": "Dark Elixir Drill Pickup", + "PlacingEffect": "Dark Elixir Drill Place", + "HintPriority": 400, + "PreviewScenario": "NoCombatBuilding" + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_DARK_ELIXIR_PUMP", + "InfoTID": "TID_DARK_ELIXIR_PUMP_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "darkelixir_pump_lvl3", + "ExportNameConstruction": "darkelixir_pump_const", + "BuildTimeD": 0, + "BuildTimeH": 18, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 900000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "darkelixir_pump_upg", + "ProducesResource": "DarkElixir", + "ResourcePer100Hours": 4500, + "ResourceMax": 540, + "ResourceIconLimit": 1, + "BoostCost": 15, + "Hitpoints": 920, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "dark_elixir_pump_base", + "PickUpEffect": "Dark Elixir Drill Pickup", + "PlacingEffect": "Dark Elixir Drill Place", + "HintPriority": 400, + "PreviewScenario": "NoCombatBuilding" + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_DARK_ELIXIR_PUMP", + "InfoTID": "TID_DARK_ELIXIR_PUMP_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "darkelixir_pump_lvl4", + "ExportNameConstruction": "darkelixir_pump_const", + "BuildTimeD": 1, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 1200000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "darkelixir_pump_upg", + "ProducesResource": "DarkElixir", + "ResourcePer100Hours": 6000, + "ResourceMax": 840, + "ResourceIconLimit": 2, + "BoostCost": 20, + "Hitpoints": 980, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "dark_elixir_pump_base", + "PickUpEffect": "Dark Elixir Drill Pickup", + "PlacingEffect": "Dark Elixir Drill Place", + "HintPriority": 400, + "PreviewScenario": "NoCombatBuilding" + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_DARK_ELIXIR_PUMP", + "InfoTID": "TID_DARK_ELIXIR_PUMP_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "darkelixir_pump_lvl5", + "ExportNameConstruction": "darkelixir_pump_const", + "BuildTimeD": 1, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 1500000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "darkelixir_pump_upg", + "ProducesResource": "DarkElixir", + "ResourcePer100Hours": 8000, + "ResourceMax": 1280, + "ResourceIconLimit": 2, + "BoostCost": 25, + "Hitpoints": 1060, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "dark_elixir_pump_base", + "PickUpEffect": "Dark Elixir Drill Pickup", + "PlacingEffect": "Dark Elixir Drill Place", + "HintPriority": 400, + "PreviewScenario": "NoCombatBuilding" + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_BUILDING_DARK_ELIXIR_PUMP", + "InfoTID": "TID_DARK_ELIXIR_PUMP_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "darkelixir_pump_lvl6", + "ExportNameConstruction": "darkelixir_pump_const", + "BuildTimeD": 2, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 1800000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "darkelixir_pump_upg", + "ProducesResource": "DarkElixir", + "ResourcePer100Hours": 10000, + "ResourceMax": 1800, + "ResourceIconLimit": 3, + "BoostCost": 30, + "Hitpoints": 1160, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "dark_elixir_pump_base", + "PickUpEffect": "Dark Elixir Drill Pickup", + "PlacingEffect": "Dark Elixir Drill Place", + "HintPriority": 400, + "PreviewScenario": "NoCombatBuilding" + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_BUILDING_DARK_ELIXIR_PUMP", + "InfoTID": "TID_DARK_ELIXIR_PUMP_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "darkelixir_pump_lvl7", + "ExportNameConstruction": "darkelixir_pump_const", + "BuildTimeD": 3, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 2400000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "darkelixir_pump_upg", + "ProducesResource": "DarkElixir", + "ResourcePer100Hours": 12000, + "ResourceMax": 2400, + "ResourceIconLimit": 4, + "BoostCost": 35, + "Hitpoints": 1280, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "dark_elixir_pump_base", + "PickUpEffect": "Dark Elixir Drill Pickup", + "PlacingEffect": "Dark Elixir Drill Place", + "HintPriority": 400, + "PreviewScenario": "NoCombatBuilding" + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_BUILDING_DARK_ELIXIR_PUMP", + "InfoTID": "TID_DARK_ELIXIR_PUMP_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "darkelixir_pump_lvl8", + "ExportNameConstruction": "darkelixir_pump_const", + "BuildTimeD": 4, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 3000000, + "TownHallLevel": 11, + "CapitalHallLevel": 11, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "darkelixir_pump_upg", + "ProducesResource": "DarkElixir", + "ResourcePer100Hours": 14000, + "ResourceMax": 3000, + "ResourceIconLimit": 5, + "BoostCost": 40, + "Hitpoints": 1380, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "dark_elixir_pump_base", + "PickUpEffect": "Dark Elixir Drill Pickup", + "PlacingEffect": "Dark Elixir Drill Place", + "HintPriority": 400, + "PreviewScenario": "NoCombatBuilding" + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_BUILDING_DARK_ELIXIR_PUMP", + "InfoTID": "TID_DARK_ELIXIR_PUMP_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "darkelixir_pump_lvl9", + "ExportNameConstruction": "darkelixir_pump_const", + "BuildTimeD": 7, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 4000000, + "TownHallLevel": 12, + "CapitalHallLevel": 12, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "darkelixir_pump_upg", + "ProducesResource": "DarkElixir", + "ResourcePer100Hours": 16000, + "ResourceMax": 3600, + "ResourceIconLimit": 6, + "BoostCost": 45, + "Hitpoints": 1480, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "dark_elixir_pump_base", + "PickUpEffect": "Dark Elixir Drill Pickup", + "PlacingEffect": "Dark Elixir Drill Place", + "HintPriority": 400, + "PreviewScenario": "NoCombatBuilding" + } + }, + "Dark Elixir Storage": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_DARK_ELIXIR_STORAGE", + "InfoTID": "TID_DARK_ELIXIR_STORAGE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "darkelixir_storage_level1", + "ExportNameConstruction": "darkelixir_storage_const", + "BuildTimeD": 0, + "BuildTimeH": 8, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 250000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "darkelixir_storage_upg", + "MaxStoredDarkElixir": 10000, + "Hitpoints": 2000, + "RegenTime": 30, + "DestroyEffect": "Elixir Storage Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_glass", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "dark_elixir_storage_lvl1_base", + "PickUpEffect": "Dark Elixir Storage Pickup", + "PlacingEffect": "Dark Elixir Storage Place", + "HintPriority": 300, + "PreviewScenario": "NoCombatBuilding" + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_DARK_ELIXIR_STORAGE", + "InfoTID": "TID_DARK_ELIXIR_STORAGE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "darkelixir_storage_level2", + "ExportNameConstruction": "darkelixir_storage_const", + "BuildTimeD": 0, + "BuildTimeH": 16, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 500000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "darkelixir_storage_upg", + "MaxStoredDarkElixir": 17500, + "Hitpoints": 2200, + "RegenTime": 30, + "DestroyEffect": "Elixir Storage Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_glass", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "dark_elixir_storage_lvl2_base", + "PickUpEffect": "Dark Elixir Storage Pickup", + "PlacingEffect": "Dark Elixir Storage Place", + "HintPriority": 300, + "PreviewScenario": "NoCombatBuilding" + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_DARK_ELIXIR_STORAGE", + "InfoTID": "TID_DARK_ELIXIR_STORAGE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "darkelixir_storage_level3", + "ExportNameConstruction": "darkelixir_storage_const", + "BuildTimeD": 1, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 1000000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredDarkElixir": 40000, + "Hitpoints": 2400, + "RegenTime": 30, + "DestroyEffect": "Elixir Storage Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_glass", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "dark_elixir_storage_lvl3_base", + "PickUpEffect": "Dark Elixir Storage Pickup", + "PlacingEffect": "Dark Elixir Storage Place", + "HintPriority": 300, + "PreviewScenario": "NoCombatBuilding" + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_DARK_ELIXIR_STORAGE", + "InfoTID": "TID_DARK_ELIXIR_STORAGE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "darkelixir_storage_level4", + "ExportNameConstruction": "darkelixir_storage_const", + "BuildTimeD": 1, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 1500000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredDarkElixir": 75000, + "Hitpoints": 2600, + "RegenTime": 30, + "DestroyEffect": "Elixir Storage Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_glass", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "dark_elixir_storage_lvl4_base", + "PickUpEffect": "Dark Elixir Storage Pickup", + "PlacingEffect": "Dark Elixir Storage Place", + "HintPriority": 300, + "PreviewScenario": "NoCombatBuilding" + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_DARK_ELIXIR_STORAGE", + "InfoTID": "TID_DARK_ELIXIR_STORAGE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "darkelixir_storage_level5", + "ExportNameConstruction": "darkelixir_storage_const", + "BuildTimeD": 2, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 2000000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredDarkElixir": 140000, + "Hitpoints": 2900, + "RegenTime": 30, + "DestroyEffect": "Elixir Storage Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_glass", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "dark_elixir_storage_lvl5_base", + "PickUpEffect": "Dark Elixir Storage Pickup", + "PlacingEffect": "Dark Elixir Storage Place", + "HintPriority": 300, + "PreviewScenario": "NoCombatBuilding" + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_BUILDING_DARK_ELIXIR_STORAGE", + "InfoTID": "TID_DARK_ELIXIR_STORAGE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "darkelixir_storage_level6", + "ExportNameConstruction": "darkelixir_storage_const", + "BuildTimeD": 2, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 3000000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredDarkElixir": 180000, + "Hitpoints": 3200, + "RegenTime": 30, + "DestroyEffect": "Elixir Storage Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_glass", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "dark_elixir_storage_lvl6_base", + "PickUpEffect": "Dark Elixir Storage Pickup", + "PlacingEffect": "Dark Elixir Storage Place", + "HintPriority": 300, + "PreviewScenario": "NoCombatBuilding" + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_BUILDING_DARK_ELIXIR_STORAGE", + "InfoTID": "TID_DARK_ELIXIR_STORAGE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "darkelixir_storage_level7", + "ExportNameConstruction": "darkelixir_storage_const", + "BuildTimeD": 3, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 3800000, + "TownHallLevel": 12, + "CapitalHallLevel": 12, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredDarkElixir": 220000, + "Hitpoints": 3500, + "RegenTime": 30, + "DestroyEffect": "Elixir Storage Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_glass", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "dark_elixir_storage_lvl6_base", + "PickUpEffect": "Dark Elixir Storage Pickup", + "PlacingEffect": "Dark Elixir Storage Place", + "HintPriority": 300, + "PreviewScenario": "NoCombatBuilding" + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_BUILDING_DARK_ELIXIR_STORAGE", + "InfoTID": "TID_DARK_ELIXIR_STORAGE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "darkelixir_storage_level8", + "ExportNameConstruction": "darkelixir_storage_const", + "BuildTimeD": 6, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 5400000, + "TownHallLevel": 13, + "CapitalHallLevel": 13, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredDarkElixir": 280000, + "Hitpoints": 3800, + "RegenTime": 30, + "DestroyEffect": "Elixir Storage Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_glass", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "dark_elixir_storage_lvl6_base", + "PickUpEffect": "Dark Elixir Storage Pickup", + "PlacingEffect": "Dark Elixir Storage Place", + "HintPriority": 300, + "PreviewScenario": "NoCombatBuilding" + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_BUILDING_DARK_ELIXIR_STORAGE", + "InfoTID": "TID_DARK_ELIXIR_STORAGE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "darkelixir_storage_level9", + "ExportNameConstruction": "darkelixir_storage_const", + "BuildTimeD": 12, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 8100000, + "TownHallLevel": 14, + "CapitalHallLevel": 14, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredDarkElixir": 330000, + "Hitpoints": 4100, + "RegenTime": 30, + "DestroyEffect": "Elixir Storage Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_glass", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "dark_elixir_storage_lvl6_base", + "PickUpEffect": "Dark Elixir Storage Pickup", + "PlacingEffect": "Dark Elixir Storage Place", + "HintPriority": 300, + "PreviewScenario": "NoCombatBuilding" + }, + "10": { + "BuildingLevel": 10, + "TID": "TID_BUILDING_DARK_ELIXIR_STORAGE", + "InfoTID": "TID_DARK_ELIXIR_STORAGE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "darkelixir_storage_level10", + "ExportNameConstruction": "darkelixir_storage_const", + "BuildTimeD": 12, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 12500000, + "TownHallLevel": 15, + "CapitalHallLevel": 15, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredDarkElixir": 350000, + "Hitpoints": 4300, + "RegenTime": 30, + "DestroyEffect": "Elixir Storage Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_glass", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "dark_elixir_storage_lvl6_base", + "PickUpEffect": "Dark Elixir Storage Pickup", + "PlacingEffect": "Dark Elixir Storage Place", + "HintPriority": 300, + "PreviewScenario": "NoCombatBuilding" + }, + "11": { + "BuildingLevel": 11, + "TID": "TID_BUILDING_DARK_ELIXIR_STORAGE", + "InfoTID": "TID_DARK_ELIXIR_STORAGE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "darkelixir_storage_level11", + "ExportNameConstruction": "darkelixir_storage_const", + "BuildTimeD": 15, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 13500000, + "TownHallLevel": 16, + "CapitalHallLevel": 16, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredDarkElixir": 360000, + "Hitpoints": 4500, + "RegenTime": 30, + "DestroyEffect": "Elixir Storage Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_glass", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "dark_elixir_storage_lvl6_base", + "PickUpEffect": "Dark Elixir Storage Pickup", + "PlacingEffect": "Dark Elixir Storage Place", + "HintPriority": 300, + "PreviewScenario": "NoCombatBuilding" + } + }, + "Archer Queen": { + "1": { + "BuildingLevel": 1, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_ARCHER_QUEEN_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "heroaltar_archer_queen_lvl1", + "ExportNameConstruction": "heroaltar_archer_queen_const", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "DarkElixir", + "BuildCost": 10000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "heroaltar_archer_queen_upg", + "BoostCost": 5, + "Hitpoints": 250, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "heroaltar_base", + "PickUpEffect": "Hero Altar Pickup", + "PlacingEffect": "Hero Altar Place", + "IsHeroBarrack": true, + "HeroType": "Archer Queen", + "HintPriority": 700 + } + }, + "Dark Barracks": { + "1": { + "BuildingLevel": 1, + "TID": "TID_DARK_ELIXIR_BARRACK", + "InfoTID": "TID_DARK_ELIXIR_BARRACK_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "darkBarracks_lvl1", + "ExportNameConstruction": "darkBarracks_const", + "BuildTimeD": 0, + "BuildTimeH": 8, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 200000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "darkBarracks_upg", + "UnitProduction": 40, + "ProducesUnitsOfType": 2, + "LevelRequirementTID": "TID_REQUIRED_DARK_BARRACK_LEVEL", + "BoostCost": 5, + "Hitpoints": 500, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 400, + "PreviewScenario": "NoCombatBuilding" + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_DARK_ELIXIR_BARRACK", + "InfoTID": "TID_DARK_ELIXIR_BARRACK_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "darkBarracks_lvl2", + "ExportNameConstruction": "darkBarracks_const", + "BuildTimeD": 1, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 600000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "darkBarracks_upg", + "UnitProduction": 50, + "ProducesUnitsOfType": 2, + "LevelRequirementTID": "TID_REQUIRED_DARK_BARRACK_LEVEL", + "BoostCost": 5, + "Hitpoints": 550, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 400, + "PreviewScenario": "NoCombatBuilding" + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_DARK_ELIXIR_BARRACK", + "InfoTID": "TID_DARK_ELIXIR_BARRACK_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "darkBarracks_lvl3", + "ExportNameConstruction": "darkBarracks_const", + "BuildTimeD": 1, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 1000000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "darkBarracks_upg", + "UnitProduction": 60, + "ProducesUnitsOfType": 2, + "LevelRequirementTID": "TID_REQUIRED_DARK_BARRACK_LEVEL", + "BoostCost": 5, + "Hitpoints": 600, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 400, + "PreviewScenario": "NoCombatBuilding" + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_DARK_ELIXIR_BARRACK", + "InfoTID": "TID_DARK_ELIXIR_BARRACK_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "darkBarracks_lvl4", + "ExportNameConstruction": "darkBarracks_const", + "BuildTimeD": 2, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 1600000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "darkBarracks_upg", + "UnitProduction": 70, + "ProducesUnitsOfType": 2, + "LevelRequirementTID": "TID_REQUIRED_DARK_BARRACK_LEVEL", + "BoostCost": 5, + "Hitpoints": 650, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 400, + "PreviewScenario": "NoCombatBuilding" + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_DARK_ELIXIR_BARRACK", + "InfoTID": "TID_DARK_ELIXIR_BARRACK_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "darkBarracks_lvl5", + "ExportNameConstruction": "darkBarracks_const", + "BuildTimeD": 3, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 2200000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "darkBarracks_upg", + "UnitProduction": 80, + "ProducesUnitsOfType": 2, + "LevelRequirementTID": "TID_REQUIRED_DARK_BARRACK_LEVEL", + "BoostCost": 5, + "Hitpoints": 700, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 400, + "PreviewScenario": "NoCombatBuilding" + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_DARK_ELIXIR_BARRACK", + "InfoTID": "TID_DARK_ELIXIR_BARRACK_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "darkBarracks_lvl6", + "ExportNameConstruction": "darkBarracks_const", + "BuildTimeD": 4, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 2900000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "darkBarracks_upg", + "UnitProduction": 90, + "ProducesUnitsOfType": 2, + "LevelRequirementTID": "TID_REQUIRED_DARK_BARRACK_LEVEL", + "BoostCost": 5, + "Hitpoints": 750, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 400, + "PreviewScenario": "NoCombatBuilding" + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_DARK_ELIXIR_BARRACK", + "InfoTID": "TID_DARK_ELIXIR_BARRACK_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "darkBarracks_lvl7", + "ExportNameConstruction": "darkBarracks_const", + "BuildTimeD": 6, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 4000000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "darkBarracks_upg", + "UnitProduction": 100, + "ProducesUnitsOfType": 2, + "LevelRequirementTID": "TID_REQUIRED_DARK_BARRACK_LEVEL", + "BoostCost": 5, + "Hitpoints": 800, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 400, + "PreviewScenario": "NoCombatBuilding" + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_DARK_ELIXIR_BARRACK", + "InfoTID": "TID_DARK_ELIXIR_BARRACK_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "darkBarracks_lvl8", + "ExportNameConstruction": "darkBarracks_const", + "BuildTimeD": 8, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 7500000, + "TownHallLevel": 11, + "CapitalHallLevel": 11, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "darkBarracks_upg", + "UnitProduction": 110, + "ProducesUnitsOfType": 2, + "LevelRequirementTID": "TID_REQUIRED_DARK_BARRACK_LEVEL", + "BoostCost": 5, + "Hitpoints": 850, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 400, + "PreviewScenario": "NoCombatBuilding" + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_DARK_ELIXIR_BARRACK", + "InfoTID": "TID_DARK_ELIXIR_BARRACK_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "darkBarracks_lvl9", + "ExportNameConstruction": "darkBarracks_const", + "BuildTimeD": 10, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 9000000, + "TownHallLevel": 12, + "CapitalHallLevel": 12, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "darkBarracks_upg", + "UnitProduction": 120, + "ProducesUnitsOfType": 2, + "LevelRequirementTID": "TID_REQUIRED_DARK_BARRACK_LEVEL", + "BoostCost": 5, + "Hitpoints": 900, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 400, + "PreviewScenario": "NoCombatBuilding" + }, + "10": { + "BuildingLevel": 10, + "TID": "TID_DARK_ELIXIR_BARRACK", + "InfoTID": "TID_DARK_ELIXIR_BARRACK_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "darkBarracks_lvl10", + "ExportNameConstruction": "darkBarracks_const", + "BuildTimeD": 13, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 13000000, + "TownHallLevel": 13, + "CapitalHallLevel": 13, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "darkBarracks_upg", + "UnitProduction": 130, + "ProducesUnitsOfType": 2, + "LevelRequirementTID": "TID_REQUIRED_DARK_BARRACK_LEVEL", + "BoostCost": 5, + "Hitpoints": 950, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 400, + "PreviewScenario": "NoCombatBuilding" + } + }, + "Inferno Tower": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_DARK_TOWER", + "InfoTID": "TID_DARK_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "dark_tower_lvl1", + "ExportNameConstruction": "dark_tower_const", + "BuildTimeD": 2, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 1500000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "dark_tower_upg", + "ExportNameUpgradeAnim": "dark_tower_lvl1_upgrade", + "Hitpoints": 1500, + "RegenTime": 20, + "AttackRange": 900, + "AltAttackMode": true, + "AltAttackRange": 1000, + "AttackSpeed": 128, + "DPS": 30, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Dark Tower Attack 1", + "HitEffect": "Dark Tower Hit", + "ExportNameDamaged": "destroyedBuilding_2l_round_pit_rockwood", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "dark_tower_base", + "AirTargets": true, + "GroundTargets": true, + "AltAirTargets": true, + "AltGroundTargets": true, + "AltMultiTargets": true, + "AmmoCount": 1000, + "AmmoResource": "DarkElixir", + "AmmoCost": 500, + "LoadAmmoEffect": "Dark Tower Load", + "NoAmmoEffect": "Dark Tower No Ammo", + "ToggleAttackModeEffect": "Dark Tower Target", + "PickUpEffect": "Dark Tower Pickup", + "PlacingEffect": "Dark Tower Placing", + "IncreasingDamage": true, + "DPSLv2": 80, + "DPSLv3": 800, + "DPSMulti": 30, + "Lv2SwitchTime": 1500, + "Lv3SwitchTime": 5250, + "AttackEffectLv2": "Dark Tower Attack 2", + "AttackEffectLv3": "Dark Tower Attack 3", + "TransitionEffectLv2": "Dark Tower Up 2", + "TransitionEffectLv3": "Dark Tower Up 3", + "AltNumMultiTargets": 5, + "StrengthWeight": 2800, + "AlternatePickNewTargetDelay": 50, + "HintPriority": 150, + "PreviewScenario": "DefenseHeavy", + "AltPreviewScenario": "DefenseLongRange" + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_DARK_TOWER", + "InfoTID": "TID_DARK_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "dark_tower_lvl2", + "ExportNameConstruction": "dark_tower_const", + "BuildTimeD": 2, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 2000000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "dark_tower_upg", + "ExportNameUpgradeAnim": "dark_tower_lvl2_upgrade", + "Hitpoints": 1800, + "RegenTime": 21, + "AttackRange": 900, + "AltAttackMode": true, + "AltAttackRange": 1000, + "AttackSpeed": 128, + "DPS": 35, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Dark Tower Attack 1", + "HitEffect": "Dark Tower Hit", + "ExportNameDamaged": "destroyedBuilding_2l_round_pit_rockwood", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "dark_tower_base", + "AirTargets": true, + "GroundTargets": true, + "AltAirTargets": true, + "AltGroundTargets": true, + "AltMultiTargets": true, + "AmmoCount": 1000, + "AmmoResource": "DarkElixir", + "AmmoCost": 600, + "LoadAmmoEffect": "Dark Tower Load", + "NoAmmoEffect": "Dark Tower No Ammo", + "ToggleAttackModeEffect": "Dark Tower Target", + "PickUpEffect": "Dark Tower Pickup", + "PlacingEffect": "Dark Tower Placing", + "IncreasingDamage": true, + "DPSLv2": 100, + "DPSLv3": 1000, + "DPSMulti": 35, + "Lv2SwitchTime": 1500, + "Lv3SwitchTime": 5250, + "AttackEffectLv2": "Dark Tower Attack 2", + "AttackEffectLv3": "Dark Tower Attack 3", + "TransitionEffectLv2": "Dark Tower Up 2", + "TransitionEffectLv3": "Dark Tower Up 3", + "AltNumMultiTargets": 5, + "StrengthWeight": 2500, + "AlternatePickNewTargetDelay": 50, + "HintPriority": 150, + "PreviewScenario": "DefenseHeavy", + "AltPreviewScenario": "DefenseLongRange" + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_DARK_TOWER", + "InfoTID": "TID_DARK_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "dark_tower_lvl3", + "ExportNameConstruction": "dark_tower_const", + "BuildTimeD": 3, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 3000000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "dark_tower_upg", + "ExportNameUpgradeAnim": "dark_tower_lvl3_upgrade", + "Hitpoints": 2100, + "RegenTime": 22, + "AttackRange": 900, + "AltAttackMode": true, + "AltAttackRange": 1000, + "AttackSpeed": 128, + "DPS": 40, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Dark Tower lvl3 Attack 1", + "HitEffect": "Dark Tower Hit", + "ExportNameDamaged": "destroyedBuilding_2l_round_pit_rockwood", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "dark_tower_base", + "AirTargets": true, + "GroundTargets": true, + "AltAirTargets": true, + "AltGroundTargets": true, + "AltMultiTargets": true, + "AmmoCount": 1000, + "AmmoResource": "DarkElixir", + "AmmoCost": 700, + "LoadAmmoEffect": "Dark Tower Load", + "NoAmmoEffect": "Dark Tower No Ammo", + "ToggleAttackModeEffect": "Dark Tower Target", + "PickUpEffect": "Dark Tower Pickup", + "PlacingEffect": "Dark Tower Placing", + "IncreasingDamage": true, + "DPSLv2": 120, + "DPSLv3": 1200, + "DPSMulti": 40, + "Lv2SwitchTime": 1500, + "Lv3SwitchTime": 5250, + "AttackEffectLv2": "Dark Tower lvl3 Attack 2", + "AttackEffectLv3": "Dark Tower lvl3 Attack 3", + "TransitionEffectLv2": "Dark Tower Up 2", + "TransitionEffectLv3": "Dark Tower Up 3", + "AltNumMultiTargets": 5, + "StrengthWeight": 2250, + "AlternatePickNewTargetDelay": 50, + "HintPriority": 150, + "PreviewScenario": "DefenseHeavy", + "AltPreviewScenario": "DefenseLongRange" + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_DARK_TOWER", + "InfoTID": "TID_DARK_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "dark_tower_lvl4", + "ExportNameConstruction": "dark_tower_const", + "BuildTimeD": 4, + "BuildTimeH": 6, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 3400000, + "TownHallLevel": 11, + "CapitalHallLevel": 11, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "dark_tower_upg", + "ExportNameUpgradeAnim": "dark_tower_lvl4_upgrade", + "Hitpoints": 2400, + "RegenTime": 23, + "AttackRange": 900, + "AltAttackMode": true, + "AltAttackRange": 1000, + "AttackSpeed": 128, + "DPS": 50, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Dark Tower lvl3 Attack 1", + "HitEffect": "Dark Tower Hit", + "ExportNameDamaged": "destroyedBuilding_2l_round_pit_rockwood", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "dark_tower_base", + "AirTargets": true, + "GroundTargets": true, + "AltAirTargets": true, + "AltGroundTargets": true, + "AltMultiTargets": true, + "AmmoCount": 1000, + "AmmoResource": "DarkElixir", + "AmmoCost": 800, + "LoadAmmoEffect": "Dark Tower Load", + "NoAmmoEffect": "Dark Tower No Ammo", + "ToggleAttackModeEffect": "Dark Tower Target", + "PickUpEffect": "Dark Tower Pickup", + "PlacingEffect": "Dark Tower Placing", + "IncreasingDamage": true, + "DPSLv2": 140, + "DPSLv3": 1400, + "DPSMulti": 50, + "Lv2SwitchTime": 1500, + "Lv3SwitchTime": 5250, + "AttackEffectLv2": "Dark Tower lvl3 Attack 2", + "AttackEffectLv3": "Dark Tower lvl3 Attack 3", + "TransitionEffectLv2": "Dark Tower Up 2", + "TransitionEffectLv3": "Dark Tower Up 3", + "AltNumMultiTargets": 5, + "StrengthWeight": 2100, + "AlternatePickNewTargetDelay": 50, + "HintPriority": 150, + "PreviewScenario": "DefenseHeavy", + "AltPreviewScenario": "DefenseLongRange" + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_DARK_TOWER", + "InfoTID": "TID_DARK_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "dark_tower_lvl5", + "ExportNameConstruction": "dark_tower_const", + "BuildTimeD": 5, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 4200000, + "TownHallLevel": 11, + "CapitalHallLevel": 11, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "dark_tower_upg", + "ExportNameUpgradeAnim": "dark_tower_lvl5_upgrade", + "Hitpoints": 2700, + "RegenTime": 23, + "AttackRange": 900, + "AltAttackMode": true, + "AltAttackRange": 1000, + "AttackSpeed": 128, + "DPS": 60, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Dark Tower lvl3 Attack 1", + "HitEffect": "Dark Tower Hit", + "ExportNameDamaged": "destroyedBuilding_2l_round_pit_rockwood", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "dark_tower_base", + "AirTargets": true, + "GroundTargets": true, + "AltAirTargets": true, + "AltGroundTargets": true, + "AltMultiTargets": true, + "AmmoCount": 1000, + "AmmoResource": "DarkElixir", + "AmmoCost": 900, + "LoadAmmoEffect": "Dark Tower Load", + "NoAmmoEffect": "Dark Tower No Ammo", + "ToggleAttackModeEffect": "Dark Tower Target", + "PickUpEffect": "Dark Tower Pickup", + "PlacingEffect": "Dark Tower Placing", + "IncreasingDamage": true, + "DPSLv2": 160, + "DPSLv3": 1600, + "DPSMulti": 60, + "Lv2SwitchTime": 1500, + "Lv3SwitchTime": 5250, + "AttackEffectLv2": "Dark Tower lvl3 Attack 2", + "AttackEffectLv3": "Dark Tower lvl3 Attack 3", + "TransitionEffectLv2": "Dark Tower Up 2", + "TransitionEffectLv3": "Dark Tower Up 3", + "AltNumMultiTargets": 5, + "StrengthWeight": 2000, + "AlternatePickNewTargetDelay": 50, + "HintPriority": 150, + "PreviewScenario": "DefenseHeavy", + "AltPreviewScenario": "DefenseLongRange" + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_BUILDING_DARK_TOWER", + "InfoTID": "TID_DARK_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "dark_tower_lvl6", + "ExportNameConstruction": "dark_tower_const", + "BuildTimeD": 8, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 6500000, + "TownHallLevel": 12, + "CapitalHallLevel": 12, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "dark_tower_upg", + "ExportNameUpgradeAnim": "dark_tower_lvl6_upgrade", + "Hitpoints": 3000, + "RegenTime": 23, + "AttackRange": 900, + "AltAttackMode": true, + "AltAttackRange": 1000, + "AttackSpeed": 128, + "DPS": 70, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Dark Tower lvl3 Attack 1", + "HitEffect": "Dark Tower Hit", + "ExportNameDamaged": "destroyedBuilding_2l_round_pit_rockwood", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "dark_tower_base", + "AirTargets": true, + "GroundTargets": true, + "AltAirTargets": true, + "AltGroundTargets": true, + "AltMultiTargets": true, + "AmmoCount": 1000, + "AmmoResource": "DarkElixir", + "AmmoCost": 1000, + "LoadAmmoEffect": "Dark Tower Load", + "NoAmmoEffect": "Dark Tower No Ammo", + "ToggleAttackModeEffect": "Dark Tower Target", + "PickUpEffect": "Dark Tower Pickup", + "PlacingEffect": "Dark Tower Placing", + "IncreasingDamage": true, + "DPSLv2": 180, + "DPSLv3": 1800, + "DPSMulti": 70, + "Lv2SwitchTime": 1500, + "Lv3SwitchTime": 5250, + "AttackEffectLv2": "Dark Tower lvl3 Attack 2", + "AttackEffectLv3": "Dark Tower lvl3 Attack 3", + "TransitionEffectLv2": "Dark Tower Up 2", + "TransitionEffectLv3": "Dark Tower Up 3", + "AltNumMultiTargets": 5, + "StrengthWeight": 1900, + "AlternatePickNewTargetDelay": 50, + "HintPriority": 150, + "PreviewScenario": "DefenseHeavy", + "AltPreviewScenario": "DefenseLongRange" + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_BUILDING_DARK_TOWER", + "InfoTID": "TID_DARK_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "dark_tower_lvl7", + "ExportNameConstruction": "dark_tower_const", + "BuildTimeD": 9, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 10500000, + "TownHallLevel": 13, + "CapitalHallLevel": 13, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "dark_tower_upg", + "ExportNameUpgradeAnim": "dark_tower_lvl7_upgrade", + "Hitpoints": 3300, + "RegenTime": 23, + "AttackRange": 900, + "AltAttackMode": true, + "AltAttackRange": 1000, + "AttackSpeed": 128, + "DPS": 85, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Dark Tower lvl3 Attack 1", + "HitEffect": "Dark Tower Hit", + "ExportNameDamaged": "destroyedBuilding_2l_round_pit_rockwood", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "dark_tower_base", + "AirTargets": true, + "GroundTargets": true, + "AltAirTargets": true, + "AltGroundTargets": true, + "AltMultiTargets": true, + "AmmoCount": 1000, + "AmmoResource": "DarkElixir", + "AmmoCost": 1100, + "LoadAmmoEffect": "Dark Tower Load", + "NoAmmoEffect": "Dark Tower No Ammo", + "ToggleAttackModeEffect": "Dark Tower Target", + "PickUpEffect": "Dark Tower Pickup", + "PlacingEffect": "Dark Tower Placing", + "IncreasingDamage": true, + "DPSLv2": 200, + "DPSLv3": 2000, + "DPSMulti": 85, + "Lv2SwitchTime": 1500, + "Lv3SwitchTime": 5250, + "AttackEffectLv2": "Dark Tower lvl3 Attack 2", + "AttackEffectLv3": "Dark Tower lvl3 Attack 3", + "TransitionEffectLv2": "Dark Tower Up 2", + "TransitionEffectLv3": "Dark Tower Up 3", + "AltNumMultiTargets": 5, + "StrengthWeight": 1800, + "AlternatePickNewTargetDelay": 50, + "HintPriority": 150, + "PreviewScenario": "DefenseHeavy", + "AltPreviewScenario": "DefenseLongRange" + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_BUILDING_DARK_TOWER", + "InfoTID": "TID_DARK_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "dark_tower_lvl8", + "ExportNameConstruction": "dark_tower_const", + "BuildTimeD": 13, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 12600000, + "TownHallLevel": 14, + "CapitalHallLevel": 14, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "dark_tower_upg", + "ExportNameUpgradeAnim": "dark_tower_lvl8_upgrade", + "Hitpoints": 3700, + "RegenTime": 23, + "AttackRange": 900, + "AltAttackMode": true, + "AltAttackRange": 1000, + "AttackSpeed": 128, + "DPS": 100, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Dark Tower lvl3 Attack 1", + "HitEffect": "Dark Tower Hit", + "ExportNameDamaged": "destroyedBuilding_2l_round_pit_rockwood", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "dark_tower_base", + "AirTargets": true, + "GroundTargets": true, + "AltAirTargets": true, + "AltGroundTargets": true, + "AltMultiTargets": true, + "AmmoCount": 1000, + "AmmoResource": "DarkElixir", + "AmmoCost": 1200, + "LoadAmmoEffect": "Dark Tower Load", + "NoAmmoEffect": "Dark Tower No Ammo", + "ToggleAttackModeEffect": "Dark Tower Target", + "PickUpEffect": "Dark Tower Pickup", + "PlacingEffect": "Dark Tower Placing", + "IncreasingDamage": true, + "DPSLv2": 220, + "DPSLv3": 2200, + "DPSMulti": 100, + "Lv2SwitchTime": 1500, + "Lv3SwitchTime": 5250, + "AttackEffectLv2": "Dark Tower lvl3 Attack 2", + "AttackEffectLv3": "Dark Tower lvl3 Attack 3", + "TransitionEffectLv2": "Dark Tower Up 2", + "TransitionEffectLv3": "Dark Tower Up 3", + "AltNumMultiTargets": 6, + "StrengthWeight": 1700, + "AlternatePickNewTargetDelay": 50, + "HintPriority": 150, + "PreviewScenario": "DefenseHeavy", + "AltPreviewScenario": "DefenseLongRange" + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_BUILDING_DARK_TOWER", + "InfoTID": "TID_DARK_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "dark_tower_lvl9", + "ExportNameConstruction": "dark_tower_const", + "BuildTimeD": 13, + "BuildTimeH": 18, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 21000000, + "TownHallLevel": 15, + "CapitalHallLevel": 15, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "dark_tower_upg", + "ExportNameUpgradeAnim": "dark_tower_lvl8_upgrade", + "Hitpoints": 4000, + "RegenTime": 23, + "AttackRange": 900, + "AltAttackMode": true, + "AltAttackRange": 1000, + "AttackSpeed": 128, + "DPS": 110, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Dark Tower lvl3 Attack 1", + "HitEffect": "Dark Tower Hit", + "ExportNameDamaged": "destroyedBuilding_2l_round_pit_rockwood", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "dark_tower_base", + "AirTargets": true, + "GroundTargets": true, + "AltAirTargets": true, + "AltGroundTargets": true, + "AltMultiTargets": true, + "AmmoCount": 1000, + "AmmoResource": "DarkElixir", + "AmmoCost": 1300, + "LoadAmmoEffect": "Dark Tower Load", + "NoAmmoEffect": "Dark Tower No Ammo", + "ToggleAttackModeEffect": "Dark Tower Target", + "PickUpEffect": "Dark Tower Pickup", + "PlacingEffect": "Dark Tower Placing", + "IncreasingDamage": true, + "DPSLv2": 240, + "DPSLv3": 2400, + "DPSMulti": 110, + "Lv2SwitchTime": 1500, + "Lv3SwitchTime": 5250, + "AttackEffectLv2": "Dark Tower lvl3 Attack 2", + "AttackEffectLv3": "Dark Tower lvl3 Attack 3", + "TransitionEffectLv2": "Dark Tower Up 2", + "TransitionEffectLv3": "Dark Tower Up 3", + "AltNumMultiTargets": 6, + "StrengthWeight": 1650, + "AlternatePickNewTargetDelay": 50, + "HintPriority": 150, + "PreviewScenario": "DefenseHeavy", + "AltPreviewScenario": "DefenseLongRange" + } + }, + "Air Sweeper": { + "1": { + "BuildingLevel": 1, + "TID": "TID_AIR_BLASTER", + "InfoTID": "TID_AIR_BLASTER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "air_mortar_lvl1", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 0, + "BuildTimeH": 6, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 400000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "air_mortar_upg", + "ExportNameUpgradeAnim": "air_mortar_lvl1_upgrade", + "Hitpoints": 750, + "RegenTime": 20, + "AttackRange": 1500, + "PrepareSpeed": 600, + "AttackSpeed": 5000, + "CoolDownOverride": 4800, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Wind Machine Attack", + "Projectile": "Air Blaster Ammo1", + "ExportNameDamaged": "destroyedBuilding_2s_pit_wood", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "windmachine_base", + "AirTargets": true, + "MinAttackRange": 100, + "PickUpEffect": "Wind Machine Pickup", + "PlacingEffect": "Wind Machine Place", + "AnimateTurret": true, + "StrengthWeight": 20, + "ShockwavePushStrength": 160, + "ShockwaveArcLength": 700, + "ShockwaveExpandRadius": 250, + "TargetingConeAngle": 105, + "AimRotateStep": 45, + "HintPriority": 150, + "PreviewScenario": "AirBlaster1" + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_AIR_BLASTER", + "InfoTID": "TID_AIR_BLASTER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "air_mortar_lvl2", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 0, + "BuildTimeH": 8, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 600000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "air_mortar_upg", + "ExportNameUpgradeAnim": "air_mortar_lvl2_upgrade", + "Hitpoints": 800, + "RegenTime": 21, + "AttackRange": 1500, + "PrepareSpeed": 600, + "AttackSpeed": 5000, + "CoolDownOverride": 4800, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Wind Machine Attack", + "Projectile": "Air Blaster Ammo1", + "ExportNameDamaged": "destroyedBuilding_2s_pit_wood", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "windmachine_base", + "AirTargets": true, + "MinAttackRange": 100, + "PickUpEffect": "Wind Machine Pickup", + "PlacingEffect": "Wind Machine Place", + "AnimateTurret": true, + "StrengthWeight": 20, + "ShockwavePushStrength": 200, + "ShockwaveArcLength": 700, + "ShockwaveExpandRadius": 250, + "TargetingConeAngle": 105, + "AimRotateStep": 45, + "HintPriority": 150, + "PreviewScenario": "AirBlaster1" + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_AIR_BLASTER", + "InfoTID": "TID_AIR_BLASTER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "air_mortar_lvl3", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 0, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 900000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "air_mortar_upg", + "ExportNameUpgradeAnim": "air_mortar_lvl3_upgrade", + "Hitpoints": 850, + "RegenTime": 22, + "AttackRange": 1500, + "PrepareSpeed": 600, + "AttackSpeed": 5000, + "CoolDownOverride": 4800, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Wind Machine Attack", + "Projectile": "Air Blaster Ammo1", + "ExportNameDamaged": "destroyedBuilding_2s_pit_wood", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "windmachine_base", + "AirTargets": true, + "MinAttackRange": 100, + "PickUpEffect": "Wind Machine Pickup", + "PlacingEffect": "Wind Machine Place", + "AnimateTurret": true, + "StrengthWeight": 20, + "ShockwavePushStrength": 240, + "ShockwaveArcLength": 700, + "ShockwaveExpandRadius": 250, + "TargetingConeAngle": 105, + "AimRotateStep": 45, + "HintPriority": 150, + "PreviewScenario": "AirBlaster1" + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_AIR_BLASTER", + "InfoTID": "TID_AIR_BLASTER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "air_mortar_lvl4", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 0, + "BuildTimeH": 18, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 1200000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "air_mortar_upg", + "ExportNameUpgradeAnim": "air_mortar_lvl4_upgrade", + "Hitpoints": 900, + "RegenTime": 23, + "AttackRange": 1500, + "PrepareSpeed": 600, + "AttackSpeed": 5000, + "CoolDownOverride": 4800, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Wind Machine Attack", + "Projectile": "Air Blaster Ammo1", + "ExportNameDamaged": "destroyedBuilding_2s_pit_rockwood", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "windmachine_base", + "AirTargets": true, + "MinAttackRange": 100, + "PickUpEffect": "Wind Machine Pickup", + "PlacingEffect": "Wind Machine Place", + "AnimateTurret": true, + "StrengthWeight": 20, + "ShockwavePushStrength": 280, + "ShockwaveArcLength": 700, + "ShockwaveExpandRadius": 250, + "TargetingConeAngle": 105, + "AimRotateStep": 45, + "HintPriority": 150, + "PreviewScenario": "AirBlaster1" + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_AIR_BLASTER", + "InfoTID": "TID_AIR_BLASTER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "air_mortar_lvl5", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 1, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 1800000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "air_mortar_upg", + "ExportNameUpgradeAnim": "air_mortar_lvl5_upgrade", + "Hitpoints": 950, + "RegenTime": 24, + "AttackRange": 1500, + "PrepareSpeed": 600, + "AttackSpeed": 5000, + "CoolDownOverride": 4800, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Wind Machine Attack", + "Projectile": "Air Blaster Ammo1", + "ExportNameDamaged": "destroyedBuilding_2s_pit_rockwood", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "windmachine_base", + "AirTargets": true, + "MinAttackRange": 100, + "PickUpEffect": "Wind Machine Pickup", + "PlacingEffect": "Wind Machine Place", + "AnimateTurret": true, + "StrengthWeight": 20, + "ShockwavePushStrength": 320, + "ShockwaveArcLength": 700, + "ShockwaveExpandRadius": 250, + "TargetingConeAngle": 105, + "AimRotateStep": 45, + "HintPriority": 150, + "PreviewScenario": "AirBlaster1" + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_AIR_BLASTER", + "InfoTID": "TID_AIR_BLASTER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "air_mortar_lvl6", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 2, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 1900000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "air_mortar_upg", + "ExportNameUpgradeAnim": "air_mortar_lvl6_upgrade", + "Hitpoints": 1000, + "RegenTime": 25, + "AttackRange": 1500, + "PrepareSpeed": 600, + "AttackSpeed": 5000, + "CoolDownOverride": 4800, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Wind Machine Attack", + "Projectile": "Air Blaster Ammo1", + "ExportNameDamaged": "destroyedBuilding_2s_pit_rockwood", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "windmachine_base", + "AirTargets": true, + "MinAttackRange": 100, + "PickUpEffect": "Wind Machine Pickup", + "PlacingEffect": "Wind Machine Place", + "AnimateTurret": true, + "StrengthWeight": 20, + "ShockwavePushStrength": 360, + "ShockwaveArcLength": 700, + "ShockwaveExpandRadius": 250, + "TargetingConeAngle": 105, + "AimRotateStep": 45, + "HintPriority": 150, + "PreviewScenario": "AirBlaster1" + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_AIR_BLASTER", + "InfoTID": "TID_AIR_BLASTER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "air_mortar_lvl7", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 3, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 3400000, + "TownHallLevel": 11, + "CapitalHallLevel": 11, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "air_mortar_upg", + "ExportNameUpgradeAnim": "air_mortar_lvl7_upgrade", + "Hitpoints": 1050, + "RegenTime": 26, + "AttackRange": 1500, + "PrepareSpeed": 600, + "AttackSpeed": 5000, + "CoolDownOverride": 4800, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Wind Machine Attack", + "Projectile": "Air Blaster Ammo1", + "ExportNameDamaged": "destroyedBuilding_2s_pit_rockwood", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "windmachine_base", + "AirTargets": true, + "MinAttackRange": 100, + "PickUpEffect": "Wind Machine Pickup", + "PlacingEffect": "Wind Machine Place", + "AnimateTurret": true, + "StrengthWeight": 20, + "ShockwavePushStrength": 400, + "ShockwaveArcLength": 700, + "ShockwaveExpandRadius": 250, + "TargetingConeAngle": 105, + "AimRotateStep": 45, + "HintPriority": 150, + "PreviewScenario": "AirBlaster" + } + }, + "Dark Spell Factory": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_MINI_SPELL_FACTORY", + "InfoTID": "TID_MINI_SPELL_FACTORY_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "mini_spell_distillery_lvl1", + "ExportNameConstruction": "mini_spell_distillery_const", + "BuildTimeD": 0, + "BuildTimeH": 6, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 130000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mini_spell_distillery_upg", + "HousingSpaceAlt": 1, + "UnitProduction": 2, + "ProducesUnitsOfType": 2, + "LevelRequirementTID": "TID_REQUIRED_DARK_SPELL_FORGE_LEVEL", + "BoostCost": 5, + "Hitpoints": 600, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mini_spell_distillery_base", + "PickUpEffect": "Spell Factory Pickup", + "PlacingEffect": "Spell Factory Place", + "ForgesSpells": true, + "ForgesMiniSpells": true, + "HintPriority": 600, + "PreviewScenario": "NoCombatBuilding" + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_MINI_SPELL_FACTORY", + "InfoTID": "TID_MINI_SPELL_FACTORY_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "mini_spell_distillery_lvl2", + "ExportNameConstruction": "mini_spell_distillery_const", + "BuildTimeD": 0, + "BuildTimeH": 18, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 260000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mini_spell_distillery_upg", + "HousingSpaceAlt": 1, + "UnitProduction": 4, + "ProducesUnitsOfType": 2, + "LevelRequirementTID": "TID_REQUIRED_DARK_SPELL_FORGE_LEVEL", + "BoostCost": 5, + "Hitpoints": 660, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mini_spell_distillery_base", + "PickUpEffect": "Spell Factory Pickup", + "PlacingEffect": "Spell Factory Place", + "ForgesSpells": true, + "ForgesMiniSpells": true, + "HintPriority": 600, + "PreviewScenario": "NoCombatBuilding" + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_MINI_SPELL_FACTORY", + "InfoTID": "TID_MINI_SPELL_FACTORY_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "mini_spell_distillery_lvl3", + "ExportNameConstruction": "mini_spell_distillery_const", + "BuildTimeD": 2, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 600000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mini_spell_distillery_upg", + "HousingSpaceAlt": 1, + "UnitProduction": 6, + "ProducesUnitsOfType": 2, + "LevelRequirementTID": "TID_REQUIRED_DARK_SPELL_FORGE_LEVEL", + "BoostCost": 5, + "Hitpoints": 720, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mini_spell_distillery_base", + "PickUpEffect": "Spell Factory Pickup", + "PlacingEffect": "Spell Factory Place", + "ForgesSpells": true, + "ForgesMiniSpells": true, + "HintPriority": 600, + "PreviewScenario": "NoCombatBuilding" + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_MINI_SPELL_FACTORY", + "InfoTID": "TID_MINI_SPELL_FACTORY_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "mini_spell_distillery_lvl4", + "ExportNameConstruction": "mini_spell_distillery_const", + "BuildTimeD": 4, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 1200000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mini_spell_distillery_upg", + "HousingSpaceAlt": 1, + "UnitProduction": 8, + "ProducesUnitsOfType": 2, + "LevelRequirementTID": "TID_REQUIRED_DARK_SPELL_FORGE_LEVEL", + "BoostCost": 5, + "Hitpoints": 780, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mini_spell_distillery_base", + "PickUpEffect": "Spell Factory Pickup", + "PlacingEffect": "Spell Factory Place", + "ForgesSpells": true, + "ForgesMiniSpells": true, + "HintPriority": 600, + "PreviewScenario": "NoCombatBuilding" + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_MINI_SPELL_FACTORY", + "InfoTID": "TID_MINI_SPELL_FACTORY_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "mini_spell_distillery_lvl5", + "ExportNameConstruction": "mini_spell_distillery_const", + "BuildTimeD": 6, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 2500000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mini_spell_distillery_upg", + "HousingSpaceAlt": 1, + "UnitProduction": 10, + "ProducesUnitsOfType": 2, + "LevelRequirementTID": "TID_REQUIRED_DARK_SPELL_FORGE_LEVEL", + "BoostCost": 5, + "Hitpoints": 840, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mini_spell_distillery_base", + "PickUpEffect": "Spell Factory Pickup", + "PlacingEffect": "Spell Factory Place", + "ForgesSpells": true, + "ForgesMiniSpells": true, + "HintPriority": 600, + "PreviewScenario": "NoCombatBuilding" + } + }, + "Grand Warden": { + "1": { + "BuildingLevel": 1, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_GRAND_WARDEN_INFO", + "BuildingClass": "Defense", + "ShopBuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "heroaltar_elder_lvl1", + "ExportNameConstruction": "heroaltar_elder_const", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 1000000, + "TownHallLevel": 11, + "CapitalHallLevel": 11, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "heroaltar_elder_upg", + "BoostCost": 5, + "Hitpoints": 250, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "heroaltar_base", + "PickUpEffect": "Hero Altar Pickup", + "PlacingEffect": "Hero Altar Place", + "IsHeroBarrack": true, + "HeroType": "Grand Warden", + "ShareHeroCombatData": true, + "HintPriority": 700 + } + }, + "Eagle Artillery": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_ARTILLERY", + "InfoTID": "TID_ARTILLERY_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "doom_cannon_lvl1", + "ExportNameConstruction": "laboratory_const", + "BuildTimeD": 5, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 6000000, + "TownHallLevel": 11, + "CapitalHallLevel": 11, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "laboratory_upg", + "ExportNameUpgradeAnim": "doom_cannon_lvl1_upgrade", + "Hitpoints": 4000, + "RegenTime": 20, + "AttackRange": 5000, + "AttackSpeed": 10000, + "CoolDownOverride": 6992, + "DPS": 0, + "Damage": 20, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Artillery Attack", + "HitEffect": "Ancient Hit", + "Projectile": "Artillery Ammo1", + "ExportNameDamaged": "destroyedBuilding_4m_base_rock", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "laboratory_base", + "AirTargets": true, + "GroundTargets": true, + "AmmoCount": 30, + "AmmoResource": "Elixir", + "AmmoCost": 35000, + "MinAttackRange": 700, + "DamageRadius": 300, + "PushBack": 50, + "LoadAmmoEffect": "Artillery Load", + "NoAmmoEffect": "Artillery No Ammo", + "PickUpEffect": "Basic Turret Pickup", + "PlacingEffect": "Artillery Placing", + "StrengthWeight": 4900, + "TargetGroups": true, + "TargetGroupsRadius": 500, + "ExportNameBeamStart": "beam_up", + "ExportNameBeamEnd": "beam_down", + "WakeUpSpeed": 1125, + "WakeUpSpace": 200, + "PreAttackEffect": "Artillery PreAttack", + "BurstCount": 3, + "BurstDelay": 750, + "HintPriority": 150, + "PreviewScenario": "AncientArtillery" + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_ARTILLERY", + "InfoTID": "TID_ARTILLERY_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "doom_cannon_lvl2", + "ExportNameConstruction": "laboratory_const", + "BuildTimeD": 5, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 8000000, + "TownHallLevel": 11, + "CapitalHallLevel": 11, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "laboratory_upg", + "ExportNameUpgradeAnim": "doom_cannon_lvl2_upgrade", + "Hitpoints": 4400, + "RegenTime": 21, + "AttackRange": 5000, + "AttackSpeed": 10000, + "CoolDownOverride": 6992, + "DPS": 0, + "Damage": 25, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Artillery Attack", + "HitEffect": "Ancient Hit", + "Projectile": "Artillery Ammo2", + "ExportNameDamaged": "destroyedBuilding_4m_base_rock", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "laboratory_base", + "AirTargets": true, + "GroundTargets": true, + "AmmoCount": 30, + "AmmoResource": "Elixir", + "AmmoCost": 40000, + "MinAttackRange": 700, + "DamageRadius": 300, + "PushBack": 50, + "LoadAmmoEffect": "Artillery Load", + "NoAmmoEffect": "Artillery No Ammo", + "PickUpEffect": "Basic Turret Pickup", + "PlacingEffect": "Artillery Placing", + "StrengthWeight": 4450, + "TargetGroups": true, + "TargetGroupsRadius": 500, + "ExportNameBeamStart": "beam_up", + "ExportNameBeamEnd": "beam_down", + "WakeUpSpeed": 1125, + "WakeUpSpace": 200, + "PreAttackEffect": "Artillery PreAttack", + "BurstCount": 3, + "BurstDelay": 750, + "HintPriority": 150, + "PreviewScenario": "AncientArtillery" + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_ARTILLERY", + "InfoTID": "TID_ARTILLERY_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "doom_cannon_lvl3", + "ExportNameConstruction": "laboratory_const", + "BuildTimeD": 9, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 10000000, + "TownHallLevel": 12, + "CapitalHallLevel": 12, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "laboratory_upg", + "ExportNameUpgradeAnim": "doom_cannon_lvl3_upgrade", + "Hitpoints": 4800, + "RegenTime": 21, + "AttackRange": 5000, + "AttackSpeed": 10000, + "CoolDownOverride": 6992, + "DPS": 0, + "Damage": 30, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Artillery Attack", + "HitEffect": "Ancient Hit", + "Projectile": "Artillery Ammo3", + "ExportNameDamaged": "destroyedBuilding_4m_base_rock", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "laboratory_base", + "AirTargets": true, + "GroundTargets": true, + "AmmoCount": 30, + "AmmoResource": "Elixir", + "AmmoCost": 45000, + "MinAttackRange": 700, + "DamageRadius": 300, + "PushBack": 50, + "LoadAmmoEffect": "Artillery Load", + "NoAmmoEffect": "Artillery No Ammo", + "PickUpEffect": "Basic Turret Pickup", + "PlacingEffect": "Artillery Placing", + "StrengthWeight": 4100, + "TargetGroups": true, + "TargetGroupsRadius": 500, + "ExportNameBeamStart": "beam_up", + "ExportNameBeamEnd": "beam_down", + "WakeUpSpeed": 1125, + "WakeUpSpace": 200, + "PreAttackEffect": "Artillery PreAttack", + "BurstCount": 3, + "BurstDelay": 750, + "HintPriority": 150, + "PreviewScenario": "AncientArtillery" + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_ARTILLERY", + "InfoTID": "TID_ARTILLERY_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "doom_cannon_lvl4", + "ExportNameConstruction": "laboratory_const", + "BuildTimeD": 10, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 13000000, + "TownHallLevel": 13, + "CapitalHallLevel": 13, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "laboratory_upg", + "ExportNameUpgradeAnim": "doom_cannon_lvl4_upgrade", + "Hitpoints": 5200, + "RegenTime": 21, + "AttackRange": 5000, + "AttackSpeed": 10000, + "CoolDownOverride": 6992, + "DPS": 0, + "Damage": 35, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Artillery Attack", + "HitEffect": "Ancient Hit", + "Projectile": "Artillery Ammo4", + "ExportNameDamaged": "destroyedBuilding_4m_base_rock", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "laboratory_base", + "AirTargets": true, + "GroundTargets": true, + "AmmoCount": 30, + "AmmoResource": "Elixir", + "AmmoCost": 50000, + "MinAttackRange": 700, + "DamageRadius": 300, + "PushBack": 50, + "LoadAmmoEffect": "Artillery Load", + "NoAmmoEffect": "Artillery No Ammo", + "PickUpEffect": "Basic Turret Pickup", + "PlacingEffect": "Artillery Placing", + "StrengthWeight": 3800, + "TargetGroups": true, + "TargetGroupsRadius": 500, + "ExportNameBeamStart": "beam_up", + "ExportNameBeamEnd": "beam_down", + "WakeUpSpeed": 1125, + "WakeUpSpace": 200, + "PreAttackEffect": "Artillery PreAttack", + "BurstCount": 3, + "BurstDelay": 750, + "HintPriority": 150, + "PreviewScenario": "AncientArtillery" + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_ARTILLERY", + "InfoTID": "TID_ARTILLERY_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "doom_cannon_lvl5", + "ExportNameConstruction": "laboratory_const", + "BuildTimeD": 13, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 17000000, + "TownHallLevel": 14, + "CapitalHallLevel": 14, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "laboratory_upg", + "ExportNameUpgradeAnim": "doom_cannon_lvl5_upgrade", + "Hitpoints": 5600, + "RegenTime": 21, + "AttackRange": 5000, + "AttackSpeed": 10000, + "CoolDownOverride": 6992, + "DPS": 0, + "Damage": 40, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Artillery Attack", + "HitEffect": "Ancient Hit", + "Projectile": "Artillery Ammo5", + "ExportNameDamaged": "destroyedBuilding_4m_base_rock", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "laboratory_base", + "AirTargets": true, + "GroundTargets": true, + "AmmoCount": 30, + "AmmoResource": "Elixir", + "AmmoCost": 55000, + "MinAttackRange": 700, + "DamageRadius": 300, + "PushBack": 50, + "LoadAmmoEffect": "Artillery Load", + "NoAmmoEffect": "Artillery No Ammo", + "PickUpEffect": "Basic Turret Pickup", + "PlacingEffect": "Artillery Placing", + "StrengthWeight": 3550, + "TargetGroups": true, + "TargetGroupsRadius": 500, + "ExportNameBeamStart": "beam_up", + "ExportNameBeamEnd": "beam_down", + "WakeUpSpeed": 1125, + "WakeUpSpace": 200, + "PreAttackEffect": "Artillery PreAttack", + "BurstCount": 3, + "BurstDelay": 750, + "HintPriority": 150, + "PreviewScenario": "AncientArtillery" + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_BUILDING_ARTILLERY", + "InfoTID": "TID_ARTILLERY_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "doom_cannon_lvl6", + "ExportNameConstruction": "laboratory_const", + "BuildTimeD": 14, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 21500000, + "TownHallLevel": 15, + "CapitalHallLevel": 15, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "laboratory_upg", + "ExportNameUpgradeAnim": "doom_cannon_lvl6_upgrade", + "Hitpoints": 5900, + "RegenTime": 21, + "AttackRange": 5000, + "AttackSpeed": 10000, + "CoolDownOverride": 6992, + "DPS": 0, + "Damage": 45, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Artillery Attack", + "HitEffect": "Ancient Hit", + "Projectile": "Artillery Ammo6", + "ExportNameDamaged": "destroyedBuilding_4m_base_rock", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "laboratory_base", + "AirTargets": true, + "GroundTargets": true, + "AmmoCount": 30, + "AmmoResource": "Elixir", + "AmmoCost": 60000, + "MinAttackRange": 700, + "DamageRadius": 300, + "PushBack": 50, + "LoadAmmoEffect": "Artillery Load", + "NoAmmoEffect": "Artillery No Ammo", + "PickUpEffect": "Basic Turret Pickup", + "PlacingEffect": "Artillery Placing", + "StrengthWeight": 3400, + "TargetGroups": true, + "TargetGroupsRadius": 500, + "ExportNameBeamStart": "beam_up", + "ExportNameBeamEnd": "beam_down", + "WakeUpSpeed": 1125, + "WakeUpSpace": 200, + "PreAttackEffect": "Artillery PreAttack", + "BurstCount": 3, + "BurstDelay": 750, + "HintPriority": 150, + "PreviewScenario": "AncientArtillery" + } + }, + "Bomb Tower": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_BOMB_TOWER", + "InfoTID": "TID_BUILDING_BOMB_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "bomb_tower_lvl1", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 0, + "BuildTimeH": 18, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 700000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 650, + "RegenTime": 25, + "AttackRange": 600, + "AttackSpeed": 1100, + "DPS": 24, + "DestroyEffect": "Building Destroyed", + "DestroyDamageEffect": "Bomb Tower Destroyed1", + "AttackEffect": "Bomb Tower Throw Start", + "HitEffect": "Bomb Tower Hit", + "Projectile": "Bomb Tower Ammo1", + "ExportNameDamaged": "destroyedBuilding_3m_base_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "DamageRadius": 150, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "DefenderCharacter": "BomberTower_lvl1", + "DefenderCount": 1, + "DefenderZ": 145, + "StrengthWeight": 400, + "DieDamage": 150, + "DieDamageRadius": 275, + "DieDamageEffect": "Bomb Tower Explode", + "DieDamageDelay": 1000, + "HintPriority": 150, + "PreviewScenario": "DefenseBombTower" + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_BOMB_TOWER", + "InfoTID": "TID_BUILDING_BOMB_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "bomb_tower_lvl2", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 1, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 1000000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 700, + "RegenTime": 25, + "AttackRange": 600, + "AttackSpeed": 1100, + "DPS": 28, + "DestroyEffect": "Building Destroyed", + "DestroyDamageEffect": "Bomb Tower Destroyed1", + "AttackEffect": "Bomb Tower Throw Start", + "HitEffect": "Bomb Tower Hit", + "Projectile": "Bomb Tower Ammo1", + "ExportNameDamaged": "destroyedBuilding_3m_base_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "DamageRadius": 150, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "DefenderCharacter": "BomberTower_lvl1", + "DefenderCount": 1, + "DefenderZ": 145, + "StrengthWeight": 420, + "DieDamage": 180, + "DieDamageRadius": 275, + "DieDamageEffect": "Bomb Tower Explode", + "DieDamageDelay": 1000, + "HintPriority": 150, + "PreviewScenario": "DefenseBombTower" + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_BOMB_TOWER", + "InfoTID": "TID_BUILDING_BOMB_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "bomb_tower_lvl3", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 1, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 1600000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 750, + "RegenTime": 25, + "AttackRange": 600, + "AttackSpeed": 1100, + "DPS": 32, + "DestroyEffect": "Building Destroyed", + "DestroyDamageEffect": "Bomb Tower Destroyed2", + "AttackEffect": "Bomb Tower Throw Start", + "HitEffect": "Bomb Tower Hit2", + "Projectile": "Bomb Tower Ammo2", + "ExportNameDamaged": "destroyedBuilding_3m_base_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "DamageRadius": 150, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "DefenderCharacter": "BomberTower_lvl2", + "DefenderCount": 1, + "DefenderZ": 145, + "StrengthWeight": 440, + "DieDamage": 220, + "DieDamageRadius": 275, + "DieDamageEffect": "Bomb Tower Explode", + "DieDamageDelay": 1000, + "HintPriority": 150, + "PreviewScenario": "DefenseBombTower" + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_BOMB_TOWER", + "InfoTID": "TID_BUILDING_BOMB_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "bomb_tower_lvl4", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 2, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 2000000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 850, + "RegenTime": 25, + "AttackRange": 600, + "AttackSpeed": 1100, + "DPS": 40, + "DestroyEffect": "Building Destroyed", + "DestroyDamageEffect": "Bomb Tower Destroyed3", + "AttackEffect": "Bomb Tower Throw Start", + "HitEffect": "Bomb Tower Hit2", + "Projectile": "Bomb Tower Ammo3", + "ExportNameDamaged": "destroyedBuilding_3m_base_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "DamageRadius": 150, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "DefenderCharacter": "BomberTower_lvl3", + "DefenderCount": 1, + "DefenderZ": 145, + "StrengthWeight": 460, + "DieDamage": 260, + "DieDamageRadius": 275, + "DieDamageEffect": "Bomb Tower Explode", + "DieDamageDelay": 1000, + "HintPriority": 150, + "PreviewScenario": "DefenseBombTower" + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_BOMB_TOWER", + "InfoTID": "TID_BUILDING_BOMB_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "bomb_tower_lvl5", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 3, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 2800000, + "TownHallLevel": 11, + "CapitalHallLevel": 11, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 1050, + "RegenTime": 25, + "AttackRange": 600, + "AttackSpeed": 1100, + "DPS": 48, + "DestroyEffect": "Building Destroyed", + "DestroyDamageEffect": "Bomb Tower Destroyed3", + "AttackEffect": "Bomb Tower Throw Start", + "HitEffect": "Bomb Tower Hit3", + "Projectile": "Bomb Tower Ammo3", + "ExportNameDamaged": "destroyedBuilding_3m_base_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "DamageRadius": 150, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "DefenderCharacter": "BomberTower_lvl3", + "DefenderCount": 1, + "DefenderZ": 145, + "StrengthWeight": 460, + "DieDamage": 300, + "DieDamageRadius": 275, + "DieDamageEffect": "Bomb Tower Explode", + "DieDamageDelay": 1000, + "HintPriority": 150, + "PreviewScenario": "DefenseBombTower" + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_BUILDING_BOMB_TOWER", + "InfoTID": "TID_BUILDING_BOMB_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "bomb_tower_lvl6", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 3, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 4000000, + "TownHallLevel": 11, + "CapitalHallLevel": 11, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 1300, + "RegenTime": 25, + "AttackRange": 600, + "AttackSpeed": 1100, + "DPS": 56, + "DestroyEffect": "Building Destroyed", + "DestroyDamageEffect": "Bomb Tower Destroyed4", + "AttackEffect": "Bomb Tower Throw Start", + "HitEffect": "Bomb Tower Hit3", + "Projectile": "Bomb Tower Ammo3", + "ExportNameDamaged": "destroyedBuilding_3m_base_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "DamageRadius": 150, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "DefenderCharacter": "BomberTower_lvl3", + "DefenderCount": 1, + "DefenderZ": 145, + "StrengthWeight": 460, + "DieDamage": 350, + "DieDamageRadius": 275, + "DieDamageEffect": "Bomb Tower Explode", + "DieDamageDelay": 1000, + "HintPriority": 150, + "PreviewScenario": "DefenseBombTower" + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_BUILDING_BOMB_TOWER", + "InfoTID": "TID_BUILDING_BOMB_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "bomb_tower_lvl7", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 8, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 6300000, + "TownHallLevel": 12, + "CapitalHallLevel": 12, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 1600, + "RegenTime": 25, + "AttackRange": 600, + "AttackSpeed": 1100, + "DPS": 64, + "DestroyEffect": "Building Destroyed", + "DestroyDamageEffect": "Bomb Tower Destroyed4", + "AttackEffect": "Bomb Tower Throw Start", + "HitEffect": "Bomb Tower Hit3", + "Projectile": "Bomb Tower Ammo3", + "ExportNameDamaged": "destroyedBuilding_3m_base_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "DamageRadius": 150, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "DefenderCharacter": "BomberTower_lvl3", + "DefenderCount": 1, + "DefenderZ": 145, + "StrengthWeight": 460, + "DieDamage": 400, + "DieDamageRadius": 275, + "DieDamageEffect": "Bomb Tower Explode", + "DieDamageDelay": 1000, + "HintPriority": 150, + "PreviewScenario": "DefenseBombTower" + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_BUILDING_BOMB_TOWER", + "InfoTID": "TID_BUILDING_BOMB_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "bomb_tower_lvl8", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 9, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 8800000, + "TownHallLevel": 13, + "CapitalHallLevel": 13, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 1900, + "RegenTime": 25, + "AttackRange": 600, + "AttackSpeed": 1100, + "DPS": 72, + "DestroyEffect": "Building Destroyed", + "DestroyDamageEffect": "Bomb Tower Destroyed4", + "AttackEffect": "Bomb Tower Throw Start", + "HitEffect": "Bomb Tower Hit3", + "Projectile": "Bomb Tower Ammo3", + "ExportNameDamaged": "destroyedBuilding_3m_base_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "DamageRadius": 150, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "DefenderCharacter": "BomberTower_lvl3", + "DefenderCount": 1, + "DefenderZ": 145, + "StrengthWeight": 460, + "DieDamage": 450, + "DieDamageRadius": 275, + "DieDamageEffect": "Bomb Tower Explode", + "DieDamageDelay": 1000, + "HintPriority": 150, + "PreviewScenario": "DefenseBombTower" + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_BUILDING_BOMB_TOWER", + "InfoTID": "TID_BUILDING_BOMB_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "bomb_tower_lvl9", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 13, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 12300000, + "TownHallLevel": 14, + "CapitalHallLevel": 14, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 2300, + "RegenTime": 25, + "AttackRange": 600, + "AttackSpeed": 1100, + "DPS": 84, + "DestroyEffect": "Building Destroyed", + "DestroyDamageEffect": "Bomb Tower Destroyed4", + "AttackEffect": "Bomb Tower Throw Start", + "HitEffect": "Bomb Tower Hit3", + "Projectile": "Bomb Tower Ammo3", + "ExportNameDamaged": "destroyedBuilding_3m_base_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "DamageRadius": 150, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "DefenderCharacter": "BomberTower_lvl3", + "DefenderCount": 1, + "DefenderZ": 145, + "StrengthWeight": 460, + "DieDamage": 500, + "DieDamageRadius": 275, + "DieDamageEffect": "Bomb Tower Explode", + "DieDamageDelay": 1000, + "HintPriority": 150, + "PreviewScenario": "DefenseBombTower" + }, + "10": { + "BuildingLevel": 10, + "TID": "TID_BUILDING_BOMB_TOWER", + "InfoTID": "TID_BUILDING_BOMB_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "bomb_tower_lvl10", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 13, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 20000000, + "TownHallLevel": 15, + "CapitalHallLevel": 15, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 2500, + "RegenTime": 25, + "AttackRange": 600, + "AttackSpeed": 1100, + "DPS": 94, + "DestroyEffect": "Building Destroyed", + "DestroyDamageEffect": "Bomb Tower Destroyed4", + "AttackEffect": "Bomb Tower Throw Start", + "HitEffect": "Bomb Tower Hit3", + "Projectile": "Bomb Tower Ammo3", + "ExportNameDamaged": "destroyedBuilding_3m_base_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "DamageRadius": 150, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "DefenderCharacter": "BomberTower_lvl3", + "DefenderCount": 1, + "DefenderZ": 145, + "StrengthWeight": 460, + "DieDamage": 550, + "DieDamageRadius": 275, + "DieDamageEffect": "Bomb Tower Explode", + "DieDamageDelay": 1000, + "HintPriority": 150, + "PreviewScenario": "DefenseBombTower" + }, + "11": { + "BuildingLevel": 11, + "TID": "TID_BUILDING_BOMB_TOWER", + "InfoTID": "TID_BUILDING_BOMB_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "bomb_tower_lvl11", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 14, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 20800000, + "TownHallLevel": 16, + "CapitalHallLevel": 16, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 2700, + "RegenTime": 25, + "AttackRange": 600, + "AttackSpeed": 1100, + "DPS": 104, + "DestroyEffect": "Building Destroyed", + "DestroyDamageEffect": "Bomb Tower Destroyed4", + "AttackEffect": "Bomb Tower Throw Start", + "HitEffect": "Bomb Tower Hit3", + "Projectile": "Bomb Tower Ammo3", + "ExportNameDamaged": "destroyedBuilding_3m_base_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "DamageRadius": 150, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "DefenderCharacter": "BomberTower_lvl3", + "DefenderCount": 1, + "DefenderZ": 145, + "StrengthWeight": 460, + "DieDamage": 600, + "DieDamageRadius": 275, + "DieDamageEffect": "Bomb Tower Explode", + "DieDamageDelay": 1000, + "HintPriority": 150, + "PreviewScenario": "DefenseBombTower" + } + }, + "Builder Hall": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_TOWN_HALL2", + "InfoTID": "TID_TOWN_HALL2_INFO", + "BuildingClass": "Town Hall2", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings2.sc", + "ExportName": "new_TH_lvl1", + "ExportNameNpc": "new_TH_lvl1", + "ExportNameConstruction": "town_hall_const", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 0, + "CapitalHallLevel": 0, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "MaxStoredGold2": 50000, + "MaxStoredElixir2": 50000, + "LootOnDestruction": true, + "Hitpoints": 650, + "RegenTime": 1, + "DestroyEffect": "Town Hall Destroyed", + "ExportNameDamaged": "destroyedBuilding_4m_base_woodpanel_yellow", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "townhall_base", + "PickUpEffect": "Town Hall 2 Pickup", + "PlacingEffect": "Town Hall Placing", + "DestructionXP": 1, + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 100, + "Stage": 1 + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_TOWN_HALL2", + "InfoTID": "TID_TOWN_HALL2_INFO", + "BuildingClass": "Town Hall2", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings2.sc", + "ExportName": "new_TH_lvl2", + "ExportNameNpc": "new_TH_lvl1", + "ExportNameConstruction": "town_hall_const", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 5, + "BuildResource": "Gold2", + "BuildCost": 3500, + "CapitalHallLevel": 1, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "MaxStoredGold2": 75000, + "MaxStoredElixir2": 75000, + "LootOnDestruction": true, + "Hitpoints": 800, + "RegenTime": 1, + "DestroyEffect": "Town Hall Destroyed", + "ExportNameDamaged": "destroyedBuilding_4m_base_woodpanel_yellow", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "townhall_base", + "PickUpEffect": "Town Hall 2 Pickup", + "PlacingEffect": "Town Hall Placing", + "DestructionXP": 2, + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 100, + "Stage": 1 + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_TOWN_HALL2", + "InfoTID": "TID_TOWN_HALL2_INFO", + "BuildingClass": "Town Hall2", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings2.sc", + "ExportName": "new_TH_lvl3", + "ExportNameNpc": "new_TH_lvl1", + "ExportNameConstruction": "town_hall_const", + "BuildTimeD": 0, + "BuildTimeH": 1, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 30000, + "CapitalHallLevel": 2, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "MaxStoredGold2": 100000, + "MaxStoredElixir2": 100000, + "LootOnDestruction": true, + "Hitpoints": 975, + "RegenTime": 1, + "DestroyEffect": "Town Hall Destroyed", + "ExportNameDamaged": "destroyedBuilding_4m_base_woodpanel_yellow", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "townhall_base", + "PickUpEffect": "Town Hall 2 Pickup", + "PlacingEffect": "Town Hall Placing", + "DestructionXP": 3, + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 100, + "Stage": 1 + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_TOWN_HALL2", + "InfoTID": "TID_TOWN_HALL2_INFO", + "BuildingClass": "Town Hall2", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings2.sc", + "ExportName": "new_TH_lvl4", + "ExportNameNpc": "new_TH_lvl1", + "ExportNameConstruction": "town_hall_const", + "BuildTimeD": 1, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 200000, + "CapitalHallLevel": 3, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "MaxStoredGold2": 150000, + "MaxStoredElixir2": 150000, + "LootOnDestruction": true, + "Hitpoints": 1150, + "RegenTime": 1, + "DestroyEffect": "Town Hall Destroyed", + "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "townhall_base", + "PickUpEffect": "Town Hall 2 Pickup", + "PlacingEffect": "Town Hall Placing", + "DestructionXP": 4, + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 100, + "Stage": 1 + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_TOWN_HALL2", + "InfoTID": "TID_TOWN_HALL2_INFO", + "BuildingClass": "Town Hall2", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings2.sc", + "ExportName": "new_TH_lvl5", + "ExportNameNpc": "new_TH_lvl1", + "ExportNameConstruction": "town_hall_const", + "BuildTimeD": 2, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 400000, + "CapitalHallLevel": 4, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "MaxStoredGold2": 900000, + "MaxStoredElixir2": 900000, + "LootOnDestruction": true, + "Hitpoints": 1350, + "RegenTime": 1, + "DestroyEffect": "Town Hall Destroyed", + "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "townhall_base", + "PickUpEffect": "Town Hall 2 Pickup", + "PlacingEffect": "Town Hall Placing", + "DestructionXP": 5, + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 100, + "Stage": 1 + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_BUILDING_TOWN_HALL2", + "InfoTID": "TID_TOWN_HALL2_INFO", + "BuildingClass": "Town Hall2", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings2.sc", + "ExportName": "new_TH_lvl6", + "ExportNameNpc": "new_TH_lvl1", + "ExportNameConstruction": "town_hall_const", + "BuildTimeD": 3, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 1200000, + "CapitalHallLevel": 5, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "MaxStoredGold2": 900000, + "MaxStoredElixir2": 900000, + "LootOnDestruction": true, + "Hitpoints": 1600, + "RegenTime": 1, + "DestroyEffect": "Town Hall Destroyed", + "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "townhall_base", + "PickUpEffect": "Town Hall 2 Pickup", + "PlacingEffect": "Town Hall Placing", + "DestructionXP": 6, + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 100, + "Stage": 1 + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_BUILDING_TOWN_HALL2", + "InfoTID": "TID_TOWN_HALL2_INFO", + "BuildingClass": "Town Hall2", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings2.sc", + "ExportName": "new_TH_lvl7", + "ExportNameNpc": "new_TH_lvl1", + "ExportNameConstruction": "town_hall_const", + "BuildTimeD": 4, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 1800000, + "CapitalHallLevel": 6, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "MaxStoredGold2": 1100000, + "MaxStoredElixir2": 1100000, + "LootOnDestruction": true, + "Hitpoints": 1850, + "RegenTime": 1, + "DestroyEffect": "Town Hall Destroyed", + "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "townhall_base", + "PickUpEffect": "Town Hall 2 Pickup", + "PlacingEffect": "Town Hall Placing", + "DestructionXP": 7, + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 100, + "Stage": 1 + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_BUILDING_TOWN_HALL2", + "InfoTID": "TID_TOWN_HALL2_INFO", + "BuildingClass": "Town Hall2", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings2.sc", + "ExportName": "new_TH_lvl8", + "ExportNameNpc": "new_TH_lvl1", + "ExportNameConstruction": "town_hall_const", + "BuildTimeD": 5, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 2800000, + "CapitalHallLevel": 7, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "MaxStoredGold2": 1300000, + "MaxStoredElixir2": 1300000, + "LootOnDestruction": true, + "Hitpoints": 2150, + "RegenTime": 1, + "DestroyEffect": "Town Hall Destroyed", + "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "townhall_base", + "PickUpEffect": "Town Hall 2 Pickup", + "PlacingEffect": "Town Hall Placing", + "DestructionXP": 8, + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 100, + "Stage": 1 + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_BUILDING_TOWN_HALL2", + "InfoTID": "TID_TOWN_HALL2_INFO", + "BuildingClass": "Town Hall2", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings2.sc", + "ExportName": "new_TH_lvl9", + "ExportNameNpc": "new_TH_lvl1", + "ExportNameConstruction": "town_hall_const", + "BuildTimeD": 6, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 3800000, + "CapitalHallLevel": 8, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "MaxStoredGold2": 1500000, + "MaxStoredElixir2": 1500000, + "LootOnDestruction": true, + "Hitpoints": 2450, + "RegenTime": 1, + "DestroyEffect": "Town Hall Destroyed", + "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "townhall_base", + "PickUpEffect": "Town Hall 2 Pickup", + "PlacingEffect": "Town Hall Placing", + "DestructionXP": 9, + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 100, + "Stage": 1 + }, + "10": { + "BuildingLevel": 10, + "TID": "TID_BUILDING_TOWN_HALL2", + "InfoTID": "TID_TOWN_HALL2_INFO", + "BuildingClass": "Town Hall2", + "SecondaryTargetingClass": "Resource", + "SWF": "sc/buildings2.sc", + "ExportName": "new_TH_lvl10", + "ExportNameNpc": "new_TH_lvl1", + "ExportNameConstruction": "town_hall_const", + "BuildTimeD": 7, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 4800000, + "CapitalHallLevel": 9, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "MaxStoredGold2": 1500000, + "MaxStoredElixir2": 1500000, + "LootOnDestruction": true, + "Hitpoints": 2750, + "RegenTime": 1, + "DestroyEffect": "Town Hall Destroyed", + "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "townhall_base", + "PickUpEffect": "Town Hall 2 Pickup", + "PlacingEffect": "Town Hall Placing", + "DestructionXP": 10, + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 100, + "Stage": 1 + } + }, + "Clock Tower": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_CLOCK_TOWER", + "InfoTID": "TID_CLOCK_TOWER_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings2.sc", + "ExportName": "clocktower_lvl1", + "ExportNameConstruction": "town_hall_const", + "ExportNameLocked": "clocktower_broken", + "BuildTimeD": 0, + "BuildTimeH": 2, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 150000, + "TownHallLevel": 4, + "CapitalHallLevel": 4, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "BoostCost": 0, + "FreeBoost": true, + "Hitpoints": 650, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_4l_base_rockwoodpanel_white", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "newVillage_clockTower_lvl1", + "PickUpEffect": "Clock Tower Pickup", + "PlacingEffect": "Clock Tower Placing", + "Locked": true, + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 250, + "Stage": 1 + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_CLOCK_TOWER", + "InfoTID": "TID_CLOCK_TOWER_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings2.sc", + "ExportName": "clocktower_lvl2", + "ExportNameConstruction": "town_hall_const", + "ExportNameLocked": "clocktower_broken", + "BuildTimeD": 0, + "BuildTimeH": 3, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 180000, + "TownHallLevel": 4, + "CapitalHallLevel": 4, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "BoostCost": 0, + "FreeBoost": true, + "Hitpoints": 800, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_4l_base_rockwoodpanel_white", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "newVillage_clockTower_lvl1", + "PickUpEffect": "Clock Tower Pickup", + "PlacingEffect": "Clock Tower Placing", + "Locked": true, + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 250, + "Stage": 1 + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_CLOCK_TOWER", + "InfoTID": "TID_CLOCK_TOWER_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings2.sc", + "ExportName": "clocktower_lvl3", + "ExportNameConstruction": "town_hall_const", + "ExportNameLocked": "clocktower_broken", + "BuildTimeD": 0, + "BuildTimeH": 4, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 220000, + "TownHallLevel": 4, + "CapitalHallLevel": 4, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "BoostCost": 0, + "FreeBoost": true, + "Hitpoints": 975, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_4l_base_rockwoodpanel_white", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "newVillage_clockTower_lvl1", + "PickUpEffect": "Clock Tower Pickup", + "PlacingEffect": "Clock Tower Placing", + "Locked": true, + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 250, + "Stage": 1 + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_CLOCK_TOWER", + "InfoTID": "TID_CLOCK_TOWER_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings2.sc", + "ExportName": "clocktower_lvl4", + "ExportNameConstruction": "town_hall_const", + "ExportNameLocked": "clocktower_broken", + "BuildTimeD": 0, + "BuildTimeH": 6, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 300000, + "TownHallLevel": 4, + "CapitalHallLevel": 4, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "BoostCost": 0, + "FreeBoost": true, + "Hitpoints": 1150, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_4l_base_rockwoodpanel_white", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "newVillage_clockTower_lvl1", + "PickUpEffect": "Clock Tower Pickup", + "PlacingEffect": "Clock Tower Placing", + "Locked": true, + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 250, + "Stage": 1 + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_CLOCK_TOWER", + "InfoTID": "TID_CLOCK_TOWER_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings2.sc", + "ExportName": "clocktower_lvl5", + "ExportNameConstruction": "town_hall_const", + "ExportNameLocked": "clocktower_broken", + "BuildTimeD": 0, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 700000, + "TownHallLevel": 5, + "CapitalHallLevel": 5, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "BoostCost": 0, + "FreeBoost": true, + "Hitpoints": 1350, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_4l_base_rockwoodpanel_white", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "newVillage_clockTower_lvl1", + "PickUpEffect": "Clock Tower Pickup", + "PlacingEffect": "Clock Tower Placing", + "Locked": true, + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 250, + "Stage": 1 + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_BUILDING_CLOCK_TOWER", + "InfoTID": "TID_CLOCK_TOWER_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings2.sc", + "ExportName": "clocktower_lvl6", + "ExportNameConstruction": "town_hall_const", + "ExportNameLocked": "clocktower_broken", + "BuildTimeD": 1, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 1200000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "BoostCost": 0, + "FreeBoost": true, + "Hitpoints": 1600, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_4l_base_rockwoodpanel_white", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "newVillage_clockTower_lvl1", + "PickUpEffect": "Clock Tower Pickup", + "PlacingEffect": "Clock Tower Placing", + "Locked": true, + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 250, + "Stage": 1 + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_BUILDING_CLOCK_TOWER", + "InfoTID": "TID_CLOCK_TOWER_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings2.sc", + "ExportName": "clocktower_lvl7", + "ExportNameConstruction": "town_hall_const", + "ExportNameLocked": "clocktower_broken", + "BuildTimeD": 2, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 1700000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "BoostCost": 0, + "FreeBoost": true, + "Hitpoints": 1850, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_4l_base_rockwoodpanel_white", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "newVillage_clockTower_lvl1", + "PickUpEffect": "Clock Tower Pickup", + "PlacingEffect": "Clock Tower Placing", + "Locked": true, + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 250, + "Stage": 1 + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_BUILDING_CLOCK_TOWER", + "InfoTID": "TID_CLOCK_TOWER_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings2.sc", + "ExportName": "clocktower_lvl8", + "ExportNameConstruction": "town_hall_const", + "ExportNameLocked": "clocktower_broken", + "BuildTimeD": 3, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 2200000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "BoostCost": 0, + "FreeBoost": true, + "Hitpoints": 2150, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_4l_base_rockwoodpanel_white", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "newVillage_clockTower_lvl1", + "PickUpEffect": "Clock Tower Pickup", + "PlacingEffect": "Clock Tower Placing", + "Locked": true, + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 250, + "Stage": 1 + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_BUILDING_CLOCK_TOWER", + "InfoTID": "TID_CLOCK_TOWER_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings2.sc", + "ExportName": "clocktower_lvl9", + "ExportNameConstruction": "town_hall_const", + "ExportNameLocked": "clocktower_broken", + "BuildTimeD": 4, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 2700000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "BoostCost": 0, + "FreeBoost": true, + "Hitpoints": 2450, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_4l_base_rockwoodpanel_white", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "newVillage_clockTower_lvl1", + "PickUpEffect": "Clock Tower Pickup", + "PlacingEffect": "Clock Tower Placing", + "Locked": true, + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 250, + "Stage": 1 + }, + "10": { + "BuildingLevel": 10, + "TID": "TID_BUILDING_CLOCK_TOWER", + "InfoTID": "TID_CLOCK_TOWER_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings2.sc", + "ExportName": "clocktower_lvl10", + "ExportNameConstruction": "town_hall_const", + "ExportNameLocked": "clocktower_broken", + "BuildTimeD": 5, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 3700000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "BoostCost": 0, + "FreeBoost": true, + "Hitpoints": 2750, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_4l_base_rockwoodpanel_white", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "newVillage_clockTower_lvl1", + "PickUpEffect": "Clock Tower Pickup", + "PlacingEffect": "Clock Tower Placing", + "Locked": true, + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 250, + "Stage": 1 + } + }, + "Builder Barracks": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_BARRACK2", + "InfoTID": "TID_BARRACK2_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings2.sc", + "ExportName": "adv_training_camp_lvl1", + "ExportNameConstruction": "barracks_const", + "ExportNameLocked": "adv_training_camp_broken", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 1000, + "TownHallLevel": 1, + "CapitalHallLevel": 1, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "UnitProduction": 20, + "ProducesUnitsOfType": 1, + "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", + "Hitpoints": 300, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "VillageType": 1, + "HintPriority": 150, + "Stage": 1 + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_BARRACK2", + "InfoTID": "TID_BARRACK2_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings2.sc", + "ExportName": "adv_training_camp_lvl2", + "ExportNameConstruction": "barracks_const", + "ExportNameLocked": "adv_training_camp_broken", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 1, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 4000, + "TownHallLevel": 2, + "CapitalHallLevel": 2, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "UnitProduction": 25, + "ProducesUnitsOfType": 1, + "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", + "Hitpoints": 350, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "VillageType": 1, + "HintPriority": 150, + "Stage": 1 + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_BARRACK2", + "InfoTID": "TID_BARRACK2_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings2.sc", + "ExportName": "adv_training_camp_lvl3", + "ExportNameConstruction": "barracks_const", + "ExportNameLocked": "adv_training_camp_broken", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 10, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 10000, + "TownHallLevel": 3, + "CapitalHallLevel": 3, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "UnitProduction": 30, + "ProducesUnitsOfType": 1, + "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", + "Hitpoints": 400, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "VillageType": 1, + "HintPriority": 150, + "Stage": 1 + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_BARRACK2", + "InfoTID": "TID_BARRACK2_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings2.sc", + "ExportName": "adv_training_camp_lvl4", + "ExportNameConstruction": "barracks_const", + "ExportNameLocked": "adv_training_camp_broken", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 30, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 25000, + "TownHallLevel": 3, + "CapitalHallLevel": 3, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "UnitProduction": 35, + "ProducesUnitsOfType": 1, + "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", + "Hitpoints": 460, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "VillageType": 1, + "HintPriority": 150, + "Stage": 1 + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_BARRACK2", + "InfoTID": "TID_BARRACK2_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings2.sc", + "ExportName": "adv_training_camp_lvl5", + "ExportNameConstruction": "barracks_const", + "ExportNameLocked": "adv_training_camp_broken", + "BuildTimeD": 0, + "BuildTimeH": 3, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 100000, + "TownHallLevel": 4, + "CapitalHallLevel": 4, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "UnitProduction": 40, + "ProducesUnitsOfType": 1, + "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", + "Hitpoints": 550, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "VillageType": 1, + "HintPriority": 150, + "Stage": 1 + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_BUILDING_BARRACK2", + "InfoTID": "TID_BARRACK2_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings2.sc", + "ExportName": "adv_training_camp_lvl6", + "ExportNameConstruction": "barracks_const", + "ExportNameLocked": "adv_training_camp_broken", + "BuildTimeD": 0, + "BuildTimeH": 6, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 150000, + "TownHallLevel": 4, + "CapitalHallLevel": 4, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "UnitProduction": 45, + "ProducesUnitsOfType": 1, + "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", + "Hitpoints": 650, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "VillageType": 1, + "HintPriority": 150, + "Stage": 1 + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_BUILDING_BARRACK2", + "InfoTID": "TID_BARRACK2_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings2.sc", + "ExportName": "adv_training_camp_lvl7", + "ExportNameConstruction": "barracks_const", + "ExportNameLocked": "adv_training_camp_broken", + "BuildTimeD": 0, + "BuildTimeH": 9, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 300000, + "TownHallLevel": 5, + "CapitalHallLevel": 5, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "UnitProduction": 50, + "ProducesUnitsOfType": 1, + "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", + "Hitpoints": 750, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "VillageType": 1, + "HintPriority": 150, + "Stage": 1 + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_BUILDING_BARRACK2", + "InfoTID": "TID_BARRACK2_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings2.sc", + "ExportName": "adv_training_camp_lvl8", + "ExportNameConstruction": "barracks_const", + "ExportNameLocked": "adv_training_camp_broken", + "BuildTimeD": 1, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 500000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "UnitProduction": 55, + "ProducesUnitsOfType": 1, + "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", + "Hitpoints": 850, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "VillageType": 1, + "HintPriority": 150, + "Stage": 1 + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_BUILDING_BARRACK2", + "InfoTID": "TID_BARRACK2_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings2.sc", + "ExportName": "adv_training_camp_lvl9", + "ExportNameConstruction": "barracks_const", + "ExportNameLocked": "adv_training_camp_broken", + "BuildTimeD": 2, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 1000000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "UnitProduction": 55, + "ProducesUnitsOfType": 1, + "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", + "Hitpoints": 1000, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "VillageType": 1, + "HintPriority": 150, + "Stage": 1 + }, + "10": { + "BuildingLevel": 10, + "TID": "TID_BUILDING_BARRACK2", + "InfoTID": "TID_BARRACK2_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings2.sc", + "ExportName": "adv_training_camp_lvl10", + "ExportNameConstruction": "barracks_const", + "ExportNameLocked": "adv_training_camp_broken", + "BuildTimeD": 3, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 1500000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "UnitProduction": 55, + "ProducesUnitsOfType": 1, + "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", + "Hitpoints": 1150, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "VillageType": 1, + "HintPriority": 150, + "Stage": 1 + }, + "11": { + "BuildingLevel": 11, + "TID": "TID_BUILDING_BARRACK2", + "InfoTID": "TID_BARRACK2_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings2.sc", + "ExportName": "adv_training_camp_lvl11", + "ExportNameConstruction": "barracks_const", + "ExportNameLocked": "adv_training_camp_broken", + "BuildTimeD": 4, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 2000000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "UnitProduction": 55, + "ProducesUnitsOfType": 1, + "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", + "Hitpoints": 1300, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "VillageType": 1, + "HintPriority": 150, + "Stage": 1 + }, + "12": { + "BuildingLevel": 12, + "TID": "TID_BUILDING_BARRACK2", + "InfoTID": "TID_BARRACK2_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings2.sc", + "ExportName": "adv_training_camp_lvl12", + "ExportNameConstruction": "barracks_const", + "ExportNameLocked": "adv_training_camp_broken", + "BuildTimeD": 5, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 3000000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "UnitProduction": 55, + "ProducesUnitsOfType": 1, + "LevelRequirementTID": "TID_REQUIRED_BARRACK_LEVEL", + "Hitpoints": 1450, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_wood_red", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "VillageType": 1, + "HintPriority": 150, + "Stage": 1 + } + }, + "Double Cannon": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_DOUBLE_CANNON", + "InfoTID": "TID_DOUBLE_CANNON_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "doubleCannon_lvl1", + "ExportNameConstruction": "basic_turret_const", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 10, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 20000, + "TownHallLevel": 2, + "CapitalHallLevel": 2, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "goldmine_upg", + "Hitpoints": 600, + "RegenTime": 1, + "AttackRange": 700, + "AttackSpeed": 1600, + "CoolDownOverride": 800, + "Damage": 50, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Double Cannon Attack Small", + "HitEffect": "Generic Hit", + "Projectile": "DoubleCannonball1", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "basic_cannon2_lvl1_base", + "AirTargets": false, + "GroundTargets": true, + "PickUpEffect": "Double Cannon Pickup", + "PlacingEffect": "Double Cannon Placing", + "AnimateTurret": true, + "StrengthWeight": 436, + "BurstCount": 4, + "BurstDelay": 192, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_DOUBLE_CANNON", + "InfoTID": "TID_DOUBLE_CANNON_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "doubleCannon_lvl2", + "ExportNameConstruction": "basic_turret_const", + "BuildTimeD": 0, + "BuildTimeH": 1, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 50000, + "TownHallLevel": 3, + "CapitalHallLevel": 3, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "goldmine_upg", + "Hitpoints": 690, + "RegenTime": 1, + "AttackRange": 700, + "AttackSpeed": 1600, + "CoolDownOverride": 800, + "Damage": 55, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Double Cannon Attack Small", + "HitEffect": "Generic Hit", + "Projectile": "DoubleCannonball2", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "basic_cannon2_lvl2_base", + "AirTargets": false, + "GroundTargets": true, + "PickUpEffect": "Double Cannon Pickup", + "PlacingEffect": "Double Cannon Placing", + "AnimateTurret": true, + "StrengthWeight": 456, + "BurstCount": 4, + "BurstDelay": 192, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_DOUBLE_CANNON", + "InfoTID": "TID_DOUBLE_CANNON_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "doubleCannon_lvl3", + "ExportNameConstruction": "basic_turret_const", + "BuildTimeD": 0, + "BuildTimeH": 3, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 80000, + "TownHallLevel": 3, + "CapitalHallLevel": 3, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "goldmine_upg", + "Hitpoints": 800, + "RegenTime": 1, + "AttackRange": 700, + "AttackSpeed": 1600, + "CoolDownOverride": 800, + "Damage": 61, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Double Cannon Attack Small", + "HitEffect": "Generic Hit", + "Projectile": "DoubleCannonball3", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "basic_cannon2_lvl3_base", + "AirTargets": false, + "GroundTargets": true, + "PickUpEffect": "Double Cannon Pickup", + "PlacingEffect": "Double Cannon Placing", + "AnimateTurret": true, + "StrengthWeight": 476, + "BurstCount": 4, + "BurstDelay": 192, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_DOUBLE_CANNON", + "InfoTID": "TID_DOUBLE_CANNON_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "doubleCannon_lvl4", + "ExportNameConstruction": "basic_turret_const", + "BuildTimeD": 0, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 300000, + "TownHallLevel": 4, + "CapitalHallLevel": 4, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "goldmine_upg", + "Hitpoints": 910, + "RegenTime": 1, + "AttackRange": 700, + "AttackSpeed": 1600, + "CoolDownOverride": 800, + "Damage": 67, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Double Cannon Attack Small", + "HitEffect": "Generic Hit", + "Projectile": "DoubleCannonball4", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "basic_cannon2_lvl4_base", + "AirTargets": false, + "GroundTargets": true, + "PickUpEffect": "Double Cannon Pickup", + "PlacingEffect": "Double Cannon Placing", + "AnimateTurret": true, + "StrengthWeight": 496, + "BurstCount": 4, + "BurstDelay": 192, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_DOUBLE_CANNON", + "InfoTID": "TID_DOUBLE_CANNON_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "doubleCannon_lvl6", + "ExportNameConstruction": "basic_turret_const", + "BuildTimeD": 1, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 900000, + "TownHallLevel": 5, + "CapitalHallLevel": 5, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "goldmine_upg", + "Hitpoints": 1050, + "RegenTime": 1, + "AttackRange": 700, + "AttackSpeed": 1600, + "CoolDownOverride": 800, + "Damage": 74, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Double Cannon Attack Medium", + "HitEffect": "Generic Hit", + "Projectile": "DoubleCannonball6", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "basic_cannon2_lvl7_base", + "AirTargets": false, + "GroundTargets": true, + "PickUpEffect": "Double Cannon Pickup", + "PlacingEffect": "Double Cannon Placing", + "AnimateTurret": true, + "StrengthWeight": 520, + "BurstCount": 4, + "BurstDelay": 192, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_BUILDING_DOUBLE_CANNON", + "InfoTID": "TID_DOUBLE_CANNON_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "doubleCannon_lvl8", + "ExportNameConstruction": "basic_turret_const", + "BuildTimeD": 2, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 1400000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "goldmine_upg", + "Hitpoints": 1250, + "RegenTime": 1, + "AttackRange": 700, + "AttackSpeed": 1600, + "CoolDownOverride": 800, + "Damage": 81, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Double Cannon Attack Large", + "HitEffect": "Generic Hit", + "Projectile": "DoubleCannonball8", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "basic_cannon2_lvl8_base", + "AirTargets": false, + "GroundTargets": true, + "PickUpEffect": "Double Cannon Pickup", + "PlacingEffect": "Double Cannon Placing", + "AnimateTurret": true, + "StrengthWeight": 544, + "BurstCount": 4, + "BurstDelay": 192, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_BUILDING_DOUBLE_CANNON", + "InfoTID": "TID_DOUBLE_CANNON_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "doubleCannon_lvl9", + "ExportNameConstruction": "basic_turret_const", + "BuildTimeD": 4, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 2200000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "goldmine_upg", + "Hitpoints": 1450, + "RegenTime": 1, + "AttackRange": 700, + "AttackSpeed": 1600, + "CoolDownOverride": 800, + "Damage": 89, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Double Cannon Attack Large", + "HitEffect": "Generic Hit", + "Projectile": "DoubleCannonball9", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "basic_cannon2_lvl9_base", + "AirTargets": false, + "GroundTargets": true, + "PickUpEffect": "Double Cannon Pickup", + "PlacingEffect": "Double Cannon Placing", + "AnimateTurret": true, + "StrengthWeight": 568, + "BurstCount": 4, + "BurstDelay": 192, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_BUILDING_DOUBLE_CANNON", + "InfoTID": "TID_DOUBLE_CANNON_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "doubleCannon_lvl10", + "ExportNameConstruction": "basic_turret_const", + "BuildTimeD": 6, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 3200000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "Hitpoints": 1700, + "RegenTime": 1, + "AttackRange": 700, + "AttackSpeed": 1600, + "CoolDownOverride": 800, + "Damage": 98, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Double Cannon Attack Large", + "HitEffect": "Generic Hit", + "Projectile": "DoubleCannonball10", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "basic_cannon2_lvl9_base", + "AirTargets": false, + "GroundTargets": true, + "PickUpEffect": "Double Cannon Pickup", + "PlacingEffect": "Double Cannon Placing", + "AnimateTurret": true, + "StrengthWeight": 596, + "BurstCount": 4, + "BurstDelay": 192, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_BUILDING_DOUBLE_CANNON", + "InfoTID": "TID_DOUBLE_CANNON_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "doubleCannon_lvl11", + "ExportNameConstruction": "basic_turret_const", + "BuildTimeD": 8, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 4200000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "Hitpoints": 1950, + "RegenTime": 1, + "AttackRange": 700, + "AttackSpeed": 1600, + "CoolDownOverride": 800, + "Damage": 108, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Double Cannon Attack Large", + "HitEffect": "Generic Hit", + "Projectile": "DoubleCannonball10", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "basic_cannon2_lvl9_base", + "AirTargets": false, + "GroundTargets": true, + "PickUpEffect": "Double Cannon Pickup", + "PlacingEffect": "Double Cannon Placing", + "AnimateTurret": true, + "StrengthWeight": 620, + "BurstCount": 4, + "BurstDelay": 192, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "10": { + "BuildingLevel": 10, + "TID": "TID_BUILDING_DOUBLE_CANNON", + "InfoTID": "TID_DOUBLE_CANNON_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "doubleCannon_lvl12", + "ExportNameConstruction": "basic_turret_const", + "BuildTimeD": 10, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 5200000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "Hitpoints": 2200, + "RegenTime": 1, + "AttackRange": 700, + "AttackSpeed": 1600, + "CoolDownOverride": 800, + "Damage": 120, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Double Cannon Attack Large", + "HitEffect": "Generic Hit", + "Projectile": "DoubleCannonball10", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "basic_cannon2_lvl9_base", + "AirTargets": false, + "GroundTargets": true, + "PickUpEffect": "Double Cannon Pickup", + "PlacingEffect": "Double Cannon Placing", + "AnimateTurret": true, + "StrengthWeight": 640, + "BurstCount": 4, + "BurstDelay": 192, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + } + }, + "Multi Mortar": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_MULTI_MORTAR", + "InfoTID": "TID_MULTI_MORTAR_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "multi_mortar_lvl1", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 0, + "BuildTimeH": 8, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 600000, + "TownHallLevel": 5, + "CapitalHallLevel": 5, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 500, + "RegenTime": 1, + "AttackRange": 1100, + "AttackSpeed": 5000, + "CoolDownOverride": 3000, + "Damage": 45, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Multi Mortar Attack", + "HitEffect": "Multi Mortar Hit", + "Projectile": "Mortar2 Ammo1", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "newVillage_multi_mortar_lvl1", + "AirTargets": false, + "GroundTargets": true, + "MinAttackRange": 400, + "DamageRadius": 300, + "PickUpEffect": "Multi Mortar Pickup", + "PlacingEffect": "Multi Mortar Placing", + "AnimateTurret": true, + "StrengthWeight": 5720, + "BurstCount": 3, + "BurstDelay": 500, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "DefenseLongRange2" + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_MULTI_MORTAR", + "InfoTID": "TID_MULTI_MORTAR_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "multi_mortar_lvl2", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 0, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 700000, + "TownHallLevel": 5, + "CapitalHallLevel": 5, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 575, + "RegenTime": 1, + "AttackRange": 1100, + "AttackSpeed": 5000, + "CoolDownOverride": 3000, + "Damage": 45, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Multi Mortar Attack", + "HitEffect": "Multi Mortar Hit", + "Projectile": "Mortar2 Ammo2", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "newVillage_multi_mortar_lvl2", + "AirTargets": false, + "GroundTargets": true, + "MinAttackRange": 400, + "DamageRadius": 300, + "PickUpEffect": "Multi Mortar Pickup", + "PlacingEffect": "Multi Mortar Placing", + "AnimateTurret": true, + "StrengthWeight": 5940, + "BurstCount": 4, + "BurstDelay": 500, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "DefenseLongRange2" + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_MULTI_MORTAR", + "InfoTID": "TID_MULTI_MORTAR_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "multi_mortar_lvl3", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 1, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 800000, + "TownHallLevel": 5, + "CapitalHallLevel": 5, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 660, + "RegenTime": 1, + "AttackRange": 1100, + "AttackSpeed": 5000, + "CoolDownOverride": 3000, + "Damage": 50, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Multi Mortar Attack", + "HitEffect": "Multi Mortar Hit", + "Projectile": "Mortar2 Ammo2", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "newVillage_multi_mortar_lvl2", + "AirTargets": false, + "GroundTargets": true, + "MinAttackRange": 400, + "DamageRadius": 300, + "PickUpEffect": "Multi Mortar Pickup", + "PlacingEffect": "Multi Mortar Placing", + "AnimateTurret": true, + "StrengthWeight": 6160, + "BurstCount": 4, + "BurstDelay": 500, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "DefenseLongRange2" + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_MULTI_MORTAR", + "InfoTID": "TID_MULTI_MORTAR_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "multi_mortar_lvl4", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 2, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 1000000, + "TownHallLevel": 5, + "CapitalHallLevel": 5, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 760, + "RegenTime": 1, + "AttackRange": 1100, + "AttackSpeed": 5000, + "CoolDownOverride": 3000, + "Damage": 55, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Multi Mortar Attack", + "HitEffect": "Multi Mortar Hit", + "Projectile": "Mortar2 Ammo2", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "newVillage_multi_mortar_lvl2", + "AirTargets": false, + "GroundTargets": true, + "MinAttackRange": 400, + "DamageRadius": 300, + "PickUpEffect": "Multi Mortar Pickup", + "PlacingEffect": "Multi Mortar Placing", + "AnimateTurret": true, + "StrengthWeight": 6400, + "BurstCount": 4, + "BurstDelay": 500, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "DefenseLongRange2" + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_MULTI_MORTAR", + "InfoTID": "TID_MULTI_MORTAR_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "multi_mortar_lvl5", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 3, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 1200000, + "TownHallLevel": 5, + "CapitalHallLevel": 5, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 875, + "RegenTime": 1, + "AttackRange": 1100, + "AttackSpeed": 5000, + "CoolDownOverride": 3000, + "Damage": 60, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Multi Mortar Attack", + "HitEffect": "Multi Mortar Hit", + "Projectile": "Mortar2 Ammo3", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "newVillage_multi_mortar_lvl3", + "AirTargets": false, + "GroundTargets": true, + "MinAttackRange": 400, + "DamageRadius": 300, + "PickUpEffect": "Multi Mortar Pickup", + "PlacingEffect": "Multi Mortar Placing", + "AnimateTurret": true, + "StrengthWeight": 6640, + "BurstCount": 4, + "BurstDelay": 500, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "DefenseLongRange2" + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_BUILDING_MULTI_MORTAR", + "InfoTID": "TID_MULTI_MORTAR_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "multi_mortar_lvl6", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 5, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 1600000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 1050, + "RegenTime": 1, + "AttackRange": 1100, + "AttackSpeed": 5000, + "CoolDownOverride": 3000, + "Damage": 66, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Multi Mortar Attack", + "HitEffect": "Multi Mortar Hit", + "Projectile": "Mortar2 Ammo4", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "newVillage_multi_mortar_lvl4", + "AirTargets": false, + "GroundTargets": true, + "MinAttackRange": 400, + "DamageRadius": 300, + "PickUpEffect": "Multi Mortar Pickup", + "PlacingEffect": "Multi Mortar Placing", + "AnimateTurret": true, + "StrengthWeight": 6900, + "BurstCount": 4, + "BurstDelay": 500, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "DefenseLongRange2" + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_BUILDING_MULTI_MORTAR", + "InfoTID": "TID_MULTI_MORTAR_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "multi_mortar_lvl7", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 7, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 2500000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 1250, + "RegenTime": 1, + "AttackRange": 1100, + "AttackSpeed": 5000, + "CoolDownOverride": 3000, + "Damage": 73, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Multi Mortar Attack", + "HitEffect": "Multi Mortar Hit", + "Projectile": "Mortar2 Ammo5", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "newVillage_multi_mortar_lvl5", + "AirTargets": false, + "GroundTargets": true, + "MinAttackRange": 400, + "DamageRadius": 300, + "PickUpEffect": "Multi Mortar Pickup", + "PlacingEffect": "Multi Mortar Placing", + "AnimateTurret": true, + "StrengthWeight": 7160, + "BurstCount": 4, + "BurstDelay": 500, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "DefenseLongRange2" + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_BUILDING_MULTI_MORTAR", + "InfoTID": "TID_MULTI_MORTAR_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "multi_mortar_lvl8", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 9, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 3500000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 1450, + "RegenTime": 1, + "AttackRange": 1100, + "AttackSpeed": 5000, + "CoolDownOverride": 3000, + "Damage": 80, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Multi Mortar Attack", + "HitEffect": "Multi Mortar Hit", + "Projectile": "Mortar2 Ammo5", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "newVillage_multi_mortar_lvl5", + "AirTargets": false, + "GroundTargets": true, + "MinAttackRange": 400, + "DamageRadius": 300, + "PickUpEffect": "Multi Mortar Pickup", + "PlacingEffect": "Multi Mortar Placing", + "AnimateTurret": true, + "StrengthWeight": 7440, + "BurstCount": 4, + "BurstDelay": 500, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "DefenseLongRange2" + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_BUILDING_MULTI_MORTAR", + "InfoTID": "TID_MULTI_MORTAR_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "multi_mortar_lvl9", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 11, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 4500000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 1650, + "RegenTime": 1, + "AttackRange": 1100, + "AttackSpeed": 5000, + "CoolDownOverride": 3000, + "Damage": 88, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Multi Mortar Attack", + "HitEffect": "Multi Mortar Hit", + "Projectile": "Mortar2 Ammo5", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "newVillage_multi_mortar_lvl5", + "AirTargets": false, + "GroundTargets": true, + "MinAttackRange": 400, + "DamageRadius": 300, + "PickUpEffect": "Multi Mortar Pickup", + "PlacingEffect": "Multi Mortar Placing", + "AnimateTurret": true, + "StrengthWeight": 7720, + "BurstCount": 4, + "BurstDelay": 500, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "DefenseLongRange2" + }, + "10": { + "BuildingLevel": 10, + "TID": "TID_BUILDING_MULTI_MORTAR", + "InfoTID": "TID_MULTI_MORTAR_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "multi_mortar_lvl10", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 12, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 5500000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 1850, + "RegenTime": 1, + "AttackRange": 1100, + "AttackSpeed": 5000, + "CoolDownOverride": 3000, + "Damage": 88, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Multi Mortar Attack 2", + "HitEffect": "Multi Mortar Hit", + "Projectile": "Mortar2 Ammo5", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "newVillage_multi_mortar_lvl5", + "AirTargets": false, + "GroundTargets": true, + "MinAttackRange": 400, + "DamageRadius": 300, + "PickUpEffect": "Multi Mortar Pickup", + "PlacingEffect": "Multi Mortar Placing", + "AnimateTurret": true, + "StrengthWeight": 8000, + "BurstCount": 5, + "BurstDelay": 500, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "DefenseLongRange2" + } + }, + "Star Laboratory": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_TELESCOPE", + "InfoTID": "TID_TELESCOPE_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings2.sc", + "ExportName": "Telescope_lvl1", + "ExportNameConstruction": "spell_factory_const", + "ExportNameLocked": "Telescope_broken", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 1000, + "TownHallLevel": 1, + "CapitalHallLevel": 1, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "laboratory_upg", + "UpgradesUnitType": "UNIT", + "Hitpoints": 650, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_4l_pit_rockglass", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "newVillage_lab_lvl1", + "PickUpEffect": "Laboratory Pickup", + "PlacingEffect": "Laboratory Placing", + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 800, + "Stage": 1 + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_TELESCOPE", + "InfoTID": "TID_TELESCOPE_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings2.sc", + "ExportName": "Telescope_lvl2", + "ExportNameConstruction": "spell_factory_const", + "ExportNameLocked": "Telescope_broken", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 10, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 15000, + "TownHallLevel": 2, + "CapitalHallLevel": 2, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "laboratory_upg", + "UpgradesUnitType": "UNIT", + "Hitpoints": 800, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_4l_pit_rockglass", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "newVillage_lab_lvl2", + "PickUpEffect": "Laboratory Pickup", + "PlacingEffect": "Laboratory Placing", + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 800, + "Stage": 1 + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_TELESCOPE", + "InfoTID": "TID_TELESCOPE_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings2.sc", + "ExportName": "Telescope_lvl3", + "ExportNameConstruction": "spell_factory_const", + "ExportNameLocked": "Telescope_broken", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 30, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 50000, + "TownHallLevel": 3, + "CapitalHallLevel": 3, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "laboratory_upg", + "UpgradesUnitType": "UNIT", + "Hitpoints": 975, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_4l_pit_rockglass", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "newVillage_lab_lvl3", + "PickUpEffect": "Laboratory Pickup", + "PlacingEffect": "Laboratory Placing", + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 800, + "Stage": 1 + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_TELESCOPE", + "InfoTID": "TID_TELESCOPE_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings2.sc", + "ExportName": "Telescope_lvl4", + "ExportNameConstruction": "spell_factory_const", + "ExportNameLocked": "Telescope_broken", + "BuildTimeD": 0, + "BuildTimeH": 8, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 300000, + "TownHallLevel": 4, + "CapitalHallLevel": 4, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "laboratory_upg", + "UpgradesUnitType": "UNIT", + "Hitpoints": 1150, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_4l_pit_rockglass", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "newVillage_lab_lvl4", + "PickUpEffect": "Laboratory Pickup", + "PlacingEffect": "Laboratory Placing", + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 800, + "Stage": 1 + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_TELESCOPE", + "InfoTID": "TID_TELESCOPE_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings2.sc", + "ExportName": "Telescope_lvl5", + "ExportNameConstruction": "spell_factory_const", + "ExportNameLocked": "Telescope_broken", + "BuildTimeD": 0, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 700000, + "TownHallLevel": 5, + "CapitalHallLevel": 5, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "laboratory_upg", + "UpgradesUnitType": "UNIT", + "Hitpoints": 1350, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_4l_pit_rockglass", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "newVillage_lab_lvl5", + "PickUpEffect": "Laboratory Pickup", + "PlacingEffect": "Laboratory Placing", + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 800, + "Stage": 1 + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_BUILDING_TELESCOPE", + "InfoTID": "TID_TELESCOPE_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings2.sc", + "ExportName": "Telescope_lvl6", + "ExportNameConstruction": "spell_factory_const", + "ExportNameLocked": "Telescope_broken", + "BuildTimeD": 2, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 1000000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "laboratory_upg", + "UpgradesUnitType": "UNIT", + "Hitpoints": 1600, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_4l_pit_rockglass", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "newVillage_lab_lvl6", + "PickUpEffect": "Laboratory Pickup", + "PlacingEffect": "Laboratory Placing", + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 800, + "Stage": 1 + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_BUILDING_TELESCOPE", + "InfoTID": "TID_TELESCOPE_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings2.sc", + "ExportName": "Telescope_lvl7", + "ExportNameConstruction": "spell_factory_const", + "ExportNameLocked": "Telescope_broken", + "BuildTimeD": 4, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 2000000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "laboratory_upg", + "UpgradesUnitType": "UNIT", + "Hitpoints": 1850, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_4l_pit_rockglass", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "newVillage_lab_lvl6", + "PickUpEffect": "Laboratory Pickup", + "PlacingEffect": "Laboratory Placing", + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 800, + "Stage": 1 + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_BUILDING_TELESCOPE", + "InfoTID": "TID_TELESCOPE_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings2.sc", + "ExportName": "Telescope_lvl8", + "ExportNameConstruction": "spell_factory_const", + "ExportNameLocked": "Telescope_broken", + "BuildTimeD": 6, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 3000000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "laboratory_upg", + "UpgradesUnitType": "UNIT", + "Hitpoints": 2150, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_4l_pit_rockglass", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "newVillage_lab_lvl6", + "PickUpEffect": "Laboratory Pickup", + "PlacingEffect": "Laboratory Placing", + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 800, + "Stage": 1 + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_BUILDING_TELESCOPE", + "InfoTID": "TID_TELESCOPE_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings2.sc", + "ExportName": "Telescope_lvl9", + "ExportNameConstruction": "spell_factory_const", + "ExportNameLocked": "Telescope_broken", + "BuildTimeD": 8, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 4000000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "laboratory_upg", + "UpgradesUnitType": "UNIT", + "Hitpoints": 2450, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_4l_pit_rockglass", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "newVillage_lab_lvl6", + "PickUpEffect": "Laboratory Pickup", + "PlacingEffect": "Laboratory Placing", + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 800, + "Stage": 1 + }, + "10": { + "BuildingLevel": 10, + "TID": "TID_BUILDING_TELESCOPE", + "InfoTID": "TID_TELESCOPE_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings2.sc", + "ExportName": "Telescope_lvl10", + "ExportNameConstruction": "spell_factory_const", + "ExportNameLocked": "Telescope_broken", + "BuildTimeD": 10, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 5000000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "laboratory_upg", + "UpgradesUnitType": "UNIT", + "Hitpoints": 2750, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_4l_pit_rockglass", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "newVillage_lab_lvl6", + "PickUpEffect": "Laboratory Pickup", + "PlacingEffect": "Laboratory Placing", + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 800, + "Stage": 1 + } + }, + "Master Builder's Hut": { + "1": { + "BuildingLevel": 1, + "TID": "TID_WORKER2_BUILDING", + "InfoTID": "TID_WORKER2_INFO", + "BuildingClass": "Worker2", + "SWF": "sc/buildings2.sc", + "ExportName": "new_builders_hut", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Diamonds", + "BuildCost": 20000, + "TownHallLevel": 1000, + "CapitalHallLevel": 1, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "teslatower_upg", + "Hitpoints": 300, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_darkbrown", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "worker_building_base", + "PickUpEffect": "Worker Building Pickup", + "PlacingEffect": "Worker Building Placing", + "Locked": true, + "StartingHomeCount": 1, + "VillageType": 1 + } + }, + "Reinforcement Camp": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_REINFORCEMENT_CAMP", + "InfoTID": "TID_REINFORCEMENT_CAMP_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings2.sc", + "ExportName": "adv_fireplace_lvl7", + "ExportNameConstruction": "basic_turret_const", + "ExportNameLocked": "adv_fireplace_broken_3x3", + "BuildResource": "Elixir2", + "BuildCost": 1500000, + "TownHallLevel": 1, + "CapitalHallLevel": 1, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "ArmySlotType": "Reinforcement", + "Hitpoints": 300, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3s_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "adv_fireplace_lvl1_base", + "PickUpEffect": "Troop Housing Pickup", + "PlacingEffect": "Troop Housing Placing", + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 750, + "Stage": 2 + } + }, + "Firecrackers": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_AIR_DEFENSE_SMALL", + "InfoTID": "TID_AIR_DEFENSE_SMALL_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "airDefence_box_lvl1", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 15, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 40000, + "TownHallLevel": 3, + "CapitalHallLevel": 3, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "teslatower_upg", + "Hitpoints": 400, + "RegenTime": 1, + "AttackRange": 900, + "AttackSpeed": 800, + "Damage": 19, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Air Defence Mini Attack", + "HitEffect": "Air Defence Mini hit1", + "Projectile": "FireworkMini", + "ExportNameDamaged": "destroyedBuilding_2l_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "airdefence_box_base_lvl1", + "AirTargets": true, + "GroundTargets": false, + "PickUpEffect": "Air Defence Pickup", + "PlacingEffect": "Air Defence Placing", + "StrengthWeight": 324, + "BurstCount": 3, + "BurstDelay": 64, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "AirDefense2" + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_AIR_DEFENSE_SMALL", + "InfoTID": "TID_AIR_DEFENSE_SMALL_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "airDefence_box_lvl2", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 0, + "BuildTimeH": 2, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 80000, + "TownHallLevel": 3, + "CapitalHallLevel": 3, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "teslatower_upg", + "Hitpoints": 460, + "RegenTime": 1, + "AttackRange": 900, + "AttackSpeed": 800, + "Damage": 21, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Air Defence Mini Attack", + "HitEffect": "Air Defence Mini hit1", + "Projectile": "FireworkMini2", + "ExportNameDamaged": "destroyedBuilding_2l_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "airdefence_box_base_lvl1", + "AirTargets": true, + "GroundTargets": false, + "PickUpEffect": "Air Defence Pickup", + "PlacingEffect": "Air Defence Placing", + "StrengthWeight": 330, + "BurstCount": 3, + "BurstDelay": 64, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "AirDefense2" + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_AIR_DEFENSE_SMALL", + "InfoTID": "TID_AIR_DEFENSE_SMALL_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "airDefence_box_lvl3", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 0, + "BuildTimeH": 4, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 120000, + "TownHallLevel": 3, + "CapitalHallLevel": 3, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "teslatower_upg", + "Hitpoints": 530, + "RegenTime": 1, + "AttackRange": 900, + "AttackSpeed": 800, + "Damage": 23, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Air Defence Mini Attack", + "HitEffect": "Air Defence Mini hit2", + "Projectile": "FireworkMini3", + "ExportNameDamaged": "destroyedBuilding_2l_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "airdefence_box_base_lvl1", + "AirTargets": true, + "GroundTargets": false, + "PickUpEffect": "Air Defence Pickup", + "PlacingEffect": "Air Defence Placing", + "StrengthWeight": 336, + "BurstCount": 3, + "BurstDelay": 64, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "AirDefense2" + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_AIR_DEFENSE_SMALL", + "InfoTID": "TID_AIR_DEFENSE_SMALL_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "airDefence_box_lvl4", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 0, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 300000, + "TownHallLevel": 4, + "CapitalHallLevel": 4, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "teslatower_upg", + "Hitpoints": 610, + "RegenTime": 1, + "AttackRange": 900, + "AttackSpeed": 800, + "Damage": 25, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Air Defence Mini Attack", + "HitEffect": "Air Defence Mini hit2", + "Projectile": "FireworkMini4", + "ExportNameDamaged": "destroyedBuilding_2l_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "airdefence_box_base_lvl1", + "AirTargets": true, + "GroundTargets": false, + "PickUpEffect": "Air Defence Pickup", + "PlacingEffect": "Air Defence Placing", + "StrengthWeight": 342, + "BurstCount": 3, + "BurstDelay": 64, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "AirDefense2" + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_AIR_DEFENSE_SMALL", + "InfoTID": "TID_AIR_DEFENSE_SMALL_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "airDefence_box_lvl5", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 1, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 800000, + "TownHallLevel": 5, + "CapitalHallLevel": 5, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "teslatower_upg", + "Hitpoints": 700, + "RegenTime": 1, + "AttackRange": 900, + "AttackSpeed": 800, + "Damage": 27, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Air Defence Mini Attack", + "HitEffect": "Air Defence Mini hit3", + "Projectile": "FireworkMini5", + "ExportNameDamaged": "destroyedBuilding_2l_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "airdefence_box_base_lvl1", + "AirTargets": true, + "GroundTargets": false, + "PickUpEffect": "Air Defence Pickup", + "PlacingEffect": "Air Defence Placing", + "StrengthWeight": 348, + "BurstCount": 3, + "BurstDelay": 64, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "AirDefense2" + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_BUILDING_AIR_DEFENSE_SMALL", + "InfoTID": "TID_AIR_DEFENSE_SMALL_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "airDefence_box_lvl6", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 2, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 1200000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "teslatower_upg", + "Hitpoints": 850, + "RegenTime": 1, + "AttackRange": 900, + "AttackSpeed": 800, + "Damage": 30, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Air Defence Mini Attack", + "HitEffect": "Air Defence Mini hit3", + "Projectile": "FireworkMini5", + "ExportNameDamaged": "destroyedBuilding_2l_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "airdefence_box_base_lvl1", + "AirTargets": true, + "GroundTargets": false, + "PickUpEffect": "Air Defence Pickup", + "PlacingEffect": "Air Defence Placing", + "StrengthWeight": 354, + "BurstCount": 3, + "BurstDelay": 64, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "AirDefense2" + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_BUILDING_AIR_DEFENSE_SMALL", + "InfoTID": "TID_AIR_DEFENSE_SMALL_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "airDefence_box_lvl7", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 4, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 2000000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "teslatower_upg", + "Hitpoints": 1000, + "RegenTime": 1, + "AttackRange": 900, + "AttackSpeed": 800, + "Damage": 33, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Air Defence Mini Attack", + "HitEffect": "Air Defence Mini hit3", + "Projectile": "FireworkMini5", + "ExportNameDamaged": "destroyedBuilding_2l_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "airdefence_box_base_lvl1", + "AirTargets": true, + "GroundTargets": false, + "PickUpEffect": "Air Defence Pickup", + "PlacingEffect": "Air Defence Placing", + "StrengthWeight": 360, + "BurstCount": 3, + "BurstDelay": 64, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "AirDefense2" + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_BUILDING_AIR_DEFENSE_SMALL", + "InfoTID": "TID_AIR_DEFENSE_SMALL_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "airDefence_box_lvl8", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 6, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 3000000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "teslatower_upg", + "Hitpoints": 1150, + "RegenTime": 1, + "AttackRange": 900, + "AttackSpeed": 800, + "Damage": 36, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Air Defence Mini Attack", + "HitEffect": "Air Defence Mini hit3", + "Projectile": "FireworkMini6", + "ExportNameDamaged": "destroyedBuilding_2l_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "airdefence_box_base_lvl1", + "AirTargets": true, + "GroundTargets": false, + "PickUpEffect": "Air Defence Pickup", + "PlacingEffect": "Air Defence Placing", + "StrengthWeight": 366, + "BurstCount": 3, + "BurstDelay": 64, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "AirDefense2" + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_BUILDING_AIR_DEFENSE_SMALL", + "InfoTID": "TID_AIR_DEFENSE_SMALL_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "airDefence_box_lvl9", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 8, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 4000000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "teslatower_upg", + "Hitpoints": 1300, + "RegenTime": 1, + "AttackRange": 900, + "AttackSpeed": 800, + "Damage": 40, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Air Defence Mini Attack", + "HitEffect": "Air Defence Mini hit3", + "Projectile": "FireworkMini6", + "ExportNameDamaged": "destroyedBuilding_2l_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "airdefence_box_base_lvl1", + "AirTargets": true, + "GroundTargets": false, + "PickUpEffect": "Air Defence Pickup", + "PlacingEffect": "Air Defence Placing", + "StrengthWeight": 372, + "BurstCount": 3, + "BurstDelay": 64, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "AirDefense2" + }, + "10": { + "BuildingLevel": 10, + "TID": "TID_BUILDING_AIR_DEFENSE_SMALL", + "InfoTID": "TID_AIR_DEFENSE_SMALL_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "airDefence_box_lvl10", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 9, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 5000000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "teslatower_upg", + "Hitpoints": 1500, + "RegenTime": 1, + "AttackRange": 900, + "AttackSpeed": 800, + "Damage": 44, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Air Defence Mini Attack", + "HitEffect": "Air Defence Mini hit3", + "Projectile": "FireworkMini6", + "ExportNameDamaged": "destroyedBuilding_2l_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "airdefence_box_base_lvl1", + "AirTargets": true, + "GroundTargets": false, + "PickUpEffect": "Air Defence Pickup", + "PlacingEffect": "Air Defence Placing", + "StrengthWeight": 378, + "BurstCount": 3, + "BurstDelay": 64, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "AirDefense2" + } + }, + "Guard Post": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_GUARD_POST", + "InfoTID": "TID_GUARD_POST_INFO", + "BuildingClass": "Army", + "ShopBuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "GuardPost_lvl1", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 0, + "BuildTimeH": 4, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 200000, + "TownHallLevel": 4, + "CapitalHallLevel": 4, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "teslatower_upg", + "Hitpoints": 300, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_lightblue", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "newVillage_guard_post_lvl1", + "PickUpEffect": "Worker Building Pickup", + "PlacingEffect": "Worker Building Placing", + "StrengthWeight": 422, + "VillageType": 1, + "DefenceTroopCount": 2, + "DefenceTroopCharacter": "Barbarian2", + "DefenceTroopCharacter2": "Archer2", + "DefenceTroopLevel": 2, + "HintPriority": 150 + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_GUARD_POST", + "InfoTID": "TID_GUARD_POST_INFO", + "BuildingClass": "Army", + "ShopBuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "GuardPost_lvl2", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 0, + "BuildTimeH": 8, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 240000, + "TownHallLevel": 4, + "CapitalHallLevel": 4, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "teslatower_upg", + "Hitpoints": 350, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_lightblue", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "newVillage_guard_post_lvl1", + "PickUpEffect": "Worker Building Pickup", + "PlacingEffect": "Worker Building Placing", + "StrengthWeight": 379, + "VillageType": 1, + "DefenceTroopCount": 2, + "DefenceTroopCharacter": "Barbarian2", + "DefenceTroopCharacter2": "Archer2", + "DefenceTroopLevel": 4, + "HintPriority": 150 + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_GUARD_POST", + "InfoTID": "TID_GUARD_POST_INFO", + "BuildingClass": "Army", + "ShopBuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "GuardPost_lvl3", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 0, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 280000, + "TownHallLevel": 4, + "CapitalHallLevel": 4, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "teslatower_upg", + "Hitpoints": 400, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_lightblue", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "newVillage_guard_post_lvl1", + "PickUpEffect": "Worker Building Pickup", + "PlacingEffect": "Worker Building Placing", + "StrengthWeight": 265, + "VillageType": 1, + "DefenceTroopCount": 2, + "DefenceTroopCharacter": "Barbarian2", + "DefenceTroopCharacter2": "Archer2", + "DefenceTroopLevel": 6, + "HintPriority": 150 + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_GUARD_POST", + "InfoTID": "TID_GUARD_POST_INFO", + "BuildingClass": "Army", + "ShopBuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "GuardPost_lvl4", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 1, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 320000, + "TownHallLevel": 4, + "CapitalHallLevel": 4, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "teslatower_upg", + "Hitpoints": 460, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_lightblue", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "newVillage_guard_post_lvl1", + "PickUpEffect": "Worker Building Pickup", + "PlacingEffect": "Worker Building Placing", + "StrengthWeight": 265, + "VillageType": 1, + "DefenceTroopCount": 2, + "DefenceTroopCharacter": "Barbarian2", + "DefenceTroopCharacter2": "Archer2", + "DefenceTroopLevel": 8, + "HintPriority": 150 + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_GUARD_POST", + "InfoTID": "TID_GUARD_POST_INFO", + "BuildingClass": "Army", + "ShopBuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "GuardPost_lvl5", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 2, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 1000000, + "TownHallLevel": 5, + "CapitalHallLevel": 5, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "teslatower_upg", + "Hitpoints": 550, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_lightblue", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "newVillage_guard_post_lvl1", + "PickUpEffect": "Worker Building Pickup", + "PlacingEffect": "Worker Building Placing", + "StrengthWeight": 212, + "VillageType": 1, + "DefenceTroopCount": 2, + "DefenceTroopCharacter": "Barbarian2", + "DefenceTroopCharacter2": "Archer2", + "DefenceTroopLevel": 10, + "HintPriority": 150 + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_BUILDING_GUARD_POST", + "InfoTID": "TID_GUARD_POST_INFO", + "BuildingClass": "Army", + "ShopBuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "GuardPost_lvl6", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 4, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 1400000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "teslatower_upg", + "Hitpoints": 650, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_lightblue", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "newVillage_guard_post_lvl1", + "PickUpEffect": "Worker Building Pickup", + "PlacingEffect": "Worker Building Placing", + "StrengthWeight": 212, + "VillageType": 1, + "DefenceTroopCount": 2, + "DefenceTroopCharacter": "Barbarian2", + "DefenceTroopCharacter2": "Archer2", + "DefenceTroopLevel": 12, + "HintPriority": 150 + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_BUILDING_GUARD_POST", + "InfoTID": "TID_GUARD_POST_INFO", + "BuildingClass": "Army", + "ShopBuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "GuardPost_lvl7", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 6, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 2300000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "teslatower_upg", + "Hitpoints": 750, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_lightblue", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "newVillage_guard_post_lvl1", + "PickUpEffect": "Worker Building Pickup", + "PlacingEffect": "Worker Building Placing", + "StrengthWeight": 190, + "VillageType": 1, + "DefenceTroopCount": 2, + "DefenceTroopCharacter": "Barbarian2", + "DefenceTroopCharacter2": "Archer2", + "DefenceTroopLevel": 14, + "HintPriority": 150 + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_BUILDING_GUARD_POST", + "InfoTID": "TID_GUARD_POST_INFO", + "BuildingClass": "Army", + "ShopBuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "GuardPost_lvl8", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 8, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 3200000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "teslatower_upg", + "Hitpoints": 850, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_lightblue", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "newVillage_guard_post_lvl1", + "PickUpEffect": "Worker Building Pickup", + "PlacingEffect": "Worker Building Placing", + "StrengthWeight": 190, + "VillageType": 1, + "DefenceTroopCount": 2, + "DefenceTroopCharacter": "Barbarian2", + "DefenceTroopCharacter2": "Archer2", + "DefenceTroopLevel": 16, + "HintPriority": 150 + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_BUILDING_GUARD_POST", + "InfoTID": "TID_GUARD_POST_INFO", + "BuildingClass": "Army", + "ShopBuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "GuardPost_lvl9", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 10, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 4100000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "teslatower_upg", + "Hitpoints": 1000, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_lightblue", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "newVillage_guard_post_lvl1", + "PickUpEffect": "Worker Building Pickup", + "PlacingEffect": "Worker Building Placing", + "StrengthWeight": 190, + "VillageType": 1, + "DefenceTroopCount": 2, + "DefenceTroopCharacter": "Barbarian2", + "DefenceTroopCharacter2": "Archer2", + "DefenceTroopLevel": 18, + "HintPriority": 150 + }, + "10": { + "BuildingLevel": 10, + "TID": "TID_BUILDING_GUARD_POST", + "InfoTID": "TID_GUARD_POST_INFO", + "BuildingClass": "Army", + "ShopBuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "GuardPost_lvl10", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 12, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 5100000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "teslatower_upg", + "Hitpoints": 1150, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_lightblue", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "newVillage_guard_post_lvl1", + "PickUpEffect": "Worker Building Pickup", + "PlacingEffect": "Worker Building Placing", + "StrengthWeight": 190, + "VillageType": 1, + "DefenceTroopCount": 2, + "DefenceTroopCharacter": "Barbarian2", + "DefenceTroopCharacter2": "Archer2", + "DefenceTroopLevel": 20, + "HintPriority": 150 + } + }, + "Mega Tesla": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_MEGA_TESLA", + "InfoTID": "TID_MEGA_TESLA_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "mega_tesla_lvl1", + "ExportNameConstruction": "tower_turret_const", + "BuildTimeD": 2, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 3000000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 700, + "RegenTime": 1, + "AttackRange": 750, + "AttackSpeed": 4000, + "Damage": 380, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "MegaTesla Attack_1", + "ChainAttackDistance": 300, + "ChainAttackMaxTargets": 2, + "ChainAttackDelay": 128, + "ChainAttackDamageReductionPercent": 40, + "AttackEffectAlt": "MegaTesla Attack_1_chain", + "HitEffect": "Mega Tesla Hit", + "ExportNameDamaged": "destroyedBuilding_3l_base_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "defense_tower_turret_base", + "AirTargets": true, + "GroundTargets": true, + "PickUpEffect": "Tesla Pickup", + "PlacingEffect": "Tesla Placing", + "StrengthWeight": 1493, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_MEGA_TESLA", + "InfoTID": "TID_MEGA_TESLA_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "mega_tesla_lvl2", + "ExportNameConstruction": "tower_turret_const", + "BuildTimeD": 3, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 3100000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 800, + "RegenTime": 1, + "AttackRange": 750, + "AttackSpeed": 4000, + "Damage": 418, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "MegaTesla Attack_1", + "ChainAttackDistance": 300, + "ChainAttackMaxTargets": 2, + "ChainAttackDelay": 128, + "ChainAttackDamageReductionPercent": 40, + "AttackEffectAlt": "MegaTesla Attack_1_chain", + "HitEffect": "Mega Tesla Hit", + "ExportNameDamaged": "destroyedBuilding_3l_base_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "defense_tower_turret_base", + "AirTargets": true, + "GroundTargets": true, + "PickUpEffect": "Tesla Pickup", + "PlacingEffect": "Tesla Placing", + "StrengthWeight": 1522, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_MEGA_TESLA", + "InfoTID": "TID_MEGA_TESLA_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "mega_tesla_lvl3", + "ExportNameConstruction": "tower_turret_const", + "BuildTimeD": 4, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 3200000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 950, + "RegenTime": 1, + "AttackRange": 750, + "AttackSpeed": 4000, + "Damage": 460, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "MegaTesla Attack_1", + "ChainAttackDistance": 300, + "ChainAttackMaxTargets": 2, + "ChainAttackDelay": 128, + "ChainAttackDamageReductionPercent": 40, + "AttackEffectAlt": "MegaTesla Attack_1_chain", + "HitEffect": "Mega Tesla Hit", + "ExportNameDamaged": "destroyedBuilding_3l_base_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "defense_tower_turret_base", + "AirTargets": true, + "GroundTargets": true, + "PickUpEffect": "Tesla Pickup", + "PlacingEffect": "Tesla Placing", + "StrengthWeight": 1552, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_MEGA_TESLA", + "InfoTID": "TID_MEGA_TESLA_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "mega_tesla_lvl4", + "ExportNameConstruction": "tower_turret_const", + "BuildTimeD": 5, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 3300000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 1100, + "RegenTime": 1, + "AttackRange": 750, + "AttackSpeed": 4000, + "Damage": 506, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "MegaTesla Attack_1", + "ChainAttackDistance": 300, + "ChainAttackMaxTargets": 2, + "ChainAttackDelay": 128, + "ChainAttackDamageReductionPercent": 40, + "AttackEffectAlt": "MegaTesla Attack_1_chain", + "HitEffect": "Mega Tesla Hit", + "ExportNameDamaged": "destroyedBuilding_3l_base_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "defense_tower_turret_base", + "AirTargets": true, + "GroundTargets": true, + "PickUpEffect": "Tesla Pickup", + "PlacingEffect": "Tesla Placing", + "StrengthWeight": 1583, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_MEGA_TESLA", + "InfoTID": "TID_MEGA_TESLA_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "mega_tesla_lvl5", + "ExportNameConstruction": "tower_turret_const", + "BuildTimeD": 6, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 3400000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 1300, + "RegenTime": 1, + "AttackRange": 750, + "AttackSpeed": 4000, + "Damage": 556, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "MegaTesla Attack_1", + "ChainAttackDistance": 300, + "ChainAttackMaxTargets": 2, + "ChainAttackDelay": 128, + "ChainAttackDamageReductionPercent": 40, + "AttackEffectAlt": "MegaTesla Attack_1_chain", + "HitEffect": "Mega Tesla Hit", + "ExportNameDamaged": "destroyedBuilding_3l_base_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "defense_tower_turret_base", + "AirTargets": true, + "GroundTargets": true, + "PickUpEffect": "Tesla Pickup", + "PlacingEffect": "Tesla Placing", + "StrengthWeight": 1614, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_BUILDING_MEGA_TESLA", + "InfoTID": "TID_MEGA_TESLA_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "mega_tesla_lvl6", + "ExportNameConstruction": "tower_turret_const", + "BuildTimeD": 7, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 3600000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 1500, + "RegenTime": 1, + "AttackRange": 750, + "AttackSpeed": 4000, + "Damage": 612, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "MegaTesla Attack_1", + "ChainAttackDistance": 300, + "ChainAttackMaxTargets": 2, + "ChainAttackDelay": 128, + "ChainAttackDamageReductionPercent": 40, + "AttackEffectAlt": "MegaTesla Attack_1_chain", + "HitEffect": "Mega Tesla Hit", + "ExportNameDamaged": "destroyedBuilding_3l_base_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "defense_tower_turret_base", + "AirTargets": true, + "GroundTargets": true, + "PickUpEffect": "Tesla Pickup", + "PlacingEffect": "Tesla Placing", + "StrengthWeight": 1646, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_BUILDING_MEGA_TESLA", + "InfoTID": "TID_MEGA_TESLA_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "mega_tesla_lvl7", + "ExportNameConstruction": "tower_turret_const", + "BuildTimeD": 8, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 3800000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 1700, + "RegenTime": 1, + "AttackRange": 750, + "AttackSpeed": 4000, + "Damage": 673, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "MegaTesla Attack_1", + "ChainAttackDistance": 300, + "ChainAttackMaxTargets": 2, + "ChainAttackDelay": 128, + "ChainAttackDamageReductionPercent": 40, + "AttackEffectAlt": "MegaTesla Attack_1_chain", + "HitEffect": "Mega Tesla Hit", + "ExportNameDamaged": "destroyedBuilding_3l_base_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "defense_tower_turret_base", + "AirTargets": true, + "GroundTargets": true, + "PickUpEffect": "Tesla Pickup", + "PlacingEffect": "Tesla Placing", + "StrengthWeight": 1678, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_BUILDING_MEGA_TESLA", + "InfoTID": "TID_MEGA_TESLA_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "mega_tesla_lvl8", + "ExportNameConstruction": "tower_turret_const", + "BuildTimeD": 10, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 4000000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 1900, + "RegenTime": 1, + "AttackRange": 750, + "AttackSpeed": 4000, + "Damage": 741, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "MegaTesla Attack_1", + "ChainAttackDistance": 300, + "ChainAttackMaxTargets": 2, + "ChainAttackDelay": 128, + "ChainAttackDamageReductionPercent": 40, + "AttackEffectAlt": "MegaTesla Attack_1_chain", + "HitEffect": "Mega Tesla Hit", + "ExportNameDamaged": "destroyedBuilding_3l_base_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "defense_tower_turret_base", + "AirTargets": true, + "GroundTargets": true, + "PickUpEffect": "Tesla Pickup", + "PlacingEffect": "Tesla Placing", + "StrengthWeight": 1711, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_BUILDING_MEGA_TESLA", + "InfoTID": "TID_MEGA_TESLA_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "mega_tesla_lvl9", + "ExportNameConstruction": "tower_turret_const", + "BuildTimeD": 11, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 4800000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 2150, + "RegenTime": 1, + "AttackRange": 750, + "AttackSpeed": 4000, + "Damage": 816, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "MegaTesla Attack_1", + "ChainAttackDistance": 300, + "ChainAttackMaxTargets": 2, + "ChainAttackDelay": 128, + "ChainAttackDamageReductionPercent": 40, + "AttackEffectAlt": "MegaTesla Attack_1_chain", + "HitEffect": "Mega Tesla Hit", + "ExportNameDamaged": "destroyedBuilding_3l_base_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "defense_tower_turret_base", + "AirTargets": true, + "GroundTargets": true, + "PickUpEffect": "Tesla Pickup", + "PlacingEffect": "Tesla Placing", + "StrengthWeight": 1744, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "10": { + "BuildingLevel": 10, + "TID": "TID_BUILDING_MEGA_TESLA", + "InfoTID": "TID_MEGA_TESLA_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "mega_tesla_lvl10", + "ExportNameConstruction": "tower_turret_const", + "BuildTimeD": 12, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 5800000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 2400, + "RegenTime": 1, + "AttackRange": 750, + "AttackSpeed": 4000, + "Damage": 896, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "MegaTesla Attack_1", + "ChainAttackDistance": 300, + "ChainAttackMaxTargets": 2, + "ChainAttackDelay": 128, + "ChainAttackDamageReductionPercent": 40, + "AttackEffectAlt": "MegaTesla Attack_1_chain", + "HitEffect": "Mega Tesla Hit", + "ExportNameDamaged": "destroyedBuilding_3l_base_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "defense_tower_turret_base", + "AirTargets": true, + "GroundTargets": true, + "PickUpEffect": "Tesla Pickup", + "PlacingEffect": "Tesla Placing", + "StrengthWeight": 1770, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + } + }, + "Battle Machine": { + "1": { + "BuildingLevel": 1, + "TID": "TID_WARMACHINE", + "InfoTID": "TID_WARMACHINE_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "heroaltar_warmachine_lvl1", + "ExportNameConstruction": "air_mortar_const", + "ExportNameLocked": "heroaltar_warmachine_broken", + "BuildTimeD": 0, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 900000, + "TownHallLevel": 5, + "CapitalHallLevel": 5, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "heroaltar_barbarian_king_upg", + "LevelRequirementTID": "TID_REQUIRED_BUILDERS_HALL_LEVEL", + "Hitpoints": 250, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "heroaltar_base", + "PickUpEffect": "Hero Altar Pickup", + "PlacingEffect": "Hero Altar Place", + "Locked": true, + "StartingHomeCount": 1, + "IsHeroBarrack": true, + "HeroType": "Warmachine", + "VillageType": 1, + "HintPriority": 700, + "Stage": 1 + } + }, + "Air Bombs": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_AIR_DEFENSE2", + "InfoTID": "TID_AIR_DEFENSE2_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "airDefence_factory_lvl1", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 0, + "BuildTimeH": 6, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 300000, + "TownHallLevel": 4, + "CapitalHallLevel": 4, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 1000, + "RegenTime": 1, + "AttackRange": 750, + "AttackSpeed": 3000, + "Damage": 270, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Air Defence Barrel Attack", + "HitEffect": "Air Defense Barrel Hit", + "Projectile": "AirDefenceBalloon_1", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "airDefence_factory_lvl1", + "AirTargets": true, + "GroundTargets": false, + "DamageRadius": 150, + "PushBack": 50, + "PickUpEffect": "Air Defence Pickup", + "PlacingEffect": "Air Defence Placing", + "StrengthWeight": 556, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "AirDefense2" + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_AIR_DEFENSE2", + "InfoTID": "TID_AIR_DEFENSE2_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "airDefence_factory_lvl2", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 0, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 320000, + "TownHallLevel": 4, + "CapitalHallLevel": 4, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 1100, + "RegenTime": 1, + "AttackRange": 750, + "AttackSpeed": 3000, + "Damage": 297, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Air Defence Barrel Attack", + "HitEffect": "Air Defense Barrel Hit", + "Projectile": "AirDefenceBalloon_2", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "airDefence_factory_lvl2", + "AirTargets": true, + "GroundTargets": false, + "DamageRadius": 150, + "PushBack": 50, + "PickUpEffect": "Air Defence Pickup", + "PlacingEffect": "Air Defence Placing", + "StrengthWeight": 583, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "AirDefense2" + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_AIR_DEFENSE2", + "InfoTID": "TID_AIR_DEFENSE2_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "airDefence_factory_lvl3", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 1, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 340000, + "TownHallLevel": 4, + "CapitalHallLevel": 4, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 1250, + "RegenTime": 1, + "AttackRange": 750, + "AttackSpeed": 3000, + "Damage": 327, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Air Defence Barrel Attack", + "HitEffect": "Air Defense Barrel Hit", + "Projectile": "AirDefenceBalloon_3", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "airDefence_factory_lvl3", + "AirTargets": true, + "GroundTargets": false, + "DamageRadius": 150, + "PushBack": 50, + "PickUpEffect": "Air Defence Pickup", + "PlacingEffect": "Air Defence Placing", + "StrengthWeight": 612, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "AirDefense2" + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_AIR_DEFENSE2", + "InfoTID": "TID_AIR_DEFENSE2_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "airDefence_factory_lvl4", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 2, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 360000, + "TownHallLevel": 4, + "CapitalHallLevel": 4, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 1400, + "RegenTime": 1, + "AttackRange": 750, + "AttackSpeed": 3000, + "Damage": 359, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Air Defence Barrel Attack", + "HitEffect": "Air Defense Barrel Hit", + "Projectile": "AirDefenceBalloon_3", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "airDefence_factory_lvl4", + "AirTargets": true, + "GroundTargets": false, + "DamageRadius": 150, + "PushBack": 50, + "PickUpEffect": "Air Defence Pickup", + "PlacingEffect": "Air Defence Placing", + "StrengthWeight": 642, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "AirDefense2" + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_AIR_DEFENSE2", + "InfoTID": "TID_AIR_DEFENSE2_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "airDefence_factory_lvl5", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 3, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 1200000, + "TownHallLevel": 5, + "CapitalHallLevel": 5, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 1600, + "RegenTime": 1, + "AttackRange": 750, + "AttackSpeed": 3000, + "Damage": 395, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Air Defence Barrel Attack", + "HitEffect": "Air Defense Barrel Hit", + "Projectile": "AirDefenceBalloon_3", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "airDefence_factory_lvl5", + "AirTargets": true, + "GroundTargets": false, + "DamageRadius": 150, + "PushBack": 50, + "PickUpEffect": "Air Defence Pickup", + "PlacingEffect": "Air Defence Placing", + "StrengthWeight": 674, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "AirDefense2" + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_BUILDING_AIR_DEFENSE2", + "InfoTID": "TID_AIR_DEFENSE2_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "airDefence_factory_lvl6", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 5, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 1500000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 1850, + "RegenTime": 1, + "AttackRange": 750, + "AttackSpeed": 3000, + "Damage": 435, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Air Defence Barrel Attack", + "HitEffect": "Air Defense Barrel Hit", + "Projectile": "AirDefenceBalloon_3", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "airDefence_factory_lvl6", + "AirTargets": true, + "GroundTargets": false, + "DamageRadius": 150, + "PushBack": 50, + "PickUpEffect": "Air Defence Pickup", + "PlacingEffect": "Air Defence Placing", + "StrengthWeight": 707, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "AirDefense2" + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_BUILDING_AIR_DEFENSE2", + "InfoTID": "TID_AIR_DEFENSE2_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "airDefence_factory_lvl7", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 7, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 2400000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 2100, + "RegenTime": 1, + "AttackRange": 750, + "AttackSpeed": 3000, + "Damage": 478, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Air Defence Barrel Attack", + "HitEffect": "Air Defense Barrel Hit", + "Projectile": "AirDefenceBalloon_3", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "airDefence_factory_lvl7", + "AirTargets": true, + "GroundTargets": false, + "DamageRadius": 150, + "PushBack": 50, + "PickUpEffect": "Air Defence Pickup", + "PlacingEffect": "Air Defence Placing", + "StrengthWeight": 742, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "AirDefense2" + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_BUILDING_AIR_DEFENSE2", + "InfoTID": "TID_AIR_DEFENSE2_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "airDefence_factory_lvl8", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 8, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 3400000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 2350, + "RegenTime": 1, + "AttackRange": 750, + "AttackSpeed": 3000, + "Damage": 526, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Air Defence Barrel Attack", + "HitEffect": "Air Defense Barrel Hit", + "Projectile": "AirDefenceBalloon_4", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "airDefence_factory_lvl8", + "AirTargets": true, + "GroundTargets": false, + "DamageRadius": 150, + "PushBack": 50, + "PickUpEffect": "Air Defence Pickup", + "PlacingEffect": "Air Defence Placing", + "StrengthWeight": 779, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "AirDefense2" + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_BUILDING_AIR_DEFENSE2", + "InfoTID": "TID_AIR_DEFENSE2_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "airDefence_factory_lvl9", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 10, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 4400000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 2600, + "RegenTime": 1, + "AttackRange": 750, + "AttackSpeed": 3000, + "Damage": 579, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Air Defence Barrel Attack", + "HitEffect": "Air Defense Barrel Hit", + "Projectile": "AirDefenceBalloon_4", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "airDefence_factory_lvl8", + "AirTargets": true, + "GroundTargets": false, + "DamageRadius": 150, + "PushBack": 50, + "PickUpEffect": "Air Defence Pickup", + "PlacingEffect": "Air Defence Placing", + "StrengthWeight": 816, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "AirDefense2" + }, + "10": { + "BuildingLevel": 10, + "TID": "TID_BUILDING_AIR_DEFENSE2", + "InfoTID": "TID_AIR_DEFENSE2_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "airDefence_factory_lvl10", + "ExportNameConstruction": "air_mortar_const", + "BuildTimeD": 12, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 5400000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 2900, + "RegenTime": 1, + "AttackRange": 750, + "AttackSpeed": 3000, + "Damage": 637, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Air Defence Barrel Attack", + "HitEffect": "Air Defense Barrel Hit", + "Projectile": "AirDefenceBalloon_4", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "airDefence_factory_lvl8", + "AirTargets": true, + "GroundTargets": false, + "DamageRadius": 150, + "PushBack": 50, + "PickUpEffect": "Air Defence Pickup", + "PlacingEffect": "Air Defence Placing", + "StrengthWeight": 850, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "AirDefense2" + } + }, + "Crusher": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_CRUSHER", + "InfoTID": "TID_BUILDING_CRUSHER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "Crusher_lvl1", + "ExportNameConstruction": "darkelixir_storage_const", + "BuildTimeD": 0, + "BuildTimeH": 2, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 120000, + "TownHallLevel": 3, + "CapitalHallLevel": 3, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 1000, + "RegenTime": 1, + "AttackRange": 230, + "AttackSpeed": 3500, + "CoolDownOverride": 2200, + "Damage": 440, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "CrusherAttack", + "HitEffect": "Generic Hit", + "ExportNameDamaged": "destroyedBuilding_3m_base_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "basic_cannon_lvl1_base", + "AirTargets": false, + "GroundTargets": true, + "DamageRadius": 280, + "PushBack": 50, + "PickUpEffect": "Basic Turret Pickup", + "PlacingEffect": "Basic Turret Placing", + "StrengthWeight": 360, + "VillageType": 1, + "SelfAsAoeCenter": true, + "HintPriority": 150, + "PreviewScenario": "Crusher" + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_CRUSHER", + "InfoTID": "TID_BUILDING_CRUSHER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "Crusher_lvl2", + "ExportNameConstruction": "darkelixir_storage_const", + "BuildTimeD": 0, + "BuildTimeH": 5, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 180000, + "TownHallLevel": 3, + "CapitalHallLevel": 3, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 1100, + "RegenTime": 1, + "AttackRange": 230, + "AttackSpeed": 3500, + "CoolDownOverride": 2200, + "Damage": 484, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "CrusherAttack", + "HitEffect": "Generic Hit", + "ExportNameDamaged": "destroyedBuilding_3m_base_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "basic_cannon_lvl1_base", + "AirTargets": false, + "GroundTargets": true, + "DamageRadius": 280, + "PushBack": 50, + "PickUpEffect": "Basic Turret Pickup", + "PlacingEffect": "Basic Turret Placing", + "StrengthWeight": 376, + "VillageType": 1, + "SelfAsAoeCenter": true, + "HintPriority": 150, + "PreviewScenario": "Crusher" + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_CRUSHER", + "InfoTID": "TID_BUILDING_CRUSHER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "Crusher_lvl3", + "ExportNameConstruction": "darkelixir_storage_const", + "BuildTimeD": 0, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 220000, + "TownHallLevel": 3, + "CapitalHallLevel": 3, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 1250, + "RegenTime": 1, + "AttackRange": 230, + "AttackSpeed": 3500, + "CoolDownOverride": 2200, + "Damage": 532, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "CrusherAttack", + "HitEffect": "Generic Hit", + "ExportNameDamaged": "destroyedBuilding_3m_base_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "basic_cannon_lvl1_base", + "AirTargets": false, + "GroundTargets": true, + "DamageRadius": 280, + "PushBack": 50, + "PickUpEffect": "Basic Turret Pickup", + "PlacingEffect": "Basic Turret Placing", + "StrengthWeight": 392, + "VillageType": 1, + "SelfAsAoeCenter": true, + "HintPriority": 150, + "PreviewScenario": "Crusher" + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_CRUSHER", + "InfoTID": "TID_BUILDING_CRUSHER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "Crusher_lvl4", + "ExportNameConstruction": "darkelixir_storage_const", + "BuildTimeD": 1, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 350000, + "TownHallLevel": 4, + "CapitalHallLevel": 4, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 1400, + "RegenTime": 1, + "AttackRange": 230, + "AttackSpeed": 3500, + "CoolDownOverride": 2200, + "Damage": 586, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "CrusherAttack", + "HitEffect": "Generic Hit", + "ExportNameDamaged": "destroyedBuilding_3m_base_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "basic_cannon_lvl1_base", + "AirTargets": false, + "GroundTargets": true, + "DamageRadius": 280, + "PushBack": 50, + "PickUpEffect": "Basic Turret Pickup", + "PlacingEffect": "Basic Turret Placing", + "StrengthWeight": 408, + "VillageType": 1, + "SelfAsAoeCenter": true, + "HintPriority": 150, + "PreviewScenario": "Crusher" + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_CRUSHER", + "InfoTID": "TID_BUILDING_CRUSHER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "Crusher_lvl5", + "ExportNameConstruction": "darkelixir_storage_const", + "BuildTimeD": 2, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 1200000, + "TownHallLevel": 5, + "CapitalHallLevel": 5, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 1600, + "RegenTime": 1, + "AttackRange": 230, + "AttackSpeed": 3500, + "CoolDownOverride": 2200, + "Damage": 644, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "CrusherAttack", + "HitEffect": "Generic Hit", + "ExportNameDamaged": "destroyedBuilding_3m_base_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "basic_cannon_lvl1_base", + "AirTargets": false, + "GroundTargets": true, + "DamageRadius": 280, + "PushBack": 50, + "PickUpEffect": "Basic Turret Pickup", + "PlacingEffect": "Basic Turret Placing", + "StrengthWeight": 428, + "VillageType": 1, + "SelfAsAoeCenter": true, + "HintPriority": 150, + "PreviewScenario": "Crusher" + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_BUILDING_CRUSHER", + "InfoTID": "TID_BUILDING_CRUSHER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "Crusher_lvl6", + "ExportNameConstruction": "darkelixir_storage_const", + "BuildTimeD": 4, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 1500000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 1850, + "RegenTime": 1, + "AttackRange": 230, + "AttackSpeed": 3500, + "CoolDownOverride": 2200, + "Damage": 709, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "CrusherAttack", + "HitEffect": "Generic Hit", + "ExportNameDamaged": "destroyedBuilding_3m_base_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "basic_cannon_lvl1_base", + "AirTargets": false, + "GroundTargets": true, + "DamageRadius": 280, + "PushBack": 50, + "PickUpEffect": "Basic Turret Pickup", + "PlacingEffect": "Basic Turret Placing", + "StrengthWeight": 448, + "VillageType": 1, + "SelfAsAoeCenter": true, + "HintPriority": 150, + "PreviewScenario": "Crusher" + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_BUILDING_CRUSHER", + "InfoTID": "TID_BUILDING_CRUSHER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "Crusher_lvl7", + "ExportNameConstruction": "darkelixir_storage_const", + "BuildTimeD": 6, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 2400000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 2100, + "RegenTime": 1, + "AttackRange": 230, + "AttackSpeed": 3500, + "CoolDownOverride": 2200, + "Damage": 779, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "CrusherAttack", + "HitEffect": "Generic Hit", + "ExportNameDamaged": "destroyedBuilding_3m_base_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "basic_cannon_lvl1_base", + "AirTargets": false, + "GroundTargets": true, + "DamageRadius": 280, + "PushBack": 50, + "PickUpEffect": "Basic Turret Pickup", + "PlacingEffect": "Basic Turret Placing", + "StrengthWeight": 468, + "VillageType": 1, + "SelfAsAoeCenter": true, + "HintPriority": 150, + "PreviewScenario": "Crusher" + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_BUILDING_CRUSHER", + "InfoTID": "TID_BUILDING_CRUSHER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "Crusher_lvl8", + "ExportNameConstruction": "darkelixir_storage_const", + "BuildTimeD": 8, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 3400000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 2350, + "RegenTime": 1, + "AttackRange": 230, + "AttackSpeed": 3500, + "CoolDownOverride": 2200, + "Damage": 857, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "CrusherAttack", + "HitEffect": "Generic Hit", + "ExportNameDamaged": "destroyedBuilding_3m_base_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "basic_cannon_lvl1_base", + "AirTargets": false, + "GroundTargets": true, + "DamageRadius": 280, + "PushBack": 50, + "PickUpEffect": "Basic Turret Pickup", + "PlacingEffect": "Basic Turret Placing", + "StrengthWeight": 488, + "VillageType": 1, + "SelfAsAoeCenter": true, + "HintPriority": 150, + "PreviewScenario": "Crusher" + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_BUILDING_CRUSHER", + "InfoTID": "TID_BUILDING_CRUSHER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "Crusher_lvl9", + "ExportNameConstruction": "darkelixir_storage_const", + "BuildTimeD": 10, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 4400000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 2600, + "RegenTime": 1, + "AttackRange": 230, + "AttackSpeed": 3500, + "CoolDownOverride": 2200, + "Damage": 943, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "CrusherAttack", + "HitEffect": "Generic Hit", + "ExportNameDamaged": "destroyedBuilding_3m_base_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "basic_cannon_lvl1_base", + "AirTargets": false, + "GroundTargets": true, + "DamageRadius": 280, + "PushBack": 50, + "PickUpEffect": "Basic Turret Pickup", + "PlacingEffect": "Basic Turret Placing", + "StrengthWeight": 508, + "VillageType": 1, + "SelfAsAoeCenter": true, + "HintPriority": 150, + "PreviewScenario": "Crusher" + }, + "10": { + "BuildingLevel": 10, + "TID": "TID_BUILDING_CRUSHER", + "InfoTID": "TID_BUILDING_CRUSHER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "Crusher_lvl10", + "ExportNameConstruction": "darkelixir_storage_const", + "BuildTimeD": 12, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 5400000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 2900, + "RegenTime": 1, + "AttackRange": 230, + "AttackSpeed": 3500, + "CoolDownOverride": 2200, + "Damage": 1037, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "CrusherAttack", + "HitEffect": "Generic Hit", + "ExportNameDamaged": "destroyedBuilding_3m_base_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "basic_cannon_lvl1_base", + "AirTargets": false, + "GroundTargets": true, + "DamageRadius": 280, + "PushBack": 50, + "PickUpEffect": "Basic Turret Pickup", + "PlacingEffect": "Basic Turret Placing", + "StrengthWeight": 528, + "VillageType": 1, + "SelfAsAoeCenter": true, + "HintPriority": 150, + "PreviewScenario": "Crusher" + } + }, + "Roaster": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_FLAMER", + "InfoTID": "TID_FLAMER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "Flamer_lvl1", + "ExportNameConstruction": "darkelixir_storage_const", + "BuildTimeD": 1, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 1000000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 800, + "RegenTime": 1, + "AttackRange": 700, + "AttackSpeed": 1800, + "CoolDownOverride": 1500, + "Damage": 15, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Flamer_attack", + "HitEffect": "Flamer_hit1-3", + "Projectile": "Flamer_projectile1-3", + "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "shadow_flamer_lvl1", + "AirTargets": true, + "GroundTargets": true, + "DamageRadius": 120, + "PickUpEffect": "Double Cannon Pickup", + "PlacingEffect": "Double Cannon Placing", + "StrengthWeight": 7200, + "BurstCount": 15, + "BurstDelay": 140, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_FLAMER", + "InfoTID": "TID_FLAMER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "Flamer_lvl2", + "ExportNameConstruction": "darkelixir_storage_const", + "BuildTimeD": 2, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 1200000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 950, + "RegenTime": 1, + "AttackRange": 700, + "AttackSpeed": 1800, + "CoolDownOverride": 1500, + "Damage": 17, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Flamer_attack", + "HitEffect": "Flamer_hit1-3", + "Projectile": "Flamer_projectile1-3", + "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "shadow_flamer_lvl2", + "AirTargets": true, + "GroundTargets": true, + "DamageRadius": 120, + "PickUpEffect": "Double Cannon Pickup", + "PlacingEffect": "Double Cannon Placing", + "StrengthWeight": 7344, + "BurstCount": 15, + "BurstDelay": 140, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_FLAMER", + "InfoTID": "TID_FLAMER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "Flamer_lvl3", + "ExportNameConstruction": "darkelixir_storage_const", + "BuildTimeD": 3, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 1400000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 1100, + "RegenTime": 1, + "AttackRange": 700, + "AttackSpeed": 1800, + "CoolDownOverride": 1500, + "Damage": 19, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Flamer_attack", + "HitEffect": "Flamer_hit1-3", + "Projectile": "Flamer_projectile1-3", + "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "shadow_flamer_lvl3", + "AirTargets": true, + "GroundTargets": true, + "DamageRadius": 120, + "PickUpEffect": "Double Cannon Pickup", + "PlacingEffect": "Double Cannon Placing", + "StrengthWeight": 7490, + "BurstCount": 15, + "BurstDelay": 140, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_FLAMER", + "InfoTID": "TID_FLAMER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "Flamer_lvl4", + "ExportNameConstruction": "darkelixir_storage_const", + "BuildTimeD": 4, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 1500000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 1300, + "RegenTime": 1, + "AttackRange": 700, + "AttackSpeed": 1800, + "CoolDownOverride": 1500, + "Damage": 21, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Flamer_attack", + "HitEffect": "Flamer_hit4-6", + "Projectile": "Flamer_projectile4-6", + "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "shadow_flamer_lvl4", + "AirTargets": true, + "GroundTargets": true, + "DamageRadius": 120, + "PickUpEffect": "Double Cannon Pickup", + "PlacingEffect": "Double Cannon Placing", + "StrengthWeight": 7639, + "BurstCount": 15, + "BurstDelay": 140, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_FLAMER", + "InfoTID": "TID_FLAMER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "Flamer_lvl5", + "ExportNameConstruction": "darkelixir_storage_const", + "BuildTimeD": 5, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 1600000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 1500, + "RegenTime": 1, + "AttackRange": 700, + "AttackSpeed": 1800, + "CoolDownOverride": 1500, + "Damage": 23, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Flamer_attack", + "HitEffect": "Flamer_hit4-6", + "Projectile": "Flamer_projectile4-6", + "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "shadow_flamer_lvl5", + "AirTargets": true, + "GroundTargets": true, + "DamageRadius": 120, + "PickUpEffect": "Double Cannon Pickup", + "PlacingEffect": "Double Cannon Placing", + "StrengthWeight": 7791, + "BurstCount": 15, + "BurstDelay": 140, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_BUILDING_FLAMER", + "InfoTID": "TID_FLAMER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "Flamer_lvl6", + "ExportNameConstruction": "darkelixir_storage_const", + "BuildTimeD": 6, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 1700000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 1700, + "RegenTime": 1, + "AttackRange": 700, + "AttackSpeed": 1800, + "CoolDownOverride": 1500, + "Damage": 25, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Flamer_attack", + "HitEffect": "Flamer_hit4-6", + "Projectile": "Flamer_projectile4-6", + "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "shadow_flamer_lvl6", + "AirTargets": true, + "GroundTargets": true, + "DamageRadius": 120, + "PickUpEffect": "Double Cannon Pickup", + "PlacingEffect": "Double Cannon Placing", + "StrengthWeight": 7946, + "BurstCount": 15, + "BurstDelay": 140, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_BUILDING_FLAMER", + "InfoTID": "TID_FLAMER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "Flamer_lvl7", + "ExportNameConstruction": "darkelixir_storage_const", + "BuildTimeD": 8, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 2600000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 1900, + "RegenTime": 1, + "AttackRange": 700, + "AttackSpeed": 1800, + "CoolDownOverride": 1500, + "Damage": 27, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Flamer_attack", + "HitEffect": "Flamer_hit7-8", + "Projectile": "Flamer_projectile7-8", + "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "shadow_flamer_lvl7", + "AirTargets": true, + "GroundTargets": true, + "DamageRadius": 120, + "PickUpEffect": "Double Cannon Pickup", + "PlacingEffect": "Double Cannon Placing", + "StrengthWeight": 8104, + "BurstCount": 15, + "BurstDelay": 140, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_BUILDING_FLAMER", + "InfoTID": "TID_FLAMER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "Flamer_lvl8", + "ExportNameConstruction": "darkelixir_storage_const", + "BuildTimeD": 10, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 3600000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 2100, + "RegenTime": 1, + "AttackRange": 700, + "AttackSpeed": 1800, + "CoolDownOverride": 1500, + "Damage": 30, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Flamer_attack", + "HitEffect": "Flamer_hit7-8", + "Projectile": "Flamer_projectile7-8", + "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "shadow_flamer_lvl8", + "AirTargets": true, + "GroundTargets": true, + "DamageRadius": 120, + "PickUpEffect": "Double Cannon Pickup", + "PlacingEffect": "Double Cannon Placing", + "StrengthWeight": 8266, + "BurstCount": 15, + "BurstDelay": 140, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_BUILDING_FLAMER", + "InfoTID": "TID_FLAMER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "Flamer_lvl9", + "ExportNameConstruction": "darkelixir_storage_const", + "BuildTimeD": 11, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 4600000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 2350, + "RegenTime": 1, + "AttackRange": 700, + "AttackSpeed": 1800, + "CoolDownOverride": 1500, + "Damage": 33, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Flamer_attack", + "HitEffect": "Flamer_hit7-8", + "Projectile": "Flamer_projectile7-8", + "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "shadow_flamer_lvl8", + "AirTargets": true, + "GroundTargets": true, + "DamageRadius": 120, + "PickUpEffect": "Double Cannon Pickup", + "PlacingEffect": "Double Cannon Placing", + "StrengthWeight": 8432, + "BurstCount": 15, + "BurstDelay": 140, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "10": { + "BuildingLevel": 10, + "TID": "TID_BUILDING_FLAMER", + "InfoTID": "TID_FLAMER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "Flamer_lvl10", + "ExportNameConstruction": "darkelixir_storage_const", + "BuildTimeD": 12, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 5600000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "Hitpoints": 2600, + "RegenTime": 1, + "AttackRange": 700, + "AttackSpeed": 1800, + "CoolDownOverride": 1500, + "Damage": 36, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Flamer_attack", + "HitEffect": "Flamer_hit7-8", + "Projectile": "Flamer_projectile7-8", + "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "shadow_flamer_lvl8", + "AirTargets": true, + "GroundTargets": true, + "DamageRadius": 120, + "PickUpEffect": "Double Cannon Pickup", + "PlacingEffect": "Double Cannon Placing", + "StrengthWeight": 8600, + "BurstCount": 15, + "BurstDelay": 140, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + } + }, + "Giant Cannon": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_GIANT_CANNON", + "InfoTID": "TID_GIANT_CANNON_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "megaCannon_lvl1", + "ExportNameConstruction": "tower_turret_const", + "BuildTimeD": 1, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 2000000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "goldmine_upg", + "Hitpoints": 700, + "RegenTime": 1, + "AttackRange": 950, + "AttackSpeed": 5000, + "Damage": 205, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Giant Cannon Attack", + "HitEffect": "Generic Hit", + "Projectile": "GiantCannonball1", + "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "basic_cannon_lvl9_base", + "AirTargets": false, + "GroundTargets": true, + "PickUpEffect": "Basic Turret Pickup", + "PlacingEffect": "Basic Turret Placing", + "AnimateTurret": true, + "StrengthWeight": 4200, + "PenetratingProjectile": true, + "PenetratingRadius": 100, + "PenetratingExtraRange": 4800, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_GIANT_CANNON", + "InfoTID": "TID_GIANT_CANNON_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "megaCannon_lvl2", + "ExportNameConstruction": "tower_turret_const", + "BuildTimeD": 2, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 2100000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "goldmine_upg", + "Hitpoints": 800, + "RegenTime": 1, + "AttackRange": 950, + "AttackSpeed": 5000, + "Damage": 226, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Giant Cannon Attack", + "HitEffect": "Generic Hit", + "Projectile": "GiantCannonball1", + "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "basic_cannon_lvl10_base", + "AirTargets": false, + "GroundTargets": true, + "PickUpEffect": "Basic Turret Pickup", + "PlacingEffect": "Basic Turret Placing", + "AnimateTurret": true, + "StrengthWeight": 4284, + "PenetratingProjectile": true, + "PenetratingRadius": 100, + "PenetratingExtraRange": 4800, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_GIANT_CANNON", + "InfoTID": "TID_GIANT_CANNON_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "megaCannon_lvl3", + "ExportNameConstruction": "tower_turret_const", + "BuildTimeD": 3, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 2200000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "goldmine_upg", + "Hitpoints": 950, + "RegenTime": 1, + "AttackRange": 950, + "AttackSpeed": 5000, + "Damage": 248, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Giant Cannon Attack", + "HitEffect": "Generic Hit", + "Projectile": "GiantCannonball1", + "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "basic_cannon_lvl11_base", + "AirTargets": false, + "GroundTargets": true, + "PickUpEffect": "Basic Turret Pickup", + "PlacingEffect": "Basic Turret Placing", + "AnimateTurret": true, + "StrengthWeight": 4369, + "PenetratingProjectile": true, + "PenetratingRadius": 100, + "PenetratingExtraRange": 4800, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_GIANT_CANNON", + "InfoTID": "TID_GIANT_CANNON_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "megaCannon_lvl4", + "ExportNameConstruction": "tower_turret_const", + "BuildTimeD": 4, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 2300000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "goldmine_upg", + "Hitpoints": 1100, + "RegenTime": 1, + "AttackRange": 950, + "AttackSpeed": 5000, + "Damage": 273, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Giant Cannon Attack", + "HitEffect": "Generic Hit", + "Projectile": "GiantCannonball1", + "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "basic_cannon_lvl11_base", + "AirTargets": false, + "GroundTargets": true, + "PickUpEffect": "Basic Turret Pickup", + "PlacingEffect": "Basic Turret Placing", + "AnimateTurret": true, + "StrengthWeight": 4456, + "PenetratingProjectile": true, + "PenetratingRadius": 100, + "PenetratingExtraRange": 4800, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_GIANT_CANNON", + "InfoTID": "TID_GIANT_CANNON_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "megaCannon_lvl5", + "ExportNameConstruction": "tower_turret_const", + "BuildTimeD": 5, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 2400000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "goldmine_upg", + "Hitpoints": 1300, + "RegenTime": 1, + "AttackRange": 950, + "AttackSpeed": 5000, + "Damage": 300, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Giant Cannon Attack", + "HitEffect": "Generic Hit", + "Projectile": "GiantCannonball1", + "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "basic_cannon_lvl11_base", + "AirTargets": false, + "GroundTargets": true, + "PickUpEffect": "Basic Turret Pickup", + "PlacingEffect": "Basic Turret Placing", + "AnimateTurret": true, + "StrengthWeight": 4545, + "PenetratingProjectile": true, + "PenetratingRadius": 100, + "PenetratingExtraRange": 4800, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_BUILDING_GIANT_CANNON", + "InfoTID": "TID_GIANT_CANNON_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "megaCannon_lvl6", + "ExportNameConstruction": "tower_turret_const", + "BuildTimeD": 6, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 2500000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "goldmine_upg", + "Hitpoints": 1500, + "RegenTime": 1, + "AttackRange": 950, + "AttackSpeed": 5000, + "Damage": 330, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Giant Cannon Attack", + "HitEffect": "Generic Hit", + "Projectile": "GiantCannonball1", + "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "basic_cannon_lvl11_base", + "AirTargets": false, + "GroundTargets": true, + "PickUpEffect": "Basic Turret Pickup", + "PlacingEffect": "Basic Turret Placing", + "AnimateTurret": true, + "StrengthWeight": 4635, + "PenetratingProjectile": true, + "PenetratingRadius": 100, + "PenetratingExtraRange": 4800, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_BUILDING_GIANT_CANNON", + "InfoTID": "TID_GIANT_CANNON_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "megaCannon_lvl7", + "ExportNameConstruction": "tower_turret_const", + "BuildTimeD": 8, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 2700000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "goldmine_upg", + "Hitpoints": 1700, + "RegenTime": 1, + "AttackRange": 950, + "AttackSpeed": 5000, + "Damage": 363, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Giant Cannon Attack", + "HitEffect": "Generic Hit", + "Projectile": "GiantCannonball1", + "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "basic_cannon_lvl11_base", + "AirTargets": false, + "GroundTargets": true, + "PickUpEffect": "Basic Turret Pickup", + "PlacingEffect": "Basic Turret Placing", + "AnimateTurret": true, + "StrengthWeight": 4727, + "PenetratingProjectile": true, + "PenetratingRadius": 100, + "PenetratingExtraRange": 4800, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_BUILDING_GIANT_CANNON", + "InfoTID": "TID_GIANT_CANNON_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "megaCannon_lvl8", + "ExportNameConstruction": "tower_turret_const", + "BuildTimeD": 10, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 3800000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "Hitpoints": 1900, + "RegenTime": 1, + "AttackRange": 950, + "AttackSpeed": 5000, + "Damage": 399, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Giant Cannon Attack", + "HitEffect": "Generic Hit", + "Projectile": "GiantCannonball1", + "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "basic_cannon_lvl11_base", + "AirTargets": false, + "GroundTargets": true, + "PickUpEffect": "Basic Turret Pickup", + "PlacingEffect": "Basic Turret Placing", + "AnimateTurret": true, + "StrengthWeight": 4821, + "PenetratingProjectile": true, + "PenetratingRadius": 100, + "PenetratingExtraRange": 4800, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_BUILDING_GIANT_CANNON", + "InfoTID": "TID_GIANT_CANNON_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "megaCannon_lvl9", + "ExportNameConstruction": "tower_turret_const", + "BuildTimeD": 11, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 4700000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "Hitpoints": 2150, + "RegenTime": 1, + "AttackRange": 950, + "AttackSpeed": 5000, + "Damage": 439, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Giant Cannon Attack", + "HitEffect": "Generic Hit", + "Projectile": "GiantCannonball1", + "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "basic_cannon_lvl11_base", + "AirTargets": false, + "GroundTargets": true, + "PickUpEffect": "Basic Turret Pickup", + "PlacingEffect": "Basic Turret Placing", + "AnimateTurret": true, + "StrengthWeight": 4821, + "PenetratingProjectile": true, + "PenetratingRadius": 100, + "PenetratingExtraRange": 4800, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + }, + "10": { + "BuildingLevel": 10, + "TID": "TID_BUILDING_GIANT_CANNON", + "InfoTID": "TID_GIANT_CANNON_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "megaCannon_lvl10", + "ExportNameConstruction": "tower_turret_const", + "BuildTimeD": 12, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 5700000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "Hitpoints": 2400, + "RegenTime": 1, + "AttackRange": 950, + "AttackSpeed": 5000, + "Damage": 483, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Giant Cannon Attack", + "HitEffect": "Generic Hit", + "Projectile": "GiantCannonball1", + "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "basic_cannon_lvl11_base", + "AirTargets": false, + "GroundTargets": true, + "PickUpEffect": "Basic Turret Pickup", + "PlacingEffect": "Basic Turret Placing", + "AnimateTurret": true, + "StrengthWeight": 4900, + "PenetratingProjectile": true, + "PenetratingRadius": 100, + "PenetratingExtraRange": 4800, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "Defense2" + } + }, + "Gem Mine": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_GEM_MINE", + "InfoTID": "TID_GEM_MINE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings2.sc", + "ExportName": "gem_mine_lvl1", + "ExportNameConstruction": "goldmine_const", + "ExportNameLocked": "gem_mine_broken", + "BuildTimeD": 0, + "BuildTimeH": 1, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 120000, + "TownHallLevel": 3, + "CapitalHallLevel": 3, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "goldmine_upg", + "ProducesResource": "Diamonds", + "ResourcePer100Hours": 9, + "ResourceMax": 10, + "ResourceIconLimit": 1, + "Hitpoints": 300, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "goldmine_base", + "PickUpEffect": "Gold Mine Pickup", + "PlacingEffect": "Gold Mine Placing", + "Locked": true, + "StartingHomeCount": 1, + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 100, + "Stage": 1 + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_GEM_MINE", + "InfoTID": "TID_GEM_MINE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings2.sc", + "ExportName": "gem_mine_lvl2", + "ExportNameConstruction": "goldmine_const", + "ExportNameLocked": "gem_mine_broken", + "BuildTimeD": 0, + "BuildTimeH": 2, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 180000, + "TownHallLevel": 3, + "CapitalHallLevel": 3, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "goldmine_upg", + "ProducesResource": "Diamonds", + "ResourcePer100Hours": 10, + "ResourceMax": 11, + "ResourceIconLimit": 1, + "Hitpoints": 350, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "goldmine_base", + "PickUpEffect": "Gold Mine Pickup", + "PlacingEffect": "Gold Mine Placing", + "Locked": true, + "StartingHomeCount": 1, + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 100, + "Stage": 1 + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_GEM_MINE", + "InfoTID": "TID_GEM_MINE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings2.sc", + "ExportName": "gem_mine_lvl3", + "ExportNameConstruction": "goldmine_const", + "ExportNameLocked": "gem_mine_broken", + "BuildTimeD": 0, + "BuildTimeH": 6, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 240000, + "TownHallLevel": 3, + "CapitalHallLevel": 3, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "goldmine_upg", + "ProducesResource": "Diamonds", + "ResourcePer100Hours": 11, + "ResourceMax": 12, + "ResourceIconLimit": 1, + "Hitpoints": 400, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "goldmine_base", + "PickUpEffect": "Gold Mine Pickup", + "PlacingEffect": "Gold Mine Placing", + "Locked": true, + "StartingHomeCount": 1, + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 100, + "Stage": 1 + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_GEM_MINE", + "InfoTID": "TID_GEM_MINE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings2.sc", + "ExportName": "gem_mine_lvl4", + "ExportNameConstruction": "goldmine_const", + "ExportNameLocked": "gem_mine_broken", + "BuildTimeD": 0, + "BuildTimeH": 8, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 450000, + "TownHallLevel": 4, + "CapitalHallLevel": 4, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "goldmine_upg", + "ProducesResource": "Diamonds", + "ResourcePer100Hours": 12, + "ResourceMax": 13, + "ResourceIconLimit": 1, + "Hitpoints": 460, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "goldmine_base", + "PickUpEffect": "Gold Mine Pickup", + "PlacingEffect": "Gold Mine Placing", + "Locked": true, + "StartingHomeCount": 1, + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 100, + "Stage": 1 + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_GEM_MINE", + "InfoTID": "TID_GEM_MINE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings2.sc", + "ExportName": "gem_mine_lvl5", + "ExportNameConstruction": "goldmine_const", + "ExportNameLocked": "gem_mine_broken", + "BuildTimeD": 0, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 1000000, + "TownHallLevel": 5, + "CapitalHallLevel": 5, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "goldmine_upg", + "ProducesResource": "Diamonds", + "ResourcePer100Hours": 13, + "ResourceMax": 14, + "ResourceIconLimit": 1, + "Hitpoints": 550, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "goldmine_base", + "PickUpEffect": "Gold Mine Pickup", + "PlacingEffect": "Gold Mine Placing", + "Locked": true, + "StartingHomeCount": 1, + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 100, + "Stage": 1 + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_BUILDING_GEM_MINE", + "InfoTID": "TID_GEM_MINE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings2.sc", + "ExportName": "gem_mine_lvl6", + "ExportNameConstruction": "goldmine_const", + "ExportNameLocked": "gem_mine_broken", + "BuildTimeD": 1, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 1500000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "goldmine_upg", + "ProducesResource": "Diamonds", + "ResourcePer100Hours": 14, + "ResourceMax": 15, + "ResourceIconLimit": 1, + "Hitpoints": 650, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "goldmine_base", + "PickUpEffect": "Gold Mine Pickup", + "PlacingEffect": "Gold Mine Placing", + "Locked": true, + "StartingHomeCount": 1, + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 100, + "Stage": 1 + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_BUILDING_GEM_MINE", + "InfoTID": "TID_GEM_MINE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings2.sc", + "ExportName": "gem_mine_lvl7", + "ExportNameConstruction": "goldmine_const", + "ExportNameLocked": "gem_mine_broken", + "BuildTimeD": 2, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 2500000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "goldmine_upg", + "ProducesResource": "Diamonds", + "ResourcePer100Hours": 16, + "ResourceMax": 16, + "ResourceIconLimit": 1, + "Hitpoints": 750, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "goldmine_base", + "PickUpEffect": "Gold Mine Pickup", + "PlacingEffect": "Gold Mine Placing", + "Locked": true, + "StartingHomeCount": 1, + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 100, + "Stage": 1 + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_BUILDING_GEM_MINE", + "InfoTID": "TID_GEM_MINE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings2.sc", + "ExportName": "gem_mine_lvl8", + "ExportNameConstruction": "goldmine_const", + "ExportNameLocked": "gem_mine_broken", + "BuildTimeD": 4, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 3500000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "goldmine_upg", + "ProducesResource": "Diamonds", + "ResourcePer100Hours": 18, + "ResourceMax": 17, + "ResourceIconLimit": 1, + "Hitpoints": 850, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "goldmine_base", + "PickUpEffect": "Gold Mine Pickup", + "PlacingEffect": "Gold Mine Placing", + "Locked": true, + "StartingHomeCount": 1, + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 100, + "Stage": 1 + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_BUILDING_GEM_MINE", + "InfoTID": "TID_GEM_MINE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings2.sc", + "ExportName": "gem_mine_lvl9", + "ExportNameConstruction": "goldmine_const", + "ExportNameLocked": "gem_mine_broken", + "BuildTimeD": 6, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 4500000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "goldmine_upg", + "ProducesResource": "Diamonds", + "ResourcePer100Hours": 20, + "ResourceMax": 18, + "ResourceIconLimit": 1, + "Hitpoints": 1000, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "goldmine_base", + "PickUpEffect": "Gold Mine Pickup", + "PlacingEffect": "Gold Mine Placing", + "Locked": true, + "StartingHomeCount": 1, + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 100, + "Stage": 1 + }, + "10": { + "BuildingLevel": 10, + "TID": "TID_BUILDING_GEM_MINE", + "InfoTID": "TID_GEM_MINE_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings2.sc", + "ExportName": "gem_mine_lvl10", + "ExportNameConstruction": "goldmine_const", + "ExportNameLocked": "gem_mine_broken", + "BuildTimeD": 8, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 5500000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "goldmine_upg", + "ProducesResource": "Diamonds", + "ResourcePer100Hours": 21, + "ResourceMax": 19, + "ResourceIconLimit": 1, + "Hitpoints": 1150, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "goldmine_base", + "PickUpEffect": "Gold Mine Pickup", + "PlacingEffect": "Gold Mine Placing", + "Locked": true, + "StartingHomeCount": 1, + "VillageType": 1, + "RedMul": 245, + "GreenMul": 245, + "BlueMul": 255, + "RedAdd": 0, + "GreenAdd": 0, + "BlueAdd": 10, + "HintPriority": 100, + "Stage": 1 + } + }, + "Workshop": { + "1": { + "BuildingLevel": 1, + "TID": "TID_SIEGE_WORKSHOP", + "InfoTID": "TID_SIEGE_WORKSHOP_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "siegeWorkshop_lvl1", + "ExportNameConstruction": "siegeWorkshop_const", + "BuildTimeD": 4, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 3000000, + "TownHallLevel": 12, + "CapitalHallLevel": 12, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "siegeWorkshop_upg", + "HousingSpaceSiege": 1, + "UnitProduction": 2, + "ProducesUnitsOfType": 3, + "LevelRequirementTID": "TID_REQUIRED_SIEGE_WORKSHOP_LEVEL", + "BoostCost": 5, + "Hitpoints": 1000, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_4siege_pit_rockwood_red", + "BuildingW": 4, + "BuildingH": 4, + "ExportNameBase": "siege_workshop_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 800, + "PreviewScenario": "NoCombatBuilding" + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_SIEGE_WORKSHOP", + "InfoTID": "TID_SIEGE_WORKSHOP_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "siegeWorkshop_lvl2", + "ExportNameConstruction": "siegeWorkshop_const", + "BuildTimeD": 5, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 5000000, + "TownHallLevel": 12, + "CapitalHallLevel": 12, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "siegeWorkshop_upg", + "HousingSpaceSiege": 2, + "UnitProduction": 3, + "ProducesUnitsOfType": 3, + "LevelRequirementTID": "TID_REQUIRED_SIEGE_WORKSHOP_LEVEL", + "BoostCost": 5, + "Hitpoints": 1100, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_4siege_pit_rockwood_red", + "BuildingW": 4, + "BuildingH": 4, + "ExportNameBase": "siege_workshop_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 800, + "PreviewScenario": "NoCombatBuilding" + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_SIEGE_WORKSHOP", + "InfoTID": "TID_SIEGE_WORKSHOP_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "siegeWorkshop_lvl3", + "ExportNameConstruction": "siegeWorkshop_const", + "BuildTimeD": 7, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 7000000, + "TownHallLevel": 12, + "CapitalHallLevel": 12, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "siegeWorkshop_upg", + "HousingSpaceSiege": 3, + "UnitProduction": 3, + "ProducesUnitsOfType": 3, + "LevelRequirementTID": "TID_REQUIRED_SIEGE_WORKSHOP_LEVEL", + "BoostCost": 5, + "Hitpoints": 1200, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_4siege_pit_rockwood_red", + "BuildingW": 4, + "BuildingH": 4, + "ExportNameBase": "siege_workshop_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 800, + "PreviewScenario": "NoCombatBuilding" + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_SIEGE_WORKSHOP", + "InfoTID": "TID_SIEGE_WORKSHOP_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "siegeWorkshop_lvl4", + "ExportNameConstruction": "siegeWorkshop_const", + "BuildTimeD": 10, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 9000000, + "TownHallLevel": 13, + "CapitalHallLevel": 13, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "siegeWorkshop_upg", + "HousingSpaceSiege": 3, + "UnitProduction": 3, + "ProducesUnitsOfType": 3, + "LevelRequirementTID": "TID_REQUIRED_SIEGE_WORKSHOP_LEVEL", + "BoostCost": 5, + "Hitpoints": 1300, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_4siege_pit_rockwood_red", + "BuildingW": 4, + "BuildingH": 4, + "ExportNameBase": "siege_workshop_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 800, + "PreviewScenario": "NoCombatBuilding" + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_SIEGE_WORKSHOP", + "InfoTID": "TID_SIEGE_WORKSHOP_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "siegeWorkshop_lvl5", + "ExportNameConstruction": "siegeWorkshop_const", + "BuildTimeD": 11, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 10000000, + "TownHallLevel": 13, + "CapitalHallLevel": 13, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "siegeWorkshop_upg", + "HousingSpaceSiege": 3, + "UnitProduction": 3, + "ProducesUnitsOfType": 3, + "LevelRequirementTID": "TID_REQUIRED_SIEGE_WORKSHOP_LEVEL", + "BoostCost": 5, + "Hitpoints": 1400, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_4siege_pit_rockwood_red", + "BuildingW": 4, + "BuildingH": 4, + "ExportNameBase": "siege_workshop_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 800, + "PreviewScenario": "NoCombatBuilding" + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_SIEGE_WORKSHOP", + "InfoTID": "TID_SIEGE_WORKSHOP_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "siegeWorkshop_lvl6", + "ExportNameConstruction": "siegeWorkshop_const", + "BuildTimeD": 13, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 14000000, + "TownHallLevel": 14, + "CapitalHallLevel": 14, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "siegeWorkshop_upg", + "HousingSpaceSiege": 3, + "UnitProduction": 3, + "ProducesUnitsOfType": 3, + "LevelRequirementTID": "TID_REQUIRED_SIEGE_WORKSHOP_LEVEL", + "BoostCost": 5, + "Hitpoints": 1500, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_4siege_pit_rockwood_red", + "BuildingW": 4, + "BuildingH": 4, + "ExportNameBase": "siege_workshop_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 800, + "PreviewScenario": "NoCombatBuilding" + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_SIEGE_WORKSHOP", + "InfoTID": "TID_SIEGE_WORKSHOP_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "siegeWorkshop_lvl7", + "ExportNameConstruction": "siegeWorkshop_const", + "BuildTimeD": 13, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 19000000, + "TownHallLevel": 15, + "CapitalHallLevel": 15, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "siegeWorkshop_upg", + "HousingSpaceSiege": 3, + "UnitProduction": 3, + "ProducesUnitsOfType": 3, + "LevelRequirementTID": "TID_REQUIRED_SIEGE_WORKSHOP_LEVEL", + "BoostCost": 5, + "Hitpoints": 1600, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_4siege_pit_rockwood_red", + "BuildingW": 4, + "BuildingH": 4, + "ExportNameBase": "siege_workshop_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 800, + "PreviewScenario": "NoCombatBuilding" + } + }, + "Goblin Castle": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_GOBLIN_CASTLE", + "InfoTID": "TID_BUILDING_GOBLIN_CASTLE", + "BuildingClass": "Npc", + "SWF": "sc/buildings.sc", + "ExportName": "goblin_clancastle_01", + "ExportNameConstruction": "generic_construction_state3", + "ExportNameLocked": "alliance_castle_lvl1_broken", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 10000, + "TownHallLevel": 1, + "CapitalHallLevel": 1, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredWarGold": 1000000, + "MaxStoredWarElixir": 1000000, + "MaxStoredWarDarkElixir": 10000, + "LootOnDestruction": true, + "Bunker": true, + "HousingSpace": 50, + "HousingSpaceAlt": 0, + "HousingSpaceSiege": 0, + "Hitpoints": 4000, + "RegenTime": 10, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "alliance_castle_lvl1_broken", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "alliance_castle_base", + "PickUpEffect": "Alliance Castle Pickup", + "PlacingEffect": "Alliance Castle Placing", + "Locked": true, + "StartingHomeCount": 1 + } + }, + "Foreboding Cave": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_DRAGON_CAVE", + "InfoTID": "TID_BUILDING_DRAGON_CAVE", + "BuildingClass": "Npc", + "SWF": "sc/buildings.sc", + "ExportName": "deco_dragoncave_01", + "ExportNameConstruction": "generic_construction_state3", + "ExportNameLocked": "alliance_castle_lvl1_broken", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 10000, + "TownHallLevel": 1, + "CapitalHallLevel": 1, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "alliance_castle_upg", + "MaxStoredWarGold": 1000000, + "MaxStoredWarElixir": 1000000, + "MaxStoredWarDarkElixir": 10000, + "LootOnDestruction": true, + "Bunker": true, + "HousingSpace": 50, + "HousingSpaceAlt": 0, + "HousingSpaceSiege": 0, + "Hitpoints": 25000, + "RegenTime": 10, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "alliance_castle_lvl1_broken", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "alliance_castle_base", + "PickUpEffect": "Alliance Castle Pickup", + "PlacingEffect": "Alliance Castle Placing", + "Locked": true, + "StartingHomeCount": 1 + } + }, + "Lava Launcher": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_LAVA_LAUNCHER", + "InfoTID": "TID_LAVA_LAUNCHER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "Lava_Launcher_lvl1", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 2, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 3000000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 500, + "RegenTime": 1, + "AttackRange": 1300, + "AttackSpeed": 7000, + "CoolDownOverride": 3000, + "Damage": 50, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Lavalauncher Attack", + "HitEffect": "Mortar Hit lvl8", + "Projectile": "Lava Ammo1", + "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "MinAttackRange": 600, + "DamageRadius": 300, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "AnimateTurret": true, + "StrengthWeight": 5720, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "DefenseLongRange2b" + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_LAVA_LAUNCHER", + "InfoTID": "TID_LAVA_LAUNCHER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "Lava_Launcher_lvl2", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 3, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 3100000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 575, + "RegenTime": 1, + "AttackRange": 1300, + "AttackSpeed": 7000, + "CoolDownOverride": 3000, + "Damage": 55, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Lavalauncher Attack", + "HitEffect": "Mortar Hit lvl8", + "Projectile": "Lava Ammo2", + "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "MinAttackRange": 600, + "DamageRadius": 300, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "AnimateTurret": true, + "StrengthWeight": 5940, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "DefenseLongRange2b" + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_LAVA_LAUNCHER", + "InfoTID": "TID_LAVA_LAUNCHER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "Lava_Launcher_lvl3", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 4, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 3200000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 660, + "RegenTime": 1, + "AttackRange": 1300, + "AttackSpeed": 7000, + "CoolDownOverride": 3000, + "Damage": 61, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Lavalauncher Attack", + "HitEffect": "Mortar Hit lvl8", + "Projectile": "Lava Ammo3", + "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "MinAttackRange": 600, + "DamageRadius": 300, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "AnimateTurret": true, + "StrengthWeight": 6160, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "DefenseLongRange2b" + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_LAVA_LAUNCHER", + "InfoTID": "TID_LAVA_LAUNCHER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "Lava_Launcher_lvl4", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 5, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 3400000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 760, + "RegenTime": 1, + "AttackRange": 1300, + "AttackSpeed": 7000, + "CoolDownOverride": 3000, + "Damage": 67, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Lavalauncher Attack", + "HitEffect": "Mortar Hit lvl8", + "Projectile": "Lava Ammo4", + "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "MinAttackRange": 600, + "DamageRadius": 300, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "AnimateTurret": true, + "StrengthWeight": 6400, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "DefenseLongRange2b" + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_LAVA_LAUNCHER", + "InfoTID": "TID_LAVA_LAUNCHER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "Lava_Launcher_lvl5", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 6, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 3700000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 875, + "RegenTime": 1, + "AttackRange": 1300, + "AttackSpeed": 7000, + "CoolDownOverride": 3000, + "Damage": 73, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Lavalauncher Attack", + "HitEffect": "Mortar Hit lvl8", + "Projectile": "Lava Ammo5", + "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "MinAttackRange": 600, + "DamageRadius": 300, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "AnimateTurret": true, + "StrengthWeight": 6640, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "DefenseLongRange2b" + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_BUILDING_LAVA_LAUNCHER", + "InfoTID": "TID_LAVA_LAUNCHER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "Lava_Launcher_lvl6", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 7, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 4000000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 1050, + "RegenTime": 1, + "AttackRange": 1300, + "AttackSpeed": 7000, + "CoolDownOverride": 3000, + "Damage": 81, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Lavalauncher Attack", + "HitEffect": "Mortar Hit lvl8", + "Projectile": "Lava Ammo6", + "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "MinAttackRange": 600, + "DamageRadius": 300, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "AnimateTurret": true, + "StrengthWeight": 6900, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "DefenseLongRange2b" + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_BUILDING_LAVA_LAUNCHER", + "InfoTID": "TID_LAVA_LAUNCHER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "Lava_Launcher_lvl7", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 8, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 4300000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 1250, + "RegenTime": 1, + "AttackRange": 1300, + "AttackSpeed": 7000, + "CoolDownOverride": 3000, + "Damage": 89, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Lavalauncher Attack", + "HitEffect": "Mortar Hit lvl8", + "Projectile": "Lava Ammo7", + "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "MinAttackRange": 600, + "DamageRadius": 300, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "AnimateTurret": true, + "StrengthWeight": 7160, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "DefenseLongRange2b" + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_BUILDING_LAVA_LAUNCHER", + "InfoTID": "TID_LAVA_LAUNCHER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "Lava_Launcher_lvl8", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 10, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 4600000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 1450, + "RegenTime": 1, + "AttackRange": 1300, + "AttackSpeed": 7000, + "CoolDownOverride": 3000, + "Damage": 97, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Lavalauncher Attack", + "HitEffect": "Mortar Hit lvl8", + "Projectile": "Lava Ammo8", + "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "MinAttackRange": 600, + "DamageRadius": 300, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "AnimateTurret": true, + "StrengthWeight": 7440, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "DefenseLongRange2b" + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_BUILDING_LAVA_LAUNCHER", + "InfoTID": "TID_LAVA_LAUNCHER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "Lava_Launcher_lvl9", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 11, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 4900000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 1650, + "RegenTime": 1, + "AttackRange": 1300, + "AttackSpeed": 7000, + "CoolDownOverride": 3000, + "Damage": 107, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Lavalauncher Attack", + "HitEffect": "Mortar Hit lvl8", + "Projectile": "Lava Ammo9", + "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "MinAttackRange": 600, + "DamageRadius": 300, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "AnimateTurret": true, + "StrengthWeight": 7700, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "DefenseLongRange2b" + }, + "10": { + "BuildingLevel": 10, + "TID": "TID_BUILDING_LAVA_LAUNCHER", + "InfoTID": "TID_LAVA_LAUNCHER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings2.sc", + "ExportName": "Lava_Launcher_lvl10", + "ExportNameConstruction": "mortar_const", + "BuildTimeD": 12, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 5900000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "mortar_upg", + "Hitpoints": 1850, + "RegenTime": 1, + "AttackRange": 1300, + "AttackSpeed": 7000, + "CoolDownOverride": 3000, + "Damage": 118, + "RandomHitPosition": true, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Lavalauncher Attack", + "HitEffect": "Mortar Hit lvl8", + "Projectile": "Lava Ammo10", + "ExportNameDamaged": "destroyedBuilding_3l_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "mortar_base", + "AirTargets": false, + "GroundTargets": true, + "MinAttackRange": 600, + "DamageRadius": 300, + "PickUpEffect": "Mortar Pickup", + "PlacingEffect": "Mortar Placing", + "AnimateTurret": true, + "StrengthWeight": 8000, + "VillageType": 1, + "HintPriority": 150, + "PreviewScenario": "DefenseLongRange2b" + } + }, + "B.O.B's Hut": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BOB_HUT", + "InfoTID": "TID_BOB_HUT_INFO", + "BuildingClass": "Worker2", + "SWF": "sc/buildings2.sc", + "ExportName": "new_builders_hut_arto_lvl5_a", + "ExportNameConstruction": "worker_building_const", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 0, + "TownHallLevel": 1, + "CapitalHallLevel": 1, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "worker_building_upg", + "BoostCost": 500, + "Hitpoints": 250, + "RegenTime": 20, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_darkbrown", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "worker_building_base", + "PickUpEffect": "Worker Building Pickup", + "PlacingEffect": "Worker Building Placing" + } + }, + "B.O.B Control": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BOB_UNLOCK_BUILDING", + "InfoTID": "TID_BOB_UNLOCK_BUILDING_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings2.sc", + "ExportName": "new_builders_hut_arto_lvl1", + "ExportNameConstruction": "worker_building_const", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 100000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "worker_building_upg", + "Hitpoints": 250, + "RegenTime": 20, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_darkbrown", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "worker_building_base", + "PickUpEffect": "Worker Building Pickup", + "PlacingEffect": "Worker Building Placing", + "VillageType": 1, + "HintPriority": 300, + "UpgradeTasks": "Arto Upgrade Tasks", + "UpgradeTasksRequired": 1, + "Stage": 2 + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BOB_UNLOCK_BUILDING", + "InfoTID": "TID_BOB_UNLOCK_BUILDING_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings2.sc", + "ExportName": "new_builders_hut_arto_lvl2", + "ExportNameConstruction": "worker_building_const", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 500000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "worker_building_upg", + "Hitpoints": 250, + "RegenTime": 20, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_darkbrown", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "worker_building_base", + "PickUpEffect": "Worker Building Pickup", + "PlacingEffect": "Worker Building Placing", + "VillageType": 1, + "HintPriority": 300, + "UpgradeTasks": "Arto Upgrade Tasks", + "UpgradeTasksRequired": 2, + "Stage": 2 + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BOB_UNLOCK_BUILDING", + "InfoTID": "TID_BOB_UNLOCK_BUILDING_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings2.sc", + "ExportName": "new_builders_hut_arto_lvl3", + "ExportNameConstruction": "worker_building_const", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 1000000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "worker_building_upg", + "Hitpoints": 250, + "RegenTime": 20, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_darkbrown", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "worker_building_base", + "PickUpEffect": "Worker Building Pickup", + "PlacingEffect": "Worker Building Placing", + "VillageType": 1, + "HintPriority": 300, + "UpgradeTasks": "Arto Upgrade Tasks", + "UpgradeTasksRequired": 3, + "Stage": 2 + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BOB_UNLOCK_BUILDING", + "InfoTID": "TID_BOB_UNLOCK_BUILDING_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings2.sc", + "ExportName": "new_builders_hut_arto_lvl4", + "ExportNameConstruction": "worker_building_const", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 2000000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "worker_building_upg", + "Hitpoints": 250, + "RegenTime": 20, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_darkbrown", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "worker_building_base", + "PickUpEffect": "Worker Building Pickup", + "PlacingEffect": "Worker Building Placing", + "VillageType": 1, + "HintPriority": 300, + "UpgradeTasks": "Arto Upgrade Tasks", + "UpgradeTasksRequired": 4, + "Stage": 2 + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BOB_UNLOCK_BUILDING", + "InfoTID": "TID_BOB_UNLOCK_BUILDING_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings2.sc", + "ExportName": "new_builders_hut_arto_lvl5", + "ExportNameConstruction": "worker_building_const", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 3000000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "worker_building_upg", + "Hitpoints": 250, + "RegenTime": 20, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_2s_pit_wood_darkbrown", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "worker_building_base", + "PickUpEffect": "Worker Building Pickup", + "PlacingEffect": "Worker Building Placing", + "VillageType": 1, + "HintPriority": 300, + "UpgradeTasks": "Arto Upgrade Tasks", + "Stage": 2 + } + }, + "Royal Champion": { + "1": { + "BuildingLevel": 1, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_ROYAL_CHAMPION_INFO", + "BuildingClass": "Army", + "ShopBuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "heroaltar_royal_champion_lvl1", + "ExportNameConstruction": "heroaltar_barbarian_king_const", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "DarkElixir", + "BuildCost": 50000, + "TownHallLevel": 13, + "CapitalHallLevel": 13, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "heroaltar_elder_upg", + "BoostCost": 5, + "Hitpoints": 250, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "heroaltar_base", + "PickUpEffect": "Hero Altar Pickup", + "PlacingEffect": "Hero Altar Place", + "IsHeroBarrack": true, + "HeroType": "Warrior Princess", + "HintPriority": 700 + } + }, + "Scattershot": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_SCATTERSHOT", + "InfoTID": "TID_BUILDING_SCATTERSHOT_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "ice_breaker_lvl1", + "ExportNameConstruction": "tower_turret_const", + "BuildTimeD": 10, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 11000000, + "TownHallLevel": 13, + "CapitalHallLevel": 13, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "ExportNameUpgradeAnim": "ice_breaker_lvl1_upgrade", + "Hitpoints": 3600, + "RegenTime": 20, + "AttackRange": 1000, + "AttackSpeed": 3228, + "CoolDownOverride": 1500, + "DPS": 125, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Ice Breaker Attack", + "Projectile": "Ice Breaker Ammo1", + "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "rapidfire_base", + "AirTargets": true, + "GroundTargets": true, + "AmmoCount": 90, + "AmmoResource": "Elixir", + "AmmoCost": 40000, + "MinAttackRange": 300, + "DamageRadius": 100, + "PickUpEffect": "Scattershot Pickup", + "PlacingEffect": "Scattershot Placing", + "StrengthWeight": 700, + "NewTargetAttackDelay": 2200, + "HintPriority": 150, + "AnimationActionFrame": 5, + "PreviewScenario": "DefenseLongRange3" + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_SCATTERSHOT", + "InfoTID": "TID_BUILDING_SCATTERSHOT_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "ice_breaker_lvl2", + "ExportNameConstruction": "tower_turret_const", + "BuildTimeD": 11, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 12000000, + "TownHallLevel": 13, + "CapitalHallLevel": 13, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "ExportNameUpgradeAnim": "ice_breaker_lvl2_upgrade", + "Hitpoints": 4200, + "RegenTime": 22, + "AttackRange": 1000, + "AttackSpeed": 3228, + "CoolDownOverride": 1500, + "DPS": 150, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Ice Breaker Attack", + "Projectile": "Ice Breaker Ammo2", + "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "rapidfire_base", + "AirTargets": true, + "GroundTargets": true, + "AmmoCount": 90, + "AmmoResource": "Elixir", + "AmmoCost": 40000, + "MinAttackRange": 300, + "DamageRadius": 100, + "PickUpEffect": "Scattershot Pickup", + "PlacingEffect": "Scattershot Placing", + "StrengthWeight": 700, + "NewTargetAttackDelay": 2200, + "HintPriority": 150, + "AnimationActionFrame": 5, + "PreviewScenario": "DefenseLongRange3" + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_SCATTERSHOT", + "InfoTID": "TID_BUILDING_SCATTERSHOT_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "ice_breaker_lvl3", + "ExportNameConstruction": "tower_turret_const", + "BuildTimeD": 13, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 12600000, + "TownHallLevel": 14, + "CapitalHallLevel": 14, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "ExportNameUpgradeAnim": "ice_breaker_lvl3_upgrade", + "Hitpoints": 4800, + "RegenTime": 24, + "AttackRange": 1000, + "AttackSpeed": 3228, + "CoolDownOverride": 1500, + "DPS": 175, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Ice Breaker Attack", + "Projectile": "Ice Breaker Ammo3", + "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "rapidfire_base", + "AirTargets": true, + "GroundTargets": true, + "AmmoCount": 90, + "AmmoResource": "Elixir", + "AmmoCost": 40000, + "MinAttackRange": 300, + "DamageRadius": 100, + "PickUpEffect": "Scattershot Pickup", + "PlacingEffect": "Scattershot Placing", + "StrengthWeight": 700, + "NewTargetAttackDelay": 2200, + "HintPriority": 150, + "AnimationActionFrame": 5, + "PreviewScenario": "DefenseLongRange3" + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_SCATTERSHOT", + "InfoTID": "TID_BUILDING_SCATTERSHOT_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "ice_breaker_lvl4", + "ExportNameConstruction": "tower_turret_const", + "BuildTimeD": 14, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 21300000, + "TownHallLevel": 15, + "CapitalHallLevel": 15, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "alliance_castle_upg", + "ExportNameUpgradeAnim": "ice_breaker_lvl4_upgrade", + "Hitpoints": 5100, + "RegenTime": 24, + "AttackRange": 1000, + "AttackSpeed": 3228, + "CoolDownOverride": 1500, + "DPS": 185, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Ice Breaker Attack", + "Projectile": "Ice Breaker Ammo4", + "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "rapidfire_base", + "AirTargets": true, + "GroundTargets": true, + "AmmoCount": 90, + "AmmoResource": "Elixir", + "AmmoCost": 40000, + "MinAttackRange": 300, + "DamageRadius": 100, + "PickUpEffect": "Scattershot Pickup", + "PlacingEffect": "Scattershot Placing", + "StrengthWeight": 700, + "NewTargetAttackDelay": 2200, + "HintPriority": 150, + "AnimationActionFrame": 5, + "PreviewScenario": "DefenseLongRange3" + } + }, + "Pet House": { + "1": { + "BuildingLevel": 1, + "TID": "TID_PET_SHOP", + "InfoTID": "TID_PET_SHOP_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "pet_house_lvl1", + "ExportNameConstruction": "laboratory_const", + "BuildTimeD": 12, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 10000000, + "TownHallLevel": 14, + "CapitalHallLevel": 14, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "laboratory_upg", + "UpgradesUnitType": "PET", + "Hitpoints": 700, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "pet_house_lvl1_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 1000, + "PreviewScenario": "NoCombatBuilding" + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_PET_SHOP", + "InfoTID": "TID_PET_SHOP_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "pet_house_lvl2", + "ExportNameConstruction": "laboratory_const", + "BuildTimeD": 12, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 12000000, + "TownHallLevel": 14, + "CapitalHallLevel": 14, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "laboratory_upg", + "UpgradesUnitType": "PET", + "Hitpoints": 800, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "pet_house_lvl2_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 1000, + "PreviewScenario": "NoCombatBuilding" + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_PET_SHOP", + "InfoTID": "TID_PET_SHOP_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "pet_house_lvl3", + "ExportNameConstruction": "laboratory_const", + "BuildTimeD": 12, + "BuildTimeH": 18, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 14000000, + "TownHallLevel": 14, + "CapitalHallLevel": 14, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "laboratory_upg", + "UpgradesUnitType": "PET", + "Hitpoints": 900, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "pet_house_lvl3_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 1000, + "PreviewScenario": "NoCombatBuilding" + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_PET_SHOP", + "InfoTID": "TID_PET_SHOP_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "pet_house_lvl4", + "ExportNameConstruction": "laboratory_const", + "BuildTimeD": 13, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 16000000, + "TownHallLevel": 14, + "CapitalHallLevel": 14, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "laboratory_upg", + "UpgradesUnitType": "PET", + "Hitpoints": 1000, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "pet_house_lvl4_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 1000, + "PreviewScenario": "NoCombatBuilding" + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_PET_SHOP", + "InfoTID": "TID_PET_SHOP_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "pet_house_lvl5", + "ExportNameConstruction": "laboratory_const", + "BuildTimeD": 13, + "BuildTimeH": 6, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 19750000, + "TownHallLevel": 15, + "CapitalHallLevel": 15, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "laboratory_upg", + "UpgradesUnitType": "PET", + "Hitpoints": 1050, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "pet_house_lvl5_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 1000, + "PreviewScenario": "NoCombatBuilding" + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_PET_SHOP", + "InfoTID": "TID_PET_SHOP_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "pet_house_lvl6", + "ExportNameConstruction": "laboratory_const", + "BuildTimeD": 13, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 20000000, + "TownHallLevel": 15, + "CapitalHallLevel": 15, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "laboratory_upg", + "UpgradesUnitType": "PET", + "Hitpoints": 1100, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "pet_house_lvl6_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 1000, + "PreviewScenario": "NoCombatBuilding" + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_PET_SHOP", + "InfoTID": "TID_PET_SHOP_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "pet_house_lvl7", + "ExportNameConstruction": "laboratory_const", + "BuildTimeD": 13, + "BuildTimeH": 18, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 20250000, + "TownHallLevel": 15, + "CapitalHallLevel": 15, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "laboratory_upg", + "UpgradesUnitType": "PET", + "Hitpoints": 1150, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "pet_house_lvl7_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 1000, + "PreviewScenario": "NoCombatBuilding" + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_PET_SHOP", + "InfoTID": "TID_PET_SHOP_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "pet_house_lvl8", + "ExportNameConstruction": "laboratory_const", + "BuildTimeD": 14, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 20500000, + "TownHallLevel": 15, + "CapitalHallLevel": 15, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "laboratory_upg", + "UpgradesUnitType": "PET", + "Hitpoints": 1200, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "pet_house_lvl8_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 1000, + "PreviewScenario": "NoCombatBuilding" + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_PET_SHOP", + "InfoTID": "TID_PET_SHOP_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "pet_house_lvl9", + "ExportNameConstruction": "laboratory_const", + "BuildTimeD": 15, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir", + "BuildCost": 21000000, + "TownHallLevel": 16, + "CapitalHallLevel": 16, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "laboratory_upg", + "UpgradesUnitType": "PET", + "Hitpoints": 1250, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "pet_house_lvl9_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "HintPriority": 1000, + "PreviewScenario": "NoCombatBuilding" + } + }, + "Blacksmith": { + "1": { + "BuildingLevel": 1, + "TID": "TID_SMITHY", + "InfoTID": "TID_SMITHY_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "blacksmith_lvl1", + "ExportNameConstruction": "blacksmith_const", + "BuildTimeD": 1, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 750000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "laboratory_upg", + "MaxStoredCommonOre": 10000, + "MaxStoredRareOre": 1000, + "MaxStoredEpicOre": 200, + "Blacksmith": true, + "Hitpoints": 700, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Blacksmith Pickup", + "PlacingEffect": "Blacksmith Placing", + "HintPriority": 1000, + "PreviewScenario": "NoCombatBuilding" + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_SMITHY", + "InfoTID": "TID_SMITHY_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "blacksmith_lvl1", + "ExportNameConstruction": "blacksmith_const", + "BuildTimeD": 2, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 1700000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "laboratory_upg", + "MaxStoredCommonOre": 15000, + "MaxStoredRareOre": 1500, + "MaxStoredEpicOre": 300, + "Blacksmith": true, + "Hitpoints": 800, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Blacksmith Pickup", + "PlacingEffect": "Blacksmith Placing", + "HintPriority": 1000, + "PreviewScenario": "NoCombatBuilding" + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_SMITHY", + "InfoTID": "TID_SMITHY_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "blacksmith_lvl2", + "ExportNameConstruction": "blacksmith_const", + "BuildTimeD": 3, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 2300000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "laboratory_upg", + "MaxStoredCommonOre": 20000, + "MaxStoredRareOre": 2000, + "MaxStoredEpicOre": 400, + "Blacksmith": true, + "Hitpoints": 900, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Blacksmith Pickup", + "PlacingEffect": "Blacksmith Placing", + "HintPriority": 1000, + "PreviewScenario": "NoCombatBuilding" + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_SMITHY", + "InfoTID": "TID_SMITHY_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "blacksmith_lvl2", + "ExportNameConstruction": "blacksmith_const", + "BuildTimeD": 4, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 3000000, + "TownHallLevel": 11, + "CapitalHallLevel": 11, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "laboratory_upg", + "MaxStoredCommonOre": 25000, + "MaxStoredRareOre": 2500, + "MaxStoredEpicOre": 500, + "Blacksmith": true, + "Hitpoints": 1000, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Blacksmith Pickup", + "PlacingEffect": "Blacksmith Placing", + "HintPriority": 1000, + "PreviewScenario": "NoCombatBuilding" + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_SMITHY", + "InfoTID": "TID_SMITHY_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "blacksmith_lvl3", + "ExportNameConstruction": "blacksmith_const", + "BuildTimeD": 5, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 5500000, + "TownHallLevel": 12, + "CapitalHallLevel": 12, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "laboratory_upg", + "MaxStoredCommonOre": 30000, + "MaxStoredRareOre": 3000, + "MaxStoredEpicOre": 600, + "Blacksmith": true, + "Hitpoints": 1100, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Blacksmith Pickup", + "PlacingEffect": "Blacksmith Placing", + "HintPriority": 1000, + "PreviewScenario": "NoCombatBuilding" + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_SMITHY", + "InfoTID": "TID_SMITHY_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "blacksmith_lvl3", + "ExportNameConstruction": "blacksmith_const", + "BuildTimeD": 6, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 8500000, + "TownHallLevel": 13, + "CapitalHallLevel": 13, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "laboratory_upg", + "MaxStoredCommonOre": 35000, + "MaxStoredRareOre": 3500, + "MaxStoredEpicOre": 700, + "Blacksmith": true, + "Hitpoints": 1200, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Blacksmith Pickup", + "PlacingEffect": "Blacksmith Placing", + "HintPriority": 1000, + "PreviewScenario": "NoCombatBuilding" + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_SMITHY", + "InfoTID": "TID_SMITHY_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "blacksmith_lvl4", + "ExportNameConstruction": "blacksmith_const", + "BuildTimeD": 7, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 12000000, + "TownHallLevel": 14, + "CapitalHallLevel": 14, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "laboratory_upg", + "MaxStoredCommonOre": 40000, + "MaxStoredRareOre": 4000, + "MaxStoredEpicOre": 800, + "Blacksmith": true, + "Hitpoints": 1300, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Blacksmith Pickup", + "PlacingEffect": "Blacksmith Placing", + "HintPriority": 1000, + "PreviewScenario": "NoCombatBuilding" + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_SMITHY", + "InfoTID": "TID_SMITHY_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "blacksmith_lvl4", + "ExportNameConstruction": "blacksmith_const", + "BuildTimeD": 8, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 14000000, + "TownHallLevel": 15, + "CapitalHallLevel": 15, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "laboratory_upg", + "MaxStoredCommonOre": 45000, + "MaxStoredRareOre": 4500, + "MaxStoredEpicOre": 900, + "Blacksmith": true, + "Hitpoints": 1400, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Blacksmith Pickup", + "PlacingEffect": "Blacksmith Placing", + "HintPriority": 1000, + "PreviewScenario": "NoCombatBuilding" + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_SMITHY", + "InfoTID": "TID_SMITHY_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings.sc", + "ExportName": "blacksmith_lvl5", + "ExportNameConstruction": "blacksmith_const", + "BuildTimeD": 9, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 16000000, + "TownHallLevel": 16, + "CapitalHallLevel": 16, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "laboratory_upg", + "MaxStoredCommonOre": 50000, + "MaxStoredRareOre": 5000, + "MaxStoredEpicOre": 1000, + "Blacksmith": true, + "Hitpoints": 1500, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3l_pit_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "barracks_base", + "PickUpEffect": "Blacksmith Pickup", + "PlacingEffect": "Blacksmith Placing", + "HintPriority": 1000, + "PreviewScenario": "NoCombatBuilding" + } + }, + "Spell Tower": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_SPELL_TOWER", + "InfoTID": "TID_BUILDING_SPELL_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "spell_tower_lvl1", + "ExportNameConstruction": "generic_construction_state2", + "BuildTimeD": 12, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 14000000, + "TownHallLevel": 15, + "CapitalHallLevel": 15, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "air_mortar_upg", + "Hitpoints": 2500, + "RegenTime": 20, + "AttackRange": 800, + "DestroyEffect": "Building Destroyed", + "HitEffect": "Generic Hit", + "ExportNameDamaged": "destroyedBuilding_2l_pit_rockwood", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "dark_tower_base", + "PickUpEffect": "Spell Tower Pickup", + "PlacingEffect": "Spell Tower Placing", + "StrengthWeight": 1000, + "HintPriority": 150, + "PreviewScenario": "NoCombatBuilding", + "UnlockWeaponMode": "SpellTowerRage" + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_SPELL_TOWER", + "InfoTID": "TID_BUILDING_SPELL_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "spell_tower_lvl2_rage", + "ExportNameConstruction": "generic_construction_state2", + "BuildTimeD": 12, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 16000000, + "TownHallLevel": 15, + "CapitalHallLevel": 15, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "air_mortar_upg", + "Hitpoints": 2800, + "RegenTime": 20, + "AttackRange": 800, + "DestroyEffect": "Building Destroyed", + "HitEffect": "Generic Hit", + "ExportNameDamaged": "destroyedBuilding_2l_pit_rockwood", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "dark_tower_base", + "PickUpEffect": "Spell Tower Pickup", + "PlacingEffect": "Spell Tower Placing", + "StrengthWeight": 1400, + "HintPriority": 150, + "PreviewScenario": "NoCombatBuilding", + "UnlockWeaponMode": "SpellTowerPoison" + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_SPELL_TOWER", + "InfoTID": "TID_BUILDING_SPELL_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "spell_tower_lvl3_rage", + "ExportNameConstruction": "generic_construction_state2", + "BuildTimeD": 13, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 18000000, + "TownHallLevel": 15, + "CapitalHallLevel": 15, + "Width": 2, + "Height": 2, + "ExportNameBuildAnim": "air_mortar_upg", + "Hitpoints": 3100, + "RegenTime": 20, + "AttackRange": 800, + "DestroyEffect": "Building Destroyed", + "HitEffect": "Generic Hit", + "ExportNameDamaged": "destroyedBuilding_2l_pit_rockwood", + "BuildingW": 1, + "BuildingH": 1, + "ExportNameBase": "dark_tower_base", + "PickUpEffect": "Spell Tower Pickup", + "PlacingEffect": "Spell Tower Placing", + "StrengthWeight": 1800, + "HintPriority": 150, + "PreviewScenario": "NoCombatBuilding", + "UnlockWeaponMode": "SpellTowerInvisibility" + } + }, + "Monolith": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_MONOLITH", + "InfoTID": "TID_BUILDING_MONOLITH_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "monolith_lvl_1", + "ExportNameConstruction": "tower_turret_const", + "BuildTimeD": 13, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "DarkElixir", + "BuildCost": 300000, + "TownHallLevel": 15, + "CapitalHallLevel": 15, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "ExportNameUpgradeAnim": "monolith_lvl_1_upgrade", + "Hitpoints": 4747, + "RegenTime": 25, + "AttackRange": 1100, + "AttackSpeed": 1500, + "CoolDownOverride": 750, + "DPS": 150, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Monolith Attack", + "HitEffect": "Explosive Arrow", + "Projectile": "MonolithProjectileMin;MonolithProjectileMed;MonolithProjectileMax", + "ExportNameDamaged": "destroyedBuilding_3l_base_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "dark_tower_base", + "AirTargets": true, + "GroundTargets": true, + "PickUpEffect": "Monolith Pickup", + "PlacingEffect": "Monolith Placing", + "DefenderCount": 1, + "DefenderZ": 155, + "StrengthWeight": 1400, + "HintPriority": 150, + "AnimationActionFrame": 5, + "DamagePermilHp": 110, + "ProjectileVariantByTargetMaxHP": "600;2500", + "DefaultProjectileVariant": 3, + "PreviewScenario": "Monolith" + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_MONOLITH", + "InfoTID": "TID_BUILDING_MONOLITH_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "monolith_lvl_2", + "ExportNameConstruction": "tower_turret_const", + "BuildTimeD": 14, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "DarkElixir", + "BuildCost": 360000, + "TownHallLevel": 15, + "CapitalHallLevel": 15, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "tower_turret_upg", + "ExportNameUpgradeAnim": "monolith_lvl_2_upgrade", + "Hitpoints": 5050, + "RegenTime": 26, + "AttackRange": 1100, + "AttackSpeed": 1500, + "CoolDownOverride": 750, + "DPS": 175, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Monolith Attack", + "HitEffect": "Explosive Arrow", + "Projectile": "MonolithProjectileMin;MonolithProjectileMed;MonolithProjectileMax", + "ExportNameDamaged": "destroyedBuilding_3l_base_rockwood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "dark_tower_base", + "AirTargets": true, + "GroundTargets": true, + "PickUpEffect": "Monolith Pickup", + "PlacingEffect": "Monolith Placing", + "DefenderCount": 1, + "DefenderZ": 155, + "StrengthWeight": 1300, + "HintPriority": 150, + "AnimationActionFrame": 5, + "DamagePermilHp": 120, + "ProjectileVariantByTargetMaxHP": "650;2750", + "DefaultProjectileVariant": 3, + "PreviewScenario": "Monolith" + } + }, + "O.T.T.O's Outpost": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_OTTOS_OUTPOST", + "InfoTID": "TID_BUILDING_OTTOS_OUTPOST_INFO", + "BuildingClass": "Town Hall2", + "SWF": "sc/buildings2.sc", + "ExportName": "outpost_01", + "ExportNameNpc": "outpost_01", + "ExportNameConstruction": "town_hall_const", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 0, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "Hitpoints": 650, + "RegenTime": 1, + "DestroyEffect": "Town Hall Destroyed", + "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "townhall_base", + "PickUpEffect": "Town Hall 2 Pickup", + "PlacingEffect": "Town Hall Placing", + "DestructionXP": 1, + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 100, + "Stage": 2, + "SecondaryTroop": "Zappies", + "SecondaryTroopCnt": 2, + "SecondaryTroopLvl": 1 + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_OTTOS_OUTPOST", + "InfoTID": "TID_BUILDING_OTTOS_OUTPOST_INFO", + "BuildingClass": "Town Hall2", + "SWF": "sc/buildings2.sc", + "ExportName": "outpost_02", + "ExportNameNpc": "outpost_01", + "ExportNameConstruction": "town_hall_const", + "BuildTimeD": 1, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 1000000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "Hitpoints": 800, + "RegenTime": 1, + "DestroyEffect": "Town Hall Destroyed", + "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "townhall_base", + "PickUpEffect": "Town Hall 2 Pickup", + "PlacingEffect": "Town Hall Placing", + "DestructionXP": 2, + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 100, + "Stage": 2, + "SecondaryTroop": "Zappies", + "SecondaryTroopCnt": 2, + "SecondaryTroopLvl": 2 + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_BUILDING_OTTOS_OUTPOST", + "InfoTID": "TID_BUILDING_OTTOS_OUTPOST_INFO", + "BuildingClass": "Town Hall2", + "SWF": "sc/buildings2.sc", + "ExportName": "outpost_03", + "ExportNameNpc": "outpost_01", + "ExportNameConstruction": "town_hall_const", + "BuildTimeD": 2, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 1250000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "Hitpoints": 975, + "RegenTime": 1, + "DestroyEffect": "Town Hall Destroyed", + "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "townhall_base", + "PickUpEffect": "Town Hall 2 Pickup", + "PlacingEffect": "Town Hall Placing", + "DestructionXP": 3, + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 100, + "Stage": 2, + "SecondaryTroop": "Zappies", + "SecondaryTroopCnt": 2, + "SecondaryTroopLvl": 3 + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_BUILDING_OTTOS_OUTPOST", + "InfoTID": "TID_BUILDING_OTTOS_OUTPOST_INFO", + "BuildingClass": "Town Hall2", + "SWF": "sc/buildings2.sc", + "ExportName": "outpost_04", + "ExportNameNpc": "outpost_01", + "ExportNameConstruction": "town_hall_const", + "BuildTimeD": 3, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 1500000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "Hitpoints": 1150, + "RegenTime": 1, + "DestroyEffect": "Town Hall Destroyed", + "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "townhall_base", + "PickUpEffect": "Town Hall 2 Pickup", + "PlacingEffect": "Town Hall Placing", + "DestructionXP": 4, + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 100, + "Stage": 2, + "SecondaryTroop": "Zappies", + "SecondaryTroopCnt": 3, + "SecondaryTroopLvl": 4 + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_BUILDING_OTTOS_OUTPOST", + "InfoTID": "TID_BUILDING_OTTOS_OUTPOST_INFO", + "BuildingClass": "Town Hall2", + "SWF": "sc/buildings2.sc", + "ExportName": "outpost_05", + "ExportNameNpc": "outpost_01", + "ExportNameConstruction": "town_hall_const", + "BuildTimeD": 4, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 1750000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "Hitpoints": 1350, + "RegenTime": 1, + "DestroyEffect": "Town Hall Destroyed", + "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "townhall_base", + "PickUpEffect": "Town Hall 2 Pickup", + "PlacingEffect": "Town Hall Placing", + "DestructionXP": 5, + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 100, + "Stage": 2, + "SecondaryTroop": "Zappies", + "SecondaryTroopCnt": 3, + "SecondaryTroopLvl": 5 + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_BUILDING_OTTOS_OUTPOST", + "InfoTID": "TID_BUILDING_OTTOS_OUTPOST_INFO", + "BuildingClass": "Town Hall2", + "SWF": "sc/buildings2.sc", + "ExportName": "outpost_06", + "ExportNameNpc": "outpost_01", + "ExportNameConstruction": "town_hall_const", + "BuildTimeD": 5, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 2000000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "Hitpoints": 1600, + "RegenTime": 1, + "DestroyEffect": "Town Hall Destroyed", + "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "townhall_base", + "PickUpEffect": "Town Hall 2 Pickup", + "PlacingEffect": "Town Hall Placing", + "DestructionXP": 6, + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 100, + "Stage": 2, + "SecondaryTroop": "Zappies", + "SecondaryTroopCnt": 3, + "SecondaryTroopLvl": 6 + }, + "7": { + "BuildingLevel": 7, + "TID": "TID_BUILDING_OTTOS_OUTPOST", + "InfoTID": "TID_BUILDING_OTTOS_OUTPOST_INFO", + "BuildingClass": "Town Hall2", + "SWF": "sc/buildings2.sc", + "ExportName": "outpost_07", + "ExportNameNpc": "outpost_01", + "ExportNameConstruction": "town_hall_const", + "BuildTimeD": 7, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 3000000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "Hitpoints": 1850, + "RegenTime": 1, + "DestroyEffect": "Town Hall Destroyed", + "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "townhall_base", + "PickUpEffect": "Town Hall 2 Pickup", + "PlacingEffect": "Town Hall Placing", + "DestructionXP": 7, + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 100, + "Stage": 2, + "SecondaryTroop": "Zappies", + "SecondaryTroopCnt": 4, + "SecondaryTroopLvl": 7 + }, + "8": { + "BuildingLevel": 8, + "TID": "TID_BUILDING_OTTOS_OUTPOST", + "InfoTID": "TID_BUILDING_OTTOS_OUTPOST_INFO", + "BuildingClass": "Town Hall2", + "SWF": "sc/buildings2.sc", + "ExportName": "outpost_08", + "ExportNameNpc": "outpost_01", + "ExportNameConstruction": "town_hall_const", + "BuildTimeD": 9, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 4000000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "Hitpoints": 2150, + "RegenTime": 1, + "DestroyEffect": "Town Hall Destroyed", + "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "townhall_base", + "PickUpEffect": "Town Hall 2 Pickup", + "PlacingEffect": "Town Hall Placing", + "DestructionXP": 8, + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 100, + "Stage": 2, + "SecondaryTroop": "Zappies", + "SecondaryTroopCnt": 4, + "SecondaryTroopLvl": 8 + }, + "9": { + "BuildingLevel": 9, + "TID": "TID_BUILDING_OTTOS_OUTPOST", + "InfoTID": "TID_BUILDING_OTTOS_OUTPOST_INFO", + "BuildingClass": "Town Hall2", + "SWF": "sc/buildings2.sc", + "ExportName": "outpost_09", + "ExportNameNpc": "outpost_01", + "ExportNameConstruction": "town_hall_const", + "BuildTimeD": 10, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 5000000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "Hitpoints": 2450, + "RegenTime": 1, + "DestroyEffect": "Town Hall Destroyed", + "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "townhall_base", + "PickUpEffect": "Town Hall 2 Pickup", + "PlacingEffect": "Town Hall Placing", + "DestructionXP": 9, + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 100, + "Stage": 2, + "SecondaryTroop": "Zappies", + "SecondaryTroopCnt": 4, + "SecondaryTroopLvl": 9 + }, + "10": { + "BuildingLevel": 10, + "TID": "TID_BUILDING_OTTOS_OUTPOST", + "InfoTID": "TID_BUILDING_OTTOS_OUTPOST_INFO", + "BuildingClass": "Town Hall2", + "SWF": "sc/buildings2.sc", + "ExportName": "outpost_10", + "ExportNameNpc": "outpost_01", + "ExportNameConstruction": "town_hall_const", + "BuildTimeD": 11, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold2", + "BuildCost": 6000000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 4, + "Height": 4, + "ExportNameBuildAnim": "town_hall_upg", + "Hitpoints": 2750, + "RegenTime": 1, + "DestroyEffect": "Town Hall Destroyed", + "ExportNameDamaged": "destroyedBuilding_4m_base_rockwoodpanel_yellow", + "BuildingW": 3, + "BuildingH": 3, + "ExportNameBase": "townhall_base", + "PickUpEffect": "Town Hall 2 Pickup", + "PlacingEffect": "Town Hall Placing", + "DestructionXP": 10, + "StartingHomeCount": 1, + "VillageType": 1, + "HintPriority": 100, + "Stage": 2, + "SecondaryTroop": "Zappies", + "SecondaryTroopCnt": 5, + "SecondaryTroopLvl": 10 + } + }, + "Battle Copter": { + "1": { + "BuildingLevel": 1, + "TID": "TID_HERO_BATTLE_COPTER", + "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", + "BuildingClass": "Army", + "SWF": "sc/buildings2.sc", + "ExportName": "BB_hero_altar_flying", + "ExportNameConstruction": "air_mortar_const", + "ExportNameLocked": "BB_hero_altar_flying", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 2500000, + "TownHallLevel": 5, + "CapitalHallLevel": 5, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "heroaltar_barbarian_king_upg", + "LevelRequirementTID": "TID_REQUIRED_BUILDERS_HALL_LEVEL", + "Hitpoints": 250, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "heroaltar_base", + "PickUpEffect": "Hero Altar Pickup", + "PlacingEffect": "Hero Altar Place", + "IsHeroBarrack": true, + "HeroType": "Battle Copter", + "VillageType": 1, + "HintPriority": 700, + "Stage": 2 + } + }, + "Healing Hut": { + "1": { + "BuildingLevel": 1, + "TID": "TID_RECOVERY_BUILDING", + "InfoTID": "TID_RECOVERY_BUILDING_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings2.sc", + "ExportName": "healing_hut_01", + "ExportNameConstruction": "barracks_const", + "BuildTimeD": 1, + "BuildTimeH": 6, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 1500000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "Hitpoints": 550, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3l_base_wood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "rapidfire_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "VillageType": 1, + "HintPriority": 500, + "Stage": 2, + "HealthRecoveryPercent": 4 + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_RECOVERY_BUILDING", + "InfoTID": "TID_RECOVERY_BUILDING_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings2.sc", + "ExportName": "healing_hut_02", + "ExportNameConstruction": "barracks_const", + "BuildTimeD": 2, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 2000000, + "TownHallLevel": 6, + "CapitalHallLevel": 6, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "Hitpoints": 650, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3l_base_wood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "rapidfire_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "VillageType": 1, + "HintPriority": 500, + "Stage": 2, + "HealthRecoveryPercent": 8 + }, + "3": { + "BuildingLevel": 3, + "TID": "TID_RECOVERY_BUILDING", + "InfoTID": "TID_RECOVERY_BUILDING_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings2.sc", + "ExportName": "healing_hut_03", + "ExportNameConstruction": "barracks_const", + "BuildTimeD": 3, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 2500000, + "TownHallLevel": 7, + "CapitalHallLevel": 7, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "Hitpoints": 750, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3l_base_wood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "rapidfire_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "VillageType": 1, + "HintPriority": 500, + "Stage": 2, + "HealthRecoveryPercent": 12 + }, + "4": { + "BuildingLevel": 4, + "TID": "TID_RECOVERY_BUILDING", + "InfoTID": "TID_RECOVERY_BUILDING_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings2.sc", + "ExportName": "healing_hut_04", + "ExportNameConstruction": "barracks_const", + "BuildTimeD": 4, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 3250000, + "TownHallLevel": 8, + "CapitalHallLevel": 8, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "Hitpoints": 850, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3l_base_wood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "rapidfire_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "VillageType": 1, + "HintPriority": 500, + "Stage": 2, + "HealthRecoveryPercent": 16 + }, + "5": { + "BuildingLevel": 5, + "TID": "TID_RECOVERY_BUILDING", + "InfoTID": "TID_RECOVERY_BUILDING_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings2.sc", + "ExportName": "healing_hut_05", + "ExportNameConstruction": "barracks_const", + "BuildTimeD": 5, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 4000000, + "TownHallLevel": 9, + "CapitalHallLevel": 9, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "Hitpoints": 1000, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3l_base_wood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "rapidfire_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "VillageType": 1, + "HintPriority": 500, + "Stage": 2, + "HealthRecoveryPercent": 20 + }, + "6": { + "BuildingLevel": 6, + "TID": "TID_RECOVERY_BUILDING", + "InfoTID": "TID_RECOVERY_BUILDING_INFO", + "BuildingClass": "Army", + "SWF": "sc/buildings2.sc", + "ExportName": "healing_hut_06", + "ExportNameConstruction": "barracks_const", + "BuildTimeD": 6, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Elixir2", + "BuildCost": 5000000, + "TownHallLevel": 10, + "CapitalHallLevel": 10, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "barracks_upg", + "Hitpoints": 1150, + "RegenTime": 1, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3l_base_wood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "rapidfire_base", + "PickUpEffect": "Training Barrack Pickup", + "PlacingEffect": "Training Barrack Placing", + "VillageType": 1, + "HintPriority": 500, + "Stage": 2, + "HealthRecoveryPercent": 24 + } + }, + "Sour Elixir Cauldron": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_CLASHOWEEN_BUILDING", + "InfoTID": "TID_CLASHOWEEN_BUILDING_INFO", + "BuildingClass": "Resource", + "SWF": "sc/buildings.sc", + "ExportName": "sour_elixir_cauldron_01", + "ExportNameConstruction": "sour_elixir_cauldron_01", + "BuildTimeD": 0, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 0, + "TownHallLevel": 1, + "CapitalHallLevel": 1, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "sour_elixir_cauldron_01", + "MaxStoredSourElixir": 100000000, + "ProducesResource": "SourElixir", + "ResourcePer100Hours": 10000, + "ResourceMax": 2400, + "ResourceIconLimit": 6, + "Hitpoints": 1000, + "RegenTime": 15, + "DestroyEffect": "Building Destroyed", + "ExportNameDamaged": "destroyedBuilding_3m_round_pit_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "elixir_pump_base", + "PickUpEffect": "Elixir Pump Pickup", + "PlacingEffect": "Elixir Pump Placing", + "PreviewScenario": "NoCombatBuilding" + } + }, + "Multi-Archer Tower": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_MULTI_ARCHER_TOWER", + "InfoTID": "TID_MULTI_ARCHER_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "merged_archer_tower_lvl1", + "ExportNameConstruction": "merged_archer_tower_const", + "BuildTimeD": 14, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 20000000, + "TownHallLevel": 16, + "CapitalHallLevel": 16, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "merged_archer_tower_upg", + "Hitpoints": 5000, + "RegenTime": 25, + "AttackRange": 1000, + "AttackSpeed": 500, + "DamageMulti": 55, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "MergedArcherTower_attack", + "HitEffect": "Explosive Arrow", + "Projectile": "super_archer_tower_projectile", + "ExportNameDamaged": "destroyedBuilding_3m_grass_wood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "defense_tower_turret_base", + "AirTargets": true, + "GroundTargets": true, + "MultiTargets": true, + "NumMultiTargets": 3, + "MultiHitsTarget": true, + "PickUpEffect": "Tower Turret Pickup", + "PlacingEffect": "Tower Turret Placing", + "DefenderCharacter": "Archer12", + "DefenderCount": 3, + "DefenderZ": 197, + "StrengthWeight": 400, + "HintPriority": 150, + "PreviewScenario": "MergedArcherTower", + "MergeRequirement": "Archer Tower:21;Archer Tower:21" + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_MULTI_ARCHER_TOWER", + "InfoTID": "TID_MULTI_ARCHER_TOWER_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "merged_archer_tower_lvl2", + "ExportNameConstruction": "merged_archer_tower_const", + "BuildTimeD": 15, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 22000000, + "TownHallLevel": 16, + "CapitalHallLevel": 16, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "merged_archer_tower_upg", + "Hitpoints": 5200, + "RegenTime": 25, + "AttackRange": 1000, + "AttackSpeed": 500, + "DamageMulti": 60, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "MergedArcherTower_attack", + "HitEffect": "Explosive Arrow", + "Projectile": "super_archer_tower_projectile", + "ExportNameDamaged": "destroyedBuilding_3m_grass_wood", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "defense_tower_turret_base", + "AirTargets": true, + "GroundTargets": true, + "MultiTargets": true, + "NumMultiTargets": 3, + "MultiHitsTarget": true, + "PickUpEffect": "Tower Turret Pickup", + "PlacingEffect": "Tower Turret Placing", + "DefenderCharacter": "Archer12", + "DefenderCount": 3, + "DefenderZ": 197, + "StrengthWeight": 440, + "HintPriority": 150, + "PreviewScenario": "MergedArcherTower", + "MergeRequirement": "Archer Tower:21;Archer Tower:21" + } + }, + "Ricochet Cannon": { + "1": { + "BuildingLevel": 1, + "TID": "TID_BUILDING_RICOCHET_CANNON", + "InfoTID": "TID_RICOCHET_CANNON_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "merged_cannon_lvl1", + "ExportNameConstruction": "merged_cannon_const", + "BuildTimeD": 14, + "BuildTimeH": 0, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 20000000, + "TownHallLevel": 16, + "CapitalHallLevel": 16, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "merged_cannon_upg", + "Hitpoints": 5400, + "RegenTime": 25, + "AttackRange": 900, + "AttackSpeed": 800, + "DPS": 360, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Cannon Attack Larger", + "HitEffect": "Merged_Cannon_Ricochet_Hit", + "Projectile": "MergedCannonProjectile", + "ExportNameDamaged": "destroyedBuilding_3s_base_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "basic_cannon_lvl11_base", + "AirTargets": false, + "GroundTargets": true, + "PickUpEffect": "Basic Turret Pickup", + "PlacingEffect": "Basic Turret Placing", + "AnimateTurret": true, + "StrengthWeight": 200, + "HintPriority": 150, + "PreviewScenario": "MergedCannon", + "MergeRequirement": "Cannon:21;Cannon:21", + "ProjectileBounces": 1 + }, + "2": { + "BuildingLevel": 2, + "TID": "TID_BUILDING_RICOCHET_CANNON", + "InfoTID": "TID_RICOCHET_CANNON_INFO", + "BuildingClass": "Defense", + "SWF": "sc/buildings.sc", + "ExportName": "merged_cannon_lvl2", + "ExportNameConstruction": "merged_cannon_const", + "BuildTimeD": 15, + "BuildTimeH": 12, + "BuildTimeM": 0, + "BuildTimeS": 0, + "BuildResource": "Gold", + "BuildCost": 22000000, + "TownHallLevel": 16, + "CapitalHallLevel": 16, + "Width": 3, + "Height": 3, + "ExportNameBuildAnim": "merged_cannon_upg", + "Hitpoints": 5700, + "RegenTime": 25, + "AttackRange": 900, + "AttackSpeed": 800, + "DPS": 390, + "DestroyEffect": "Building Destroyed", + "AttackEffect": "Cannon Attack Larger", + "HitEffect": "Merged_Cannon_Ricochet_Hit", + "Projectile": "MergedCannonProjectile", + "ExportNameDamaged": "destroyedBuilding_3s_base_rock", + "BuildingW": 2, + "BuildingH": 2, + "ExportNameBase": "basic_cannon_lvl11_base", + "AirTargets": false, + "GroundTargets": true, + "PickUpEffect": "Basic Turret Pickup", + "PlacingEffect": "Basic Turret Placing", + "AnimateTurret": true, + "StrengthWeight": 220, + "HintPriority": 150, + "PreviewScenario": "MergedCannon", + "MergeRequirement": "Cannon:21;Cannon:21", + "ProjectileBounces": 1 + } + } } \ No newline at end of file diff --git a/assets/json/hero_equipment.json b/assets/json/hero_equipment.json index 368a92e0..9bf8058c 100644 --- a/assets/json/hero_equipment.json +++ b/assets/json/hero_equipment.json @@ -1,5229 +1,5229 @@ -{ - "Barbarian Puppet": { - "1": { - "Level": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_a", - "TID": "TID_GEAR_TITLE_BARBARIAN_CROWN", - "InfoTID": "TID_GEAR_INFO_BARBARIAN_CROWN", - "Deprecated": true, - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 6, - "RequiredCharacterLevel": 1, - "MainAbilities": "RoyalChampionElectrifiedShield", - "MainAbilityLevels": 1 - } - }, - "Rage Vial": { - "1": { - "Level": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_RageVial", - "TID": "TID_GEAR_TITLE_IRON_FIST", - "InfoTID": "TID_GEAR_INFO_IRON_FIST", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 120, - "MainAbilities": "BarbarianKingRage", - "MainAbilityLevels": 1, - "DPS": 17, - "PreviewScenario": "GearFist", - "HealOnActivation": 150 - }, - "2": { - "Level": 2, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_RageVial", - "TID": "TID_GEAR_TITLE_IRON_FIST", - "InfoTID": "TID_GEAR_INFO_IRON_FIST", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "240;20", - "MainAbilities": "BarbarianKingRage", - "MainAbilityLevels": 1, - "DPS": 22, - "PreviewScenario": "GearFist", - "HealOnActivation": 225 - }, - "3": { - "Level": 3, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_RageVial", - "TID": "TID_GEAR_TITLE_IRON_FIST", - "InfoTID": "TID_GEAR_INFO_IRON_FIST", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 400, - "MainAbilities": "BarbarianKingRage", - "MainAbilityLevels": 2, - "DPS": 27, - "PreviewScenario": "GearFist", - "HealOnActivation": 300 - }, - "4": { - "Level": 4, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_RageVial", - "TID": "TID_GEAR_TITLE_IRON_FIST", - "InfoTID": "TID_GEAR_INFO_IRON_FIST", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 600, - "MainAbilities": "BarbarianKingRage", - "MainAbilityLevels": 2, - "DPS": 32, - "PreviewScenario": "GearFist", - "HealOnActivation": 375 - }, - "5": { - "Level": 5, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_RageVial", - "TID": "TID_GEAR_TITLE_IRON_FIST", - "InfoTID": "TID_GEAR_INFO_IRON_FIST", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "840;100", - "MainAbilities": "BarbarianKingRage", - "MainAbilityLevels": 2, - "DPS": 37, - "PreviewScenario": "GearFist", - "HealOnActivation": 450 - }, - "6": { - "Level": 6, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_RageVial", - "TID": "TID_GEAR_TITLE_IRON_FIST", - "InfoTID": "TID_GEAR_INFO_IRON_FIST", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1120, - "MainAbilities": "BarbarianKingRage", - "MainAbilityLevels": 3, - "DPS": 42, - "PreviewScenario": "GearFist", - "HealOnActivation": 525 - }, - "7": { - "Level": 7, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_RageVial", - "TID": "TID_GEAR_TITLE_IRON_FIST", - "InfoTID": "TID_GEAR_INFO_IRON_FIST", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1440, - "MainAbilities": "BarbarianKingRage", - "MainAbilityLevels": 3, - "DPS": 48, - "PreviewScenario": "GearFist", - "HealOnActivation": 600 - }, - "8": { - "Level": 8, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_RageVial", - "TID": "TID_GEAR_TITLE_IRON_FIST", - "InfoTID": "TID_GEAR_INFO_IRON_FIST", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "1800;200", - "MainAbilities": "BarbarianKingRage", - "MainAbilityLevels": 3, - "DPS": 54, - "PreviewScenario": "GearFist", - "HealOnActivation": 675 - }, - "9": { - "Level": 9, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_RageVial", - "TID": "TID_GEAR_TITLE_IRON_FIST", - "InfoTID": "TID_GEAR_INFO_IRON_FIST", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1900, - "MainAbilities": "BarbarianKingRage", - "MainAbilityLevels": 4, - "DPS": 60, - "PreviewScenario": "GearFist", - "HealOnActivation": 780 - }, - "10": { - "Level": 10, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_RageVial", - "TID": "TID_GEAR_TITLE_IRON_FIST", - "InfoTID": "TID_GEAR_INFO_IRON_FIST", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2000, - "MainAbilities": "BarbarianKingRage", - "MainAbilityLevels": 4, - "DPS": 66, - "PreviewScenario": "GearFist", - "HealOnActivation": 900 - }, - "11": { - "Level": 11, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_RageVial", - "TID": "TID_GEAR_TITLE_IRON_FIST", - "InfoTID": "TID_GEAR_INFO_IRON_FIST", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2100;400", - "MainAbilities": "BarbarianKingRage", - "MainAbilityLevels": 4, - "DPS": 72, - "PreviewScenario": "GearFist", - "HealOnActivation": 1020 - }, - "12": { - "Level": 12, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_RageVial", - "TID": "TID_GEAR_TITLE_IRON_FIST", - "InfoTID": "TID_GEAR_INFO_IRON_FIST", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2200, - "MainAbilities": "BarbarianKingRage", - "MainAbilityLevels": 5, - "DPS": 79, - "PreviewScenario": "GearFist", - "HealOnActivation": 1155 - }, - "13": { - "Level": 13, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_RageVial", - "TID": "TID_GEAR_TITLE_IRON_FIST", - "InfoTID": "TID_GEAR_INFO_IRON_FIST", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2300, - "MainAbilities": "BarbarianKingRage", - "MainAbilityLevels": 5, - "DPS": 86, - "PreviewScenario": "GearFist", - "HealOnActivation": 1290 - }, - "14": { - "Level": 14, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_RageVial", - "TID": "TID_GEAR_TITLE_IRON_FIST", - "InfoTID": "TID_GEAR_INFO_IRON_FIST", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2400;600", - "MainAbilities": "BarbarianKingRage", - "MainAbilityLevels": 5, - "DPS": 94, - "PreviewScenario": "GearFist", - "HealOnActivation": 1410 - }, - "15": { - "Level": 15, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_RageVial", - "TID": "TID_GEAR_TITLE_IRON_FIST", - "InfoTID": "TID_GEAR_INFO_IRON_FIST", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2500, - "MainAbilities": "BarbarianKingRage", - "MainAbilityLevels": 6, - "DPS": 104, - "PreviewScenario": "GearFist", - "HealOnActivation": 1590 - }, - "16": { - "Level": 16, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_RageVial", - "TID": "TID_GEAR_TITLE_IRON_FIST", - "InfoTID": "TID_GEAR_INFO_IRON_FIST", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2600, - "MainAbilities": "BarbarianKingRage", - "MainAbilityLevels": 6, - "DPS": 112, - "PreviewScenario": "GearFist", - "HealOnActivation": 1695 - }, - "17": { - "Level": 17, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_RageVial", - "TID": "TID_GEAR_TITLE_IRON_FIST", - "InfoTID": "TID_GEAR_INFO_IRON_FIST", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2700;600", - "MainAbilities": "BarbarianKingRage", - "MainAbilityLevels": 6, - "DPS": 120, - "PreviewScenario": "GearFist", - "HealOnActivation": 1800 - }, - "18": { - "Level": 18, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_RageVial", - "TID": "TID_GEAR_TITLE_IRON_FIST", - "InfoTID": "TID_GEAR_INFO_IRON_FIST", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2700;600", - "MainAbilities": "BarbarianKingRage", - "MainAbilityLevels": 7, - "DPS": 128, - "PreviewScenario": "GearFist", - "HealOnActivation": 1890 - } - }, - "Archer Puppet": { - "1": { - "Level": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_ArcherDoll", - "TID": "TID_GEAR_TITLE_ARCHER_CROWN", - "InfoTID": "TID_GEAR_INFO_ARCHER_CROWN", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 120, - "MainAbilities": "ArcherQueenSpawnArchers", - "MainAbilityLevels": 1, - "DPS": 26, - "PreviewScenario": "GearArcherCrown", - "HealOnActivation": 160 - }, - "2": { - "Level": 2, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_ArcherDoll", - "TID": "TID_GEAR_TITLE_ARCHER_CROWN", - "InfoTID": "TID_GEAR_INFO_ARCHER_CROWN", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "240;20", - "MainAbilities": "ArcherQueenSpawnArchers", - "MainAbilityLevels": 1, - "DPS": 34, - "PreviewScenario": "GearArcherCrown", - "HealOnActivation": 175 - }, - "3": { - "Level": 3, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_ArcherDoll", - "TID": "TID_GEAR_TITLE_ARCHER_CROWN", - "InfoTID": "TID_GEAR_INFO_ARCHER_CROWN", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 400, - "MainAbilities": "ArcherQueenSpawnArchers", - "MainAbilityLevels": 2, - "DPS": 42, - "PreviewScenario": "GearArcherCrown", - "HealOnActivation": 190 - }, - "4": { - "Level": 4, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_ArcherDoll", - "TID": "TID_GEAR_TITLE_ARCHER_CROWN", - "InfoTID": "TID_GEAR_INFO_ARCHER_CROWN", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 600, - "MainAbilities": "ArcherQueenSpawnArchers", - "MainAbilityLevels": 2, - "DPS": 49, - "PreviewScenario": "GearArcherCrown", - "HealOnActivation": 205 - }, - "5": { - "Level": 5, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_ArcherDoll", - "TID": "TID_GEAR_TITLE_ARCHER_CROWN", - "InfoTID": "TID_GEAR_INFO_ARCHER_CROWN", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "840;100", - "MainAbilities": "ArcherQueenSpawnArchers", - "MainAbilityLevels": 2, - "DPS": 55, - "PreviewScenario": "GearArcherCrown", - "HealOnActivation": 220 - }, - "6": { - "Level": 6, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_ArcherDoll", - "TID": "TID_GEAR_TITLE_ARCHER_CROWN", - "InfoTID": "TID_GEAR_INFO_ARCHER_CROWN", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1120, - "MainAbilities": "ArcherQueenSpawnArchers", - "MainAbilityLevels": 3, - "DPS": 62, - "PreviewScenario": "GearArcherCrown", - "HealOnActivation": 235 - }, - "7": { - "Level": 7, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_ArcherDoll", - "TID": "TID_GEAR_TITLE_ARCHER_CROWN", - "InfoTID": "TID_GEAR_INFO_ARCHER_CROWN", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1440, - "MainAbilities": "ArcherQueenSpawnArchers", - "MainAbilityLevels": 3, - "DPS": 71, - "PreviewScenario": "GearArcherCrown", - "HealOnActivation": 250 - }, - "8": { - "Level": 8, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_ArcherDoll", - "TID": "TID_GEAR_TITLE_ARCHER_CROWN", - "InfoTID": "TID_GEAR_INFO_ARCHER_CROWN", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "1800;200", - "MainAbilities": "ArcherQueenSpawnArchers", - "MainAbilityLevels": 3, - "DPS": 80, - "PreviewScenario": "GearArcherCrown", - "HealOnActivation": 265 - }, - "9": { - "Level": 9, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_ArcherDoll", - "TID": "TID_GEAR_TITLE_ARCHER_CROWN", - "InfoTID": "TID_GEAR_INFO_ARCHER_CROWN", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1900, - "MainAbilities": "ArcherQueenSpawnArchers", - "MainAbilityLevels": 4, - "DPS": 90, - "PreviewScenario": "GearArcherCrown", - "HealOnActivation": 280 - }, - "10": { - "Level": 10, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_ArcherDoll", - "TID": "TID_GEAR_TITLE_ARCHER_CROWN", - "InfoTID": "TID_GEAR_INFO_ARCHER_CROWN", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2000, - "MainAbilities": "ArcherQueenSpawnArchers", - "MainAbilityLevels": 4, - "DPS": 100, - "PreviewScenario": "GearArcherCrown", - "HealOnActivation": 295 - }, - "11": { - "Level": 11, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_ArcherDoll", - "TID": "TID_GEAR_TITLE_ARCHER_CROWN", - "InfoTID": "TID_GEAR_INFO_ARCHER_CROWN", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2100;400", - "MainAbilities": "ArcherQueenSpawnArchers", - "MainAbilityLevels": 4, - "DPS": 109, - "PreviewScenario": "GearArcherCrown", - "HealOnActivation": 310 - }, - "12": { - "Level": 12, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_ArcherDoll", - "TID": "TID_GEAR_TITLE_ARCHER_CROWN", - "InfoTID": "TID_GEAR_INFO_ARCHER_CROWN", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2200, - "MainAbilities": "ArcherQueenSpawnArchers", - "MainAbilityLevels": 5, - "DPS": 115, - "PreviewScenario": "GearArcherCrown", - "HealOnActivation": 325 - }, - "13": { - "Level": 13, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_ArcherDoll", - "TID": "TID_GEAR_TITLE_ARCHER_CROWN", - "InfoTID": "TID_GEAR_INFO_ARCHER_CROWN", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2300, - "MainAbilities": "ArcherQueenSpawnArchers", - "MainAbilityLevels": 5, - "DPS": 122, - "PreviewScenario": "GearArcherCrown", - "HealOnActivation": 340 - }, - "14": { - "Level": 14, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_ArcherDoll", - "TID": "TID_GEAR_TITLE_ARCHER_CROWN", - "InfoTID": "TID_GEAR_INFO_ARCHER_CROWN", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2400;600", - "MainAbilities": "ArcherQueenSpawnArchers", - "MainAbilityLevels": 5, - "DPS": 127, - "PreviewScenario": "GearArcherCrown", - "HealOnActivation": 360 - }, - "15": { - "Level": 15, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_ArcherDoll", - "TID": "TID_GEAR_TITLE_ARCHER_CROWN", - "InfoTID": "TID_GEAR_INFO_ARCHER_CROWN", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2500, - "MainAbilities": "ArcherQueenSpawnArchers", - "MainAbilityLevels": 6, - "DPS": 132, - "PreviewScenario": "GearArcherCrown", - "HealOnActivation": 380 - }, - "16": { - "Level": 16, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_ArcherDoll", - "TID": "TID_GEAR_TITLE_ARCHER_CROWN", - "InfoTID": "TID_GEAR_INFO_ARCHER_CROWN", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2600, - "MainAbilities": "ArcherQueenSpawnArchers", - "MainAbilityLevels": 6, - "DPS": 136, - "PreviewScenario": "GearArcherCrown", - "HealOnActivation": 400 - }, - "17": { - "Level": 17, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_ArcherDoll", - "TID": "TID_GEAR_TITLE_ARCHER_CROWN", - "InfoTID": "TID_GEAR_INFO_ARCHER_CROWN", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2700;600", - "MainAbilities": "ArcherQueenSpawnArchers", - "MainAbilityLevels": 6, - "DPS": 140, - "PreviewScenario": "GearArcherCrown", - "HealOnActivation": 420 - }, - "18": { - "Level": 18, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_ArcherDoll", - "TID": "TID_GEAR_TITLE_ARCHER_CROWN", - "InfoTID": "TID_GEAR_INFO_ARCHER_CROWN", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2700;600", - "MainAbilities": "ArcherQueenSpawnArchers", - "MainAbilityLevels": 7, - "DPS": 144, - "PreviewScenario": "GearArcherCrown", - "HealOnActivation": 440 - } - }, - "Invisibility Vial": { - "1": { - "Level": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_InvisVial", - "TID": "TID_GEAR_TITLE_ROYAL_CLOAK", - "InfoTID": "TID_GEAR_INFO_ROYAL_CLOAK", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 120, - "MainAbilities": "ArcherQueenInvisibility", - "MainAbilityLevels": 1, - "HitPoints": 80, - "PreviewScenario": "GearRoyalCloak" - }, - "2": { - "Level": 2, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_InvisVial", - "TID": "TID_GEAR_TITLE_ROYAL_CLOAK", - "InfoTID": "TID_GEAR_INFO_ROYAL_CLOAK", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "240;20", - "MainAbilities": "ArcherQueenInvisibility", - "MainAbilityLevels": 2, - "HitPoints": 100, - "PreviewScenario": "GearRoyalCloak" - }, - "3": { - "Level": 3, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_InvisVial", - "TID": "TID_GEAR_TITLE_ROYAL_CLOAK", - "InfoTID": "TID_GEAR_INFO_ROYAL_CLOAK", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 400, - "MainAbilities": "ArcherQueenInvisibility", - "MainAbilityLevels": 3, - "HitPoints": 120, - "PreviewScenario": "GearRoyalCloak" - }, - "4": { - "Level": 4, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_InvisVial", - "TID": "TID_GEAR_TITLE_ROYAL_CLOAK", - "InfoTID": "TID_GEAR_INFO_ROYAL_CLOAK", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 600, - "MainAbilities": "ArcherQueenInvisibility", - "MainAbilityLevels": 4, - "HitPoints": 140, - "PreviewScenario": "GearRoyalCloak" - }, - "5": { - "Level": 5, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_InvisVial", - "TID": "TID_GEAR_TITLE_ROYAL_CLOAK", - "InfoTID": "TID_GEAR_INFO_ROYAL_CLOAK", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "840;100", - "MainAbilities": "ArcherQueenInvisibility", - "MainAbilityLevels": 5, - "HitPoints": 170, - "PreviewScenario": "GearRoyalCloak" - }, - "6": { - "Level": 6, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_InvisVial", - "TID": "TID_GEAR_TITLE_ROYAL_CLOAK", - "InfoTID": "TID_GEAR_INFO_ROYAL_CLOAK", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1120, - "MainAbilities": "ArcherQueenInvisibility", - "MainAbilityLevels": 6, - "HitPoints": 200, - "PreviewScenario": "GearRoyalCloak" - }, - "7": { - "Level": 7, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_InvisVial", - "TID": "TID_GEAR_TITLE_ROYAL_CLOAK", - "InfoTID": "TID_GEAR_INFO_ROYAL_CLOAK", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1440, - "MainAbilities": "ArcherQueenInvisibility", - "MainAbilityLevels": 7, - "HitPoints": 250, - "PreviewScenario": "GearRoyalCloak" - }, - "8": { - "Level": 8, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_InvisVial", - "TID": "TID_GEAR_TITLE_ROYAL_CLOAK", - "InfoTID": "TID_GEAR_INFO_ROYAL_CLOAK", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "1800;200", - "MainAbilities": "ArcherQueenInvisibility", - "MainAbilityLevels": 8, - "HitPoints": 300, - "PreviewScenario": "GearRoyalCloak" - }, - "9": { - "Level": 9, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_InvisVial", - "TID": "TID_GEAR_TITLE_ROYAL_CLOAK", - "InfoTID": "TID_GEAR_INFO_ROYAL_CLOAK", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1900, - "MainAbilities": "ArcherQueenInvisibility", - "MainAbilityLevels": 9, - "HitPoints": 340, - "PreviewScenario": "GearRoyalCloak" - }, - "10": { - "Level": 10, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_InvisVial", - "TID": "TID_GEAR_TITLE_ROYAL_CLOAK", - "InfoTID": "TID_GEAR_INFO_ROYAL_CLOAK", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2000, - "MainAbilities": "ArcherQueenInvisibility", - "MainAbilityLevels": 10, - "HitPoints": 380, - "PreviewScenario": "GearRoyalCloak" - }, - "11": { - "Level": 11, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_InvisVial", - "TID": "TID_GEAR_TITLE_ROYAL_CLOAK", - "InfoTID": "TID_GEAR_INFO_ROYAL_CLOAK", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2100;400", - "MainAbilities": "ArcherQueenInvisibility", - "MainAbilityLevels": 11, - "HitPoints": 420, - "PreviewScenario": "GearRoyalCloak" - }, - "12": { - "Level": 12, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_InvisVial", - "TID": "TID_GEAR_TITLE_ROYAL_CLOAK", - "InfoTID": "TID_GEAR_INFO_ROYAL_CLOAK", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2200, - "MainAbilities": "ArcherQueenInvisibility", - "MainAbilityLevels": 12, - "HitPoints": 460, - "PreviewScenario": "GearRoyalCloak" - }, - "13": { - "Level": 13, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_InvisVial", - "TID": "TID_GEAR_TITLE_ROYAL_CLOAK", - "InfoTID": "TID_GEAR_INFO_ROYAL_CLOAK", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2300, - "MainAbilities": "ArcherQueenInvisibility", - "MainAbilityLevels": 13, - "HitPoints": 500, - "PreviewScenario": "GearRoyalCloak" - }, - "14": { - "Level": 14, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_InvisVial", - "TID": "TID_GEAR_TITLE_ROYAL_CLOAK", - "InfoTID": "TID_GEAR_INFO_ROYAL_CLOAK", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2400;600", - "MainAbilities": "ArcherQueenInvisibility", - "MainAbilityLevels": 14, - "HitPoints": 540, - "PreviewScenario": "GearRoyalCloak" - }, - "15": { - "Level": 15, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_InvisVial", - "TID": "TID_GEAR_TITLE_ROYAL_CLOAK", - "InfoTID": "TID_GEAR_INFO_ROYAL_CLOAK", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2500, - "MainAbilities": "ArcherQueenInvisibility", - "MainAbilityLevels": 15, - "HitPoints": 580, - "PreviewScenario": "GearRoyalCloak" - }, - "16": { - "Level": 16, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_InvisVial", - "TID": "TID_GEAR_TITLE_ROYAL_CLOAK", - "InfoTID": "TID_GEAR_INFO_ROYAL_CLOAK", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2600, - "MainAbilities": "ArcherQueenInvisibility", - "MainAbilityLevels": 16, - "HitPoints": 620, - "PreviewScenario": "GearRoyalCloak" - }, - "17": { - "Level": 17, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_InvisVial", - "TID": "TID_GEAR_TITLE_ROYAL_CLOAK", - "InfoTID": "TID_GEAR_INFO_ROYAL_CLOAK", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2700;600", - "MainAbilities": "ArcherQueenInvisibility", - "MainAbilityLevels": 17, - "HitPoints": 660, - "PreviewScenario": "GearRoyalCloak" - }, - "18": { - "Level": 18, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_InvisVial", - "TID": "TID_GEAR_TITLE_ROYAL_CLOAK", - "InfoTID": "TID_GEAR_INFO_ROYAL_CLOAK", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2700;600", - "MainAbilities": "ArcherQueenInvisibility", - "MainAbilityLevels": 18, - "HitPoints": 700, - "PreviewScenario": "GearRoyalCloak" - } - }, - "Eternal Tome": { - "1": { - "Level": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_EternalTome", - "TID": "TID_GEAR_TITLE_ETERNAL_TOME", - "InfoTID": "TID_GEAR_INFO_ETERNAL_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 120, - "MainAbilities": "GrandWardenInvulnerability", - "MainAbilityLevels": 1, - "PreviewScenario": "GearEternalTome" - }, - "2": { - "Level": 2, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_EternalTome", - "TID": "TID_GEAR_TITLE_ETERNAL_TOME", - "InfoTID": "TID_GEAR_INFO_ETERNAL_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "240;20", - "MainAbilities": "GrandWardenInvulnerability", - "MainAbilityLevels": 2, - "PreviewScenario": "GearEternalTome" - }, - "3": { - "Level": 3, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_EternalTome", - "TID": "TID_GEAR_TITLE_ETERNAL_TOME", - "InfoTID": "TID_GEAR_INFO_ETERNAL_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 400, - "MainAbilities": "GrandWardenInvulnerability", - "MainAbilityLevels": 3, - "PreviewScenario": "GearEternalTome" - }, - "4": { - "Level": 4, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_EternalTome", - "TID": "TID_GEAR_TITLE_ETERNAL_TOME", - "InfoTID": "TID_GEAR_INFO_ETERNAL_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 600, - "MainAbilities": "GrandWardenInvulnerability", - "MainAbilityLevels": 4, - "PreviewScenario": "GearEternalTome" - }, - "5": { - "Level": 5, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_EternalTome", - "TID": "TID_GEAR_TITLE_ETERNAL_TOME", - "InfoTID": "TID_GEAR_INFO_ETERNAL_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "840;100", - "MainAbilities": "GrandWardenInvulnerability", - "MainAbilityLevels": 5, - "PreviewScenario": "GearEternalTome" - }, - "6": { - "Level": 6, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_EternalTome", - "TID": "TID_GEAR_TITLE_ETERNAL_TOME", - "InfoTID": "TID_GEAR_INFO_ETERNAL_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1120, - "MainAbilities": "GrandWardenInvulnerability", - "MainAbilityLevels": 6, - "PreviewScenario": "GearEternalTome" - }, - "7": { - "Level": 7, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_EternalTome", - "TID": "TID_GEAR_TITLE_ETERNAL_TOME", - "InfoTID": "TID_GEAR_INFO_ETERNAL_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1440, - "MainAbilities": "GrandWardenInvulnerability", - "MainAbilityLevels": 7, - "PreviewScenario": "GearEternalTome" - }, - "8": { - "Level": 8, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_EternalTome", - "TID": "TID_GEAR_TITLE_ETERNAL_TOME", - "InfoTID": "TID_GEAR_INFO_ETERNAL_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "1800;200", - "MainAbilities": "GrandWardenInvulnerability", - "MainAbilityLevels": 8, - "PreviewScenario": "GearEternalTome" - }, - "9": { - "Level": 9, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_EternalTome", - "TID": "TID_GEAR_TITLE_ETERNAL_TOME", - "InfoTID": "TID_GEAR_INFO_ETERNAL_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1900, - "MainAbilities": "GrandWardenInvulnerability", - "MainAbilityLevels": 9, - "PreviewScenario": "GearEternalTome" - }, - "10": { - "Level": 10, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_EternalTome", - "TID": "TID_GEAR_TITLE_ETERNAL_TOME", - "InfoTID": "TID_GEAR_INFO_ETERNAL_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2000, - "MainAbilities": "GrandWardenInvulnerability", - "MainAbilityLevels": 10, - "PreviewScenario": "GearEternalTome" - }, - "11": { - "Level": 11, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_EternalTome", - "TID": "TID_GEAR_TITLE_ETERNAL_TOME", - "InfoTID": "TID_GEAR_INFO_ETERNAL_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2100;400", - "MainAbilities": "GrandWardenInvulnerability", - "MainAbilityLevels": 11, - "PreviewScenario": "GearEternalTome" - }, - "12": { - "Level": 12, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_EternalTome", - "TID": "TID_GEAR_TITLE_ETERNAL_TOME", - "InfoTID": "TID_GEAR_INFO_ETERNAL_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2200, - "MainAbilities": "GrandWardenInvulnerability", - "MainAbilityLevels": 12, - "PreviewScenario": "GearEternalTome" - }, - "13": { - "Level": 13, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_EternalTome", - "TID": "TID_GEAR_TITLE_ETERNAL_TOME", - "InfoTID": "TID_GEAR_INFO_ETERNAL_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2300, - "MainAbilities": "GrandWardenInvulnerability", - "MainAbilityLevels": 13, - "PreviewScenario": "GearEternalTome" - }, - "14": { - "Level": 14, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_EternalTome", - "TID": "TID_GEAR_TITLE_ETERNAL_TOME", - "InfoTID": "TID_GEAR_INFO_ETERNAL_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2400;600", - "MainAbilities": "GrandWardenInvulnerability", - "MainAbilityLevels": 14, - "PreviewScenario": "GearEternalTome" - }, - "15": { - "Level": 15, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_EternalTome", - "TID": "TID_GEAR_TITLE_ETERNAL_TOME", - "InfoTID": "TID_GEAR_INFO_ETERNAL_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2500, - "MainAbilities": "GrandWardenInvulnerability", - "MainAbilityLevels": 15, - "PreviewScenario": "GearEternalTome" - }, - "16": { - "Level": 16, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_EternalTome", - "TID": "TID_GEAR_TITLE_ETERNAL_TOME", - "InfoTID": "TID_GEAR_INFO_ETERNAL_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2600, - "MainAbilities": "GrandWardenInvulnerability", - "MainAbilityLevels": 16, - "PreviewScenario": "GearEternalTome" - }, - "17": { - "Level": 17, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_EternalTome", - "TID": "TID_GEAR_TITLE_ETERNAL_TOME", - "InfoTID": "TID_GEAR_INFO_ETERNAL_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2700;600", - "MainAbilities": "GrandWardenInvulnerability", - "MainAbilityLevels": 17, - "PreviewScenario": "GearEternalTome" - }, - "18": { - "Level": 18, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_EternalTome", - "TID": "TID_GEAR_TITLE_ETERNAL_TOME", - "InfoTID": "TID_GEAR_INFO_ETERNAL_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2700;600", - "MainAbilities": "GrandWardenInvulnerability", - "MainAbilityLevels": 18, - "PreviewScenario": "GearEternalTome" - } - }, - "Life Gem": { - "1": { - "Level": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HealGem", - "TID": "TID_GEAR_TITLE_LIFE_GEM", - "InfoTID": "TID_GEAR_INFO_LIFE_GEM", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 120, - "MainAbilities": "GrandWardenLifeAura", - "MainAbilityLevels": 1, - "HitPoints": 150, - "DPS": 10, - "PreviewScenario": "GearLifeGem" - }, - "2": { - "Level": 2, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HealGem", - "TID": "TID_GEAR_TITLE_LIFE_GEM", - "InfoTID": "TID_GEAR_INFO_LIFE_GEM", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "240;20", - "MainAbilities": "GrandWardenLifeAura", - "MainAbilityLevels": 1, - "HitPoints": 163, - "DPS": 12, - "PreviewScenario": "GearLifeGem" - }, - "3": { - "Level": 3, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HealGem", - "TID": "TID_GEAR_TITLE_LIFE_GEM", - "InfoTID": "TID_GEAR_INFO_LIFE_GEM", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 400, - "MainAbilities": "GrandWardenLifeAura", - "MainAbilityLevels": 2, - "HitPoints": 172, - "DPS": 14, - "PreviewScenario": "GearLifeGem" - }, - "4": { - "Level": 4, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HealGem", - "TID": "TID_GEAR_TITLE_LIFE_GEM", - "InfoTID": "TID_GEAR_INFO_LIFE_GEM", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 600, - "MainAbilities": "GrandWardenLifeAura", - "MainAbilityLevels": 2, - "HitPoints": 181, - "DPS": 16, - "PreviewScenario": "GearLifeGem" - }, - "5": { - "Level": 5, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HealGem", - "TID": "TID_GEAR_TITLE_LIFE_GEM", - "InfoTID": "TID_GEAR_INFO_LIFE_GEM", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "840;100", - "MainAbilities": "GrandWardenLifeAura", - "MainAbilityLevels": 2, - "HitPoints": 192, - "DPS": 18, - "PreviewScenario": "GearLifeGem" - }, - "6": { - "Level": 6, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HealGem", - "TID": "TID_GEAR_TITLE_LIFE_GEM", - "InfoTID": "TID_GEAR_INFO_LIFE_GEM", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1120, - "MainAbilities": "GrandWardenLifeAura", - "MainAbilityLevels": 3, - "HitPoints": 203, - "DPS": 20, - "PreviewScenario": "GearLifeGem" - }, - "7": { - "Level": 7, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HealGem", - "TID": "TID_GEAR_TITLE_LIFE_GEM", - "InfoTID": "TID_GEAR_INFO_LIFE_GEM", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1440, - "MainAbilities": "GrandWardenLifeAura", - "MainAbilityLevels": 3, - "HitPoints": 225, - "DPS": 22, - "PreviewScenario": "GearLifeGem" - }, - "8": { - "Level": 8, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HealGem", - "TID": "TID_GEAR_TITLE_LIFE_GEM", - "InfoTID": "TID_GEAR_INFO_LIFE_GEM", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "1800;200", - "MainAbilities": "GrandWardenLifeAura", - "MainAbilityLevels": 3, - "HitPoints": 249, - "DPS": 24, - "PreviewScenario": "GearLifeGem" - }, - "9": { - "Level": 9, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HealGem", - "TID": "TID_GEAR_TITLE_LIFE_GEM", - "InfoTID": "TID_GEAR_INFO_LIFE_GEM", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1900, - "MainAbilities": "GrandWardenLifeAura", - "MainAbilityLevels": 4, - "HitPoints": 275, - "DPS": 28, - "PreviewScenario": "GearLifeGem" - }, - "10": { - "Level": 10, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HealGem", - "TID": "TID_GEAR_TITLE_LIFE_GEM", - "InfoTID": "TID_GEAR_INFO_LIFE_GEM", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2000, - "MainAbilities": "GrandWardenLifeAura", - "MainAbilityLevels": 4, - "HitPoints": 304, - "DPS": 32, - "PreviewScenario": "GearLifeGem" - }, - "11": { - "Level": 11, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HealGem", - "TID": "TID_GEAR_TITLE_LIFE_GEM", - "InfoTID": "TID_GEAR_INFO_LIFE_GEM", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2100;400", - "MainAbilities": "GrandWardenLifeAura", - "MainAbilityLevels": 4, - "HitPoints": 336, - "DPS": 38, - "PreviewScenario": "GearLifeGem" - }, - "12": { - "Level": 12, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HealGem", - "TID": "TID_GEAR_TITLE_LIFE_GEM", - "InfoTID": "TID_GEAR_INFO_LIFE_GEM", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2200, - "MainAbilities": "GrandWardenLifeAura", - "MainAbilityLevels": 5, - "HitPoints": 351, - "DPS": 42, - "PreviewScenario": "GearLifeGem" - }, - "13": { - "Level": 13, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HealGem", - "TID": "TID_GEAR_TITLE_LIFE_GEM", - "InfoTID": "TID_GEAR_INFO_LIFE_GEM", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2300, - "MainAbilities": "GrandWardenLifeAura", - "MainAbilityLevels": 5, - "HitPoints": 366, - "DPS": 46, - "PreviewScenario": "GearLifeGem" - }, - "14": { - "Level": 14, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HealGem", - "TID": "TID_GEAR_TITLE_LIFE_GEM", - "InfoTID": "TID_GEAR_INFO_LIFE_GEM", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2400;600", - "MainAbilities": "GrandWardenLifeAura", - "MainAbilityLevels": 5, - "HitPoints": 381, - "DPS": 50, - "PreviewScenario": "GearLifeGem" - }, - "15": { - "Level": 15, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HealGem", - "TID": "TID_GEAR_TITLE_LIFE_GEM", - "InfoTID": "TID_GEAR_INFO_LIFE_GEM", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2500, - "MainAbilities": "GrandWardenLifeAura", - "MainAbilityLevels": 6, - "HitPoints": 396, - "DPS": 54, - "PreviewScenario": "GearLifeGem" - }, - "16": { - "Level": 16, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HealGem", - "TID": "TID_GEAR_TITLE_LIFE_GEM", - "InfoTID": "TID_GEAR_INFO_LIFE_GEM", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2600, - "MainAbilities": "GrandWardenLifeAura", - "MainAbilityLevels": 6, - "HitPoints": 411, - "DPS": 58, - "PreviewScenario": "GearLifeGem" - }, - "17": { - "Level": 17, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HealGem", - "TID": "TID_GEAR_TITLE_LIFE_GEM", - "InfoTID": "TID_GEAR_INFO_LIFE_GEM", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2700;600", - "MainAbilities": "GrandWardenLifeAura", - "MainAbilityLevels": 6, - "HitPoints": 426, - "DPS": 62, - "PreviewScenario": "GearLifeGem" - }, - "18": { - "Level": 18, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HealGem", - "TID": "TID_GEAR_TITLE_LIFE_GEM", - "InfoTID": "TID_GEAR_INFO_LIFE_GEM", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2700;600", - "MainAbilities": "GrandWardenLifeAura", - "MainAbilityLevels": 7, - "HitPoints": 441, - "DPS": 66, - "PreviewScenario": "GearLifeGem" - } - }, - "Seeking Shield": { - "1": { - "Level": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_RC_SeekingShield", - "TID": "TID_GEAR_TITLE_SEEKING_SHIELD", - "InfoTID": "TID_GEAR_INFO_SEEKING_SHIELD", - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 120, - "MainAbilities": "RoyalChampionShieldBounce", - "MainAbilityLevels": 1, - "HitPoints": 40, - "PreviewScenario": "GearSeekingShield" - }, - "2": { - "Level": 2, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_RC_SeekingShield", - "TID": "TID_GEAR_TITLE_SEEKING_SHIELD", - "InfoTID": "TID_GEAR_INFO_SEEKING_SHIELD", - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "240;20", - "MainAbilities": "RoyalChampionShieldBounce", - "MainAbilityLevels": 1, - "HitPoints": 60, - "PreviewScenario": "GearSeekingShield" - }, - "3": { - "Level": 3, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_RC_SeekingShield", - "TID": "TID_GEAR_TITLE_SEEKING_SHIELD", - "InfoTID": "TID_GEAR_INFO_SEEKING_SHIELD", - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 400, - "MainAbilities": "RoyalChampionShieldBounce", - "MainAbilityLevels": 2, - "HitPoints": 80, - "PreviewScenario": "GearSeekingShield" - }, - "4": { - "Level": 4, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_RC_SeekingShield", - "TID": "TID_GEAR_TITLE_SEEKING_SHIELD", - "InfoTID": "TID_GEAR_INFO_SEEKING_SHIELD", - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 600, - "MainAbilities": "RoyalChampionShieldBounce", - "MainAbilityLevels": 2, - "HitPoints": 100, - "PreviewScenario": "GearSeekingShield" - }, - "5": { - "Level": 5, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_RC_SeekingShield", - "TID": "TID_GEAR_TITLE_SEEKING_SHIELD", - "InfoTID": "TID_GEAR_INFO_SEEKING_SHIELD", - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "840;100", - "MainAbilities": "RoyalChampionShieldBounce", - "MainAbilityLevels": 2, - "HitPoints": 120, - "PreviewScenario": "GearSeekingShield" - }, - "6": { - "Level": 6, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_RC_SeekingShield", - "TID": "TID_GEAR_TITLE_SEEKING_SHIELD", - "InfoTID": "TID_GEAR_INFO_SEEKING_SHIELD", - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1120, - "MainAbilities": "RoyalChampionShieldBounce", - "MainAbilityLevels": 3, - "HitPoints": 140, - "PreviewScenario": "GearSeekingShield" - }, - "7": { - "Level": 7, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_RC_SeekingShield", - "TID": "TID_GEAR_TITLE_SEEKING_SHIELD", - "InfoTID": "TID_GEAR_INFO_SEEKING_SHIELD", - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1440, - "MainAbilities": "RoyalChampionShieldBounce", - "MainAbilityLevels": 3, - "HitPoints": 160, - "PreviewScenario": "GearSeekingShield" - }, - "8": { - "Level": 8, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_RC_SeekingShield", - "TID": "TID_GEAR_TITLE_SEEKING_SHIELD", - "InfoTID": "TID_GEAR_INFO_SEEKING_SHIELD", - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "1800;200", - "MainAbilities": "RoyalChampionShieldBounce", - "MainAbilityLevels": 3, - "HitPoints": 180, - "PreviewScenario": "GearSeekingShield" - }, - "9": { - "Level": 9, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_RC_SeekingShield", - "TID": "TID_GEAR_TITLE_SEEKING_SHIELD", - "InfoTID": "TID_GEAR_INFO_SEEKING_SHIELD", - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1900, - "MainAbilities": "RoyalChampionShieldBounce", - "MainAbilityLevels": 4, - "HitPoints": 200, - "PreviewScenario": "GearSeekingShield" - }, - "10": { - "Level": 10, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_RC_SeekingShield", - "TID": "TID_GEAR_TITLE_SEEKING_SHIELD", - "InfoTID": "TID_GEAR_INFO_SEEKING_SHIELD", - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2000, - "MainAbilities": "RoyalChampionShieldBounce", - "MainAbilityLevels": 4, - "HitPoints": 220, - "PreviewScenario": "GearSeekingShield" - }, - "11": { - "Level": 11, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_RC_SeekingShield", - "TID": "TID_GEAR_TITLE_SEEKING_SHIELD", - "InfoTID": "TID_GEAR_INFO_SEEKING_SHIELD", - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2100;400", - "MainAbilities": "RoyalChampionShieldBounce", - "MainAbilityLevels": 4, - "HitPoints": 240, - "PreviewScenario": "GearSeekingShield" - }, - "12": { - "Level": 12, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_RC_SeekingShield", - "TID": "TID_GEAR_TITLE_SEEKING_SHIELD", - "InfoTID": "TID_GEAR_INFO_SEEKING_SHIELD", - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2200, - "MainAbilities": "RoyalChampionShieldBounce", - "MainAbilityLevels": 5, - "HitPoints": 260, - "PreviewScenario": "GearSeekingShield" - }, - "13": { - "Level": 13, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_RC_SeekingShield", - "TID": "TID_GEAR_TITLE_SEEKING_SHIELD", - "InfoTID": "TID_GEAR_INFO_SEEKING_SHIELD", - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2300, - "MainAbilities": "RoyalChampionShieldBounce", - "MainAbilityLevels": 5, - "HitPoints": 280, - "PreviewScenario": "GearSeekingShield" - }, - "14": { - "Level": 14, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_RC_SeekingShield", - "TID": "TID_GEAR_TITLE_SEEKING_SHIELD", - "InfoTID": "TID_GEAR_INFO_SEEKING_SHIELD", - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2400;600", - "MainAbilities": "RoyalChampionShieldBounce", - "MainAbilityLevels": 5, - "HitPoints": 300, - "PreviewScenario": "GearSeekingShield" - }, - "15": { - "Level": 15, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_RC_SeekingShield", - "TID": "TID_GEAR_TITLE_SEEKING_SHIELD", - "InfoTID": "TID_GEAR_INFO_SEEKING_SHIELD", - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2500, - "MainAbilities": "RoyalChampionShieldBounce", - "MainAbilityLevels": 6, - "HitPoints": 320, - "PreviewScenario": "GearSeekingShield" - }, - "16": { - "Level": 16, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_RC_SeekingShield", - "TID": "TID_GEAR_TITLE_SEEKING_SHIELD", - "InfoTID": "TID_GEAR_INFO_SEEKING_SHIELD", - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2600, - "MainAbilities": "RoyalChampionShieldBounce", - "MainAbilityLevels": 6, - "HitPoints": 340, - "PreviewScenario": "GearSeekingShield" - }, - "17": { - "Level": 17, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_RC_SeekingShield", - "TID": "TID_GEAR_TITLE_SEEKING_SHIELD", - "InfoTID": "TID_GEAR_INFO_SEEKING_SHIELD", - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2700;600", - "MainAbilities": "RoyalChampionShieldBounce", - "MainAbilityLevels": 6, - "HitPoints": 360, - "PreviewScenario": "GearSeekingShield" - }, - "18": { - "Level": 18, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_RC_SeekingShield", - "TID": "TID_GEAR_TITLE_SEEKING_SHIELD", - "InfoTID": "TID_GEAR_INFO_SEEKING_SHIELD", - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2700;600", - "MainAbilities": "RoyalChampionShieldBounce", - "MainAbilityLevels": 7, - "HitPoints": 380, - "PreviewScenario": "GearSeekingShield" - } - }, - "Royal Gem": { - "1": { - "Level": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HeartTome", - "TID": "TID_GEAR_PROTECTIVE_CLOAK", - "InfoTID": "TID_GEAR_INFO_PROTECTIVE_CLOAK", - "Deprecated": true, - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 6, - "RequiredCharacterLevel": 1, - "MainAbilities": "RCProtectiveCloak", - "MainAbilityLevels": 1, - "HitPoints": 123, - "HealOnActivation": 363 - }, - "2": { - "Level": 2, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HeartTome", - "TID": "TID_GEAR_PROTECTIVE_CLOAK", - "InfoTID": "TID_GEAR_INFO_PROTECTIVE_CLOAK", - "Deprecated": true, - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "MainAbilities": "RCProtectiveCloak", - "MainAbilityLevels": 1, - "HitPoints": 143, - "HealOnActivation": 423 - }, - "3": { - "Level": 3, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HeartTome", - "TID": "TID_GEAR_PROTECTIVE_CLOAK", - "InfoTID": "TID_GEAR_INFO_PROTECTIVE_CLOAK", - "Deprecated": true, - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "MainAbilities": "RCProtectiveCloak", - "MainAbilityLevels": 2, - "HitPoints": 164, - "HealOnActivation": 484 - }, - "4": { - "Level": 4, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HeartTome", - "TID": "TID_GEAR_PROTECTIVE_CLOAK", - "InfoTID": "TID_GEAR_INFO_PROTECTIVE_CLOAK", - "Deprecated": true, - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "MainAbilities": "RCProtectiveCloak", - "MainAbilityLevels": 2, - "HitPoints": 184, - "HealOnActivation": 544 - }, - "5": { - "Level": 5, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HeartTome", - "TID": "TID_GEAR_PROTECTIVE_CLOAK", - "InfoTID": "TID_GEAR_INFO_PROTECTIVE_CLOAK", - "Deprecated": true, - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "MainAbilities": "RCProtectiveCloak", - "MainAbilityLevels": 2, - "HitPoints": 205, - "HealOnActivation": 605 - }, - "6": { - "Level": 6, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HeartTome", - "TID": "TID_GEAR_PROTECTIVE_CLOAK", - "InfoTID": "TID_GEAR_INFO_PROTECTIVE_CLOAK", - "Deprecated": true, - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "MainAbilities": "RCProtectiveCloak", - "MainAbilityLevels": 3, - "HitPoints": 225, - "HealOnActivation": 665 - }, - "7": { - "Level": 7, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HeartTome", - "TID": "TID_GEAR_PROTECTIVE_CLOAK", - "InfoTID": "TID_GEAR_INFO_PROTECTIVE_CLOAK", - "Deprecated": true, - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "MainAbilities": "RCProtectiveCloak", - "MainAbilityLevels": 3, - "HitPoints": 246, - "HealOnActivation": 726 - }, - "8": { - "Level": 8, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HeartTome", - "TID": "TID_GEAR_PROTECTIVE_CLOAK", - "InfoTID": "TID_GEAR_INFO_PROTECTIVE_CLOAK", - "Deprecated": true, - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "MainAbilities": "RCProtectiveCloak", - "MainAbilityLevels": 3, - "HitPoints": 266, - "HealOnActivation": 786 - }, - "9": { - "Level": 9, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HeartTome", - "TID": "TID_GEAR_PROTECTIVE_CLOAK", - "InfoTID": "TID_GEAR_INFO_PROTECTIVE_CLOAK", - "Deprecated": true, - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "MainAbilities": "RCProtectiveCloak", - "MainAbilityLevels": 4, - "HitPoints": 307, - "HealOnActivation": 907 - }, - "10": { - "Level": 10, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HeartTome", - "TID": "TID_GEAR_PROTECTIVE_CLOAK", - "InfoTID": "TID_GEAR_INFO_PROTECTIVE_CLOAK", - "Deprecated": true, - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "MainAbilities": "RCProtectiveCloak", - "MainAbilityLevels": 4, - "HitPoints": 375, - "HealOnActivation": 1108 - }, - "11": { - "Level": 11, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HeartTome", - "TID": "TID_GEAR_PROTECTIVE_CLOAK", - "InfoTID": "TID_GEAR_INFO_PROTECTIVE_CLOAK", - "Deprecated": true, - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "MainAbilities": "RCProtectiveCloak", - "MainAbilityLevels": 4, - "HitPoints": 443, - "HealOnActivation": 1310 - }, - "12": { - "Level": 12, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HeartTome", - "TID": "TID_GEAR_PROTECTIVE_CLOAK", - "InfoTID": "TID_GEAR_INFO_PROTECTIVE_CLOAK", - "Deprecated": true, - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "MainAbilities": "RCProtectiveCloak", - "MainAbilityLevels": 5, - "HitPoints": 511, - "HealOnActivation": 1511 - }, - "13": { - "Level": 13, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HeartTome", - "TID": "TID_GEAR_PROTECTIVE_CLOAK", - "InfoTID": "TID_GEAR_INFO_PROTECTIVE_CLOAK", - "Deprecated": true, - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "MainAbilities": "RCProtectiveCloak", - "MainAbilityLevels": 5, - "HitPoints": 579, - "HealOnActivation": 1713 - }, - "14": { - "Level": 14, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HeartTome", - "TID": "TID_GEAR_PROTECTIVE_CLOAK", - "InfoTID": "TID_GEAR_INFO_PROTECTIVE_CLOAK", - "Deprecated": true, - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "MainAbilities": "RCProtectiveCloak", - "MainAbilityLevels": 5, - "HitPoints": 648, - "HealOnActivation": 1914 - }, - "15": { - "Level": 15, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HeartTome", - "TID": "TID_GEAR_PROTECTIVE_CLOAK", - "InfoTID": "TID_GEAR_INFO_PROTECTIVE_CLOAK", - "Deprecated": true, - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "MainAbilities": "RCProtectiveCloak", - "MainAbilityLevels": 6, - "HitPoints": 716, - "HealOnActivation": 2116 - }, - "16": { - "Level": 16, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HeartTome", - "TID": "TID_GEAR_PROTECTIVE_CLOAK", - "InfoTID": "TID_GEAR_INFO_PROTECTIVE_CLOAK", - "Deprecated": true, - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "MainAbilities": "RCProtectiveCloak", - "MainAbilityLevels": 6, - "HitPoints": 784, - "HealOnActivation": 2317 - }, - "17": { - "Level": 17, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HeartTome", - "TID": "TID_GEAR_PROTECTIVE_CLOAK", - "InfoTID": "TID_GEAR_INFO_PROTECTIVE_CLOAK", - "Deprecated": true, - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "MainAbilities": "RCProtectiveCloak", - "MainAbilityLevels": 6, - "HitPoints": 852, - "HealOnActivation": 2519 - }, - "18": { - "Level": 18, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HeartTome", - "TID": "TID_GEAR_PROTECTIVE_CLOAK", - "InfoTID": "TID_GEAR_INFO_PROTECTIVE_CLOAK", - "Deprecated": true, - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "MainAbilities": "RCProtectiveCloak", - "MainAbilityLevels": 7, - "HitPoints": 920, - "HealOnActivation": 2720 - } - }, - "Earthquake Boots": { - "1": { - "Level": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_StompBoots", - "TID": "TID_GEAR_EARTHQUAKE_BOOTS", - "InfoTID": "TID_GEAR_INFO_EARTHQUAKE_BOOTS", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 120, - "MainAbilities": "BarbarianKingEarthquakeBoots", - "MainAbilityLevels": 1, - "HitPoints": 209, - "DPS": 13, - "PreviewScenario": "GearEQboots" - }, - "2": { - "Level": 2, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_StompBoots", - "TID": "TID_GEAR_EARTHQUAKE_BOOTS", - "InfoTID": "TID_GEAR_INFO_EARTHQUAKE_BOOTS", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "240;20", - "MainAbilities": "BarbarianKingEarthquakeBoots", - "MainAbilityLevels": 1, - "HitPoints": 244, - "DPS": 15, - "PreviewScenario": "GearEQboots" - }, - "3": { - "Level": 3, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_StompBoots", - "TID": "TID_GEAR_EARTHQUAKE_BOOTS", - "InfoTID": "TID_GEAR_INFO_EARTHQUAKE_BOOTS", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 400, - "MainAbilities": "BarbarianKingEarthquakeBoots", - "MainAbilityLevels": 2, - "HitPoints": 278, - "DPS": 17, - "PreviewScenario": "GearEQboots" - }, - "4": { - "Level": 4, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_StompBoots", - "TID": "TID_GEAR_EARTHQUAKE_BOOTS", - "InfoTID": "TID_GEAR_INFO_EARTHQUAKE_BOOTS", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 600, - "MainAbilities": "BarbarianKingEarthquakeBoots", - "MainAbilityLevels": 2, - "HitPoints": 313, - "DPS": 19, - "PreviewScenario": "GearEQboots" - }, - "5": { - "Level": 5, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_StompBoots", - "TID": "TID_GEAR_EARTHQUAKE_BOOTS", - "InfoTID": "TID_GEAR_INFO_EARTHQUAKE_BOOTS", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "840;100", - "MainAbilities": "BarbarianKingEarthquakeBoots", - "MainAbilityLevels": 2, - "HitPoints": 348, - "DPS": 21, - "PreviewScenario": "GearEQboots" - }, - "6": { - "Level": 6, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_StompBoots", - "TID": "TID_GEAR_EARTHQUAKE_BOOTS", - "InfoTID": "TID_GEAR_INFO_EARTHQUAKE_BOOTS", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1120, - "MainAbilities": "BarbarianKingEarthquakeBoots", - "MainAbilityLevels": 3, - "HitPoints": 383, - "DPS": 23, - "PreviewScenario": "GearEQboots" - }, - "7": { - "Level": 7, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_StompBoots", - "TID": "TID_GEAR_EARTHQUAKE_BOOTS", - "InfoTID": "TID_GEAR_INFO_EARTHQUAKE_BOOTS", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1440, - "MainAbilities": "BarbarianKingEarthquakeBoots", - "MainAbilityLevels": 3, - "HitPoints": 418, - "DPS": 26, - "PreviewScenario": "GearEQboots" - }, - "8": { - "Level": 8, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_StompBoots", - "TID": "TID_GEAR_EARTHQUAKE_BOOTS", - "InfoTID": "TID_GEAR_INFO_EARTHQUAKE_BOOTS", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "1800;200", - "MainAbilities": "BarbarianKingEarthquakeBoots", - "MainAbilityLevels": 3, - "HitPoints": 452, - "DPS": 28, - "PreviewScenario": "GearEQboots" - }, - "9": { - "Level": 9, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_StompBoots", - "TID": "TID_GEAR_EARTHQUAKE_BOOTS", - "InfoTID": "TID_GEAR_INFO_EARTHQUAKE_BOOTS", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1900, - "MainAbilities": "BarbarianKingEarthquakeBoots", - "MainAbilityLevels": 4, - "HitPoints": 522, - "DPS": 32, - "PreviewScenario": "GearEQboots" - }, - "10": { - "Level": 10, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_StompBoots", - "TID": "TID_GEAR_EARTHQUAKE_BOOTS", - "InfoTID": "TID_GEAR_INFO_EARTHQUAKE_BOOTS", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2000, - "MainAbilities": "BarbarianKingEarthquakeBoots", - "MainAbilityLevels": 4, - "HitPoints": 677, - "DPS": 40, - "PreviewScenario": "GearEQboots" - }, - "11": { - "Level": 11, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_StompBoots", - "TID": "TID_GEAR_EARTHQUAKE_BOOTS", - "InfoTID": "TID_GEAR_INFO_EARTHQUAKE_BOOTS", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2100;400", - "MainAbilities": "BarbarianKingEarthquakeBoots", - "MainAbilityLevels": 4, - "HitPoints": 831, - "DPS": 48, - "PreviewScenario": "GearEQboots" - }, - "12": { - "Level": 12, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_StompBoots", - "TID": "TID_GEAR_EARTHQUAKE_BOOTS", - "InfoTID": "TID_GEAR_INFO_EARTHQUAKE_BOOTS", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2200, - "MainAbilities": "BarbarianKingEarthquakeBoots", - "MainAbilityLevels": 5, - "HitPoints": 986, - "DPS": 55, - "PreviewScenario": "GearEQboots" - }, - "13": { - "Level": 13, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_StompBoots", - "TID": "TID_GEAR_EARTHQUAKE_BOOTS", - "InfoTID": "TID_GEAR_INFO_EARTHQUAKE_BOOTS", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2300, - "MainAbilities": "BarbarianKingEarthquakeBoots", - "MainAbilityLevels": 5, - "HitPoints": 1140, - "DPS": 63, - "PreviewScenario": "GearEQboots" - }, - "14": { - "Level": 14, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_StompBoots", - "TID": "TID_GEAR_EARTHQUAKE_BOOTS", - "InfoTID": "TID_GEAR_INFO_EARTHQUAKE_BOOTS", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2400;600", - "MainAbilities": "BarbarianKingEarthquakeBoots", - "MainAbilityLevels": 5, - "HitPoints": 1295, - "DPS": 71, - "PreviewScenario": "GearEQboots" - }, - "15": { - "Level": 15, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_StompBoots", - "TID": "TID_GEAR_EARTHQUAKE_BOOTS", - "InfoTID": "TID_GEAR_INFO_EARTHQUAKE_BOOTS", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2500, - "MainAbilities": "BarbarianKingEarthquakeBoots", - "MainAbilityLevels": 6, - "HitPoints": 1449, - "DPS": 79, - "PreviewScenario": "GearEQboots" - }, - "16": { - "Level": 16, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_StompBoots", - "TID": "TID_GEAR_EARTHQUAKE_BOOTS", - "InfoTID": "TID_GEAR_INFO_EARTHQUAKE_BOOTS", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2600, - "MainAbilities": "BarbarianKingEarthquakeBoots", - "MainAbilityLevels": 6, - "HitPoints": 1604, - "DPS": 86, - "PreviewScenario": "GearEQboots" - }, - "17": { - "Level": 17, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_StompBoots", - "TID": "TID_GEAR_EARTHQUAKE_BOOTS", - "InfoTID": "TID_GEAR_INFO_EARTHQUAKE_BOOTS", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2700;600", - "MainAbilities": "BarbarianKingEarthquakeBoots", - "MainAbilityLevels": 6, - "HitPoints": 1758, - "DPS": 94, - "PreviewScenario": "GearEQboots" - }, - "18": { - "Level": 18, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_StompBoots", - "TID": "TID_GEAR_EARTHQUAKE_BOOTS", - "InfoTID": "TID_GEAR_INFO_EARTHQUAKE_BOOTS", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2700;600", - "MainAbilities": "BarbarianKingEarthquakeBoots", - "MainAbilityLevels": 7, - "HitPoints": 1913, - "DPS": 102, - "PreviewScenario": "GearEQboots" - } - }, - "Giant Gauntlet": { - "1": { - "Level": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_GiantGauntlet", - "TID": "TID_GEAR_GIANT_GAUNTLET", - "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 120, - "MainAbilities": "BarbarianKingGetsBig", - "MainAbilityLevels": 1, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 1, - "DPS": 17, - "PreviewScenario": "GearGauntlet" - }, - "2": { - "Level": 2, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_GiantGauntlet", - "TID": "TID_GEAR_GIANT_GAUNTLET", - "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "240;20", - "MainAbilities": "BarbarianKingGetsBig", - "MainAbilityLevels": 1, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 2, - "DPS": 20, - "PreviewScenario": "GearGauntlet" - }, - "3": { - "Level": 3, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_GiantGauntlet", - "TID": "TID_GEAR_GIANT_GAUNTLET", - "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 400, - "MainAbilities": "BarbarianKingGetsBig", - "MainAbilityLevels": 2, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 3, - "DPS": 23, - "PreviewScenario": "GearGauntlet" - }, - "4": { - "Level": 4, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_GiantGauntlet", - "TID": "TID_GEAR_GIANT_GAUNTLET", - "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 600, - "MainAbilities": "BarbarianKingGetsBig", - "MainAbilityLevels": 2, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 4, - "DPS": 26, - "PreviewScenario": "GearGauntlet" - }, - "5": { - "Level": 5, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_GiantGauntlet", - "TID": "TID_GEAR_GIANT_GAUNTLET", - "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "840;100", - "MainAbilities": "BarbarianKingGetsBig", - "MainAbilityLevels": 2, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 5, - "DPS": 29, - "PreviewScenario": "GearGauntlet" - }, - "6": { - "Level": 6, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_GiantGauntlet", - "TID": "TID_GEAR_GIANT_GAUNTLET", - "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1120, - "MainAbilities": "BarbarianKingGetsBig", - "MainAbilityLevels": 3, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 6, - "DPS": 32, - "PreviewScenario": "GearGauntlet" - }, - "7": { - "Level": 7, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_GiantGauntlet", - "TID": "TID_GEAR_GIANT_GAUNTLET", - "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1440, - "MainAbilities": "BarbarianKingGetsBig", - "MainAbilityLevels": 3, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 7, - "DPS": 34, - "PreviewScenario": "GearGauntlet" - }, - "8": { - "Level": 8, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_GiantGauntlet", - "TID": "TID_GEAR_GIANT_GAUNTLET", - "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre; EpicOre", - "UpgradeCosts": "1800;200;10", - "MainAbilities": "BarbarianKingGetsBig", - "MainAbilityLevels": 3, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 8, - "DPS": 37, - "PreviewScenario": "GearGauntlet" - }, - "9": { - "Level": 9, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_GiantGauntlet", - "TID": "TID_GEAR_GIANT_GAUNTLET", - "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1900, - "MainAbilities": "BarbarianKingGetsBig", - "MainAbilityLevels": 4, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 9, - "DPS": 43, - "PreviewScenario": "GearGauntlet" - }, - "10": { - "Level": 10, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_GiantGauntlet", - "TID": "TID_GEAR_GIANT_GAUNTLET", - "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2000, - "MainAbilities": "BarbarianKingGetsBig", - "MainAbilityLevels": 4, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 10, - "DPS": 53, - "PreviewScenario": "GearGauntlet" - }, - "11": { - "Level": 11, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_GiantGauntlet", - "TID": "TID_GEAR_GIANT_GAUNTLET", - "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre; EpicOre", - "UpgradeCosts": "2100;400;20", - "MainAbilities": "BarbarianKingGetsBig", - "MainAbilityLevels": 4, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 11, - "DPS": 63, - "PreviewScenario": "GearGauntlet" - }, - "12": { - "Level": 12, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_GiantGauntlet", - "TID": "TID_GEAR_GIANT_GAUNTLET", - "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2200, - "MainAbilities": "BarbarianKingGetsBig", - "MainAbilityLevels": 5, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 12, - "DPS": 74, - "PreviewScenario": "GearGauntlet" - }, - "13": { - "Level": 13, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_GiantGauntlet", - "TID": "TID_GEAR_GIANT_GAUNTLET", - "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2300, - "MainAbilities": "BarbarianKingGetsBig", - "MainAbilityLevels": 5, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 13, - "DPS": 84, - "PreviewScenario": "GearGauntlet" - }, - "14": { - "Level": 14, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_GiantGauntlet", - "TID": "TID_GEAR_GIANT_GAUNTLET", - "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre; EpicOre", - "UpgradeCosts": "2400;600;30", - "MainAbilities": "BarbarianKingGetsBig", - "MainAbilityLevels": 5, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 14, - "DPS": 94, - "PreviewScenario": "GearGauntlet" - }, - "15": { - "Level": 15, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_GiantGauntlet", - "TID": "TID_GEAR_GIANT_GAUNTLET", - "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2500, - "MainAbilities": "BarbarianKingGetsBig", - "MainAbilityLevels": 6, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 15, - "DPS": 104, - "PreviewScenario": "GearGauntlet" - }, - "16": { - "Level": 16, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_GiantGauntlet", - "TID": "TID_GEAR_GIANT_GAUNTLET", - "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2600, - "MainAbilities": "BarbarianKingGetsBig", - "MainAbilityLevels": 6, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 16, - "DPS": 115, - "PreviewScenario": "GearGauntlet" - }, - "17": { - "Level": 17, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_GiantGauntlet", - "TID": "TID_GEAR_GIANT_GAUNTLET", - "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre; EpicOre", - "UpgradeCosts": "2700;600;50", - "MainAbilities": "BarbarianKingGetsBig", - "MainAbilityLevels": 6, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 17, - "DPS": 125, - "PreviewScenario": "GearGauntlet" - }, - "18": { - "Level": 18, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_GiantGauntlet", - "TID": "TID_GEAR_GIANT_GAUNTLET", - "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2800, - "MainAbilities": "BarbarianKingGetsBig", - "MainAbilityLevels": 7, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 18, - "DPS": 135, - "PreviewScenario": "GearGauntlet" - }, - "19": { - "Level": 19, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_GiantGauntlet", - "TID": "TID_GEAR_GIANT_GAUNTLET", - "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2900, - "MainAbilities": "BarbarianKingGetsBig", - "MainAbilityLevels": 7, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 19, - "DPS": 140, - "PreviewScenario": "GearGauntlet" - }, - "20": { - "Level": 20, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_GiantGauntlet", - "TID": "TID_GEAR_GIANT_GAUNTLET", - "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre; EpicOre", - "UpgradeCosts": "3000;600;100", - "MainAbilities": "BarbarianKingGetsBig", - "MainAbilityLevels": 7, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 20, - "DPS": 145, - "PreviewScenario": "GearGauntlet" - }, - "21": { - "Level": 21, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_GiantGauntlet", - "TID": "TID_GEAR_GIANT_GAUNTLET", - "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 3100, - "MainAbilities": "BarbarianKingGetsBig", - "MainAbilityLevels": 8, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 21, - "DPS": 150, - "PreviewScenario": "GearGauntlet" - }, - "22": { - "Level": 22, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_GiantGauntlet", - "TID": "TID_GEAR_GIANT_GAUNTLET", - "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 8, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 3200, - "MainAbilities": "BarbarianKingGetsBig", - "MainAbilityLevels": 8, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 22, - "DPS": 155, - "PreviewScenario": "GearGauntlet" - }, - "23": { - "Level": 23, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_GiantGauntlet", - "TID": "TID_GEAR_GIANT_GAUNTLET", - "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 8, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre; EpicOre", - "UpgradeCosts": "3300;600;120", - "MainAbilities": "BarbarianKingGetsBig", - "MainAbilityLevels": 8, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 23, - "DPS": 160, - "PreviewScenario": "GearGauntlet" - }, - "24": { - "Level": 24, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_GiantGauntlet", - "TID": "TID_GEAR_GIANT_GAUNTLET", - "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 8, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 3400, - "MainAbilities": "BarbarianKingGetsBig", - "MainAbilityLevels": 9, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 24, - "DPS": 165, - "PreviewScenario": "GearGauntlet" - }, - "25": { - "Level": 25, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_GiantGauntlet", - "TID": "TID_GEAR_GIANT_GAUNTLET", - "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 9, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 3500, - "MainAbilities": "BarbarianKingGetsBig", - "MainAbilityLevels": 9, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 25, - "DPS": 170, - "PreviewScenario": "GearGauntlet" - }, - "26": { - "Level": 26, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_GiantGauntlet", - "TID": "TID_GEAR_GIANT_GAUNTLET", - "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 9, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre; EpicOre", - "UpgradeCosts": "3600;600;150", - "MainAbilities": "BarbarianKingGetsBig", - "MainAbilityLevels": 9, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 26, - "DPS": 175, - "PreviewScenario": "GearGauntlet" - }, - "27": { - "Level": 27, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_GiantGauntlet", - "TID": "TID_GEAR_GIANT_GAUNTLET", - "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 9, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre; EpicOre", - "UpgradeCosts": "3600;600;150", - "MainAbilities": "BarbarianKingGetsBig", - "MainAbilityLevels": 10, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 27, - "DPS": 180, - "PreviewScenario": "GearGauntlet" - } - }, - "Vampstache": { - "1": { - "Level": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_VampStache", - "TID": "TID_GEAR_VAMPSTACHE", - "InfoTID": "TID_GEAR_INFO_VAMPSTACHE", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 120, - "MainAbilities": "BarbarianKingVampstache", - "MainAbilityLevels": 1, - "AttackSpeedPercentage": 5, - "DPS": 9, - "PreviewScenario": "GearVampstache" - }, - "2": { - "Level": 2, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_VampStache", - "TID": "TID_GEAR_VAMPSTACHE", - "InfoTID": "TID_GEAR_INFO_VAMPSTACHE", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "240;20", - "MainAbilities": "BarbarianKingVampstache", - "MainAbilityLevels": 1, - "AttackSpeedPercentage": 6, - "DPS": 10, - "PreviewScenario": "GearVampstache" - }, - "3": { - "Level": 3, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_VampStache", - "TID": "TID_GEAR_VAMPSTACHE", - "InfoTID": "TID_GEAR_INFO_VAMPSTACHE", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 400, - "MainAbilities": "BarbarianKingVampstache", - "MainAbilityLevels": 2, - "AttackSpeedPercentage": 7, - "DPS": 12, - "PreviewScenario": "GearVampstache" - }, - "4": { - "Level": 4, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_VampStache", - "TID": "TID_GEAR_VAMPSTACHE", - "InfoTID": "TID_GEAR_INFO_VAMPSTACHE", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 600, - "MainAbilities": "BarbarianKingVampstache", - "MainAbilityLevels": 2, - "AttackSpeedPercentage": 8, - "DPS": 13, - "PreviewScenario": "GearVampstache" - }, - "5": { - "Level": 5, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_VampStache", - "TID": "TID_GEAR_VAMPSTACHE", - "InfoTID": "TID_GEAR_INFO_VAMPSTACHE", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "840;100", - "MainAbilities": "BarbarianKingVampstache", - "MainAbilityLevels": 2, - "AttackSpeedPercentage": 9, - "DPS": 15, - "PreviewScenario": "GearVampstache" - }, - "6": { - "Level": 6, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_VampStache", - "TID": "TID_GEAR_VAMPSTACHE", - "InfoTID": "TID_GEAR_INFO_VAMPSTACHE", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1120, - "MainAbilities": "BarbarianKingVampstache", - "MainAbilityLevels": 3, - "AttackSpeedPercentage": 10, - "DPS": 16, - "PreviewScenario": "GearVampstache" - }, - "7": { - "Level": 7, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_VampStache", - "TID": "TID_GEAR_VAMPSTACHE", - "InfoTID": "TID_GEAR_INFO_VAMPSTACHE", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1440, - "MainAbilities": "BarbarianKingVampstache", - "MainAbilityLevels": 3, - "AttackSpeedPercentage": 11, - "DPS": 18, - "PreviewScenario": "GearVampstache" - }, - "8": { - "Level": 8, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_VampStache", - "TID": "TID_GEAR_VAMPSTACHE", - "InfoTID": "TID_GEAR_INFO_VAMPSTACHE", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "1800;200", - "MainAbilities": "BarbarianKingVampstache", - "MainAbilityLevels": 3, - "AttackSpeedPercentage": 12, - "DPS": 19, - "PreviewScenario": "GearVampstache" - }, - "9": { - "Level": 9, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_VampStache", - "TID": "TID_GEAR_VAMPSTACHE", - "InfoTID": "TID_GEAR_INFO_VAMPSTACHE", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1900, - "MainAbilities": "BarbarianKingVampstache", - "MainAbilityLevels": 4, - "AttackSpeedPercentage": 13, - "DPS": 22, - "PreviewScenario": "GearVampstache" - }, - "10": { - "Level": 10, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_VampStache", - "TID": "TID_GEAR_VAMPSTACHE", - "InfoTID": "TID_GEAR_INFO_VAMPSTACHE", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2000, - "MainAbilities": "BarbarianKingVampstache", - "MainAbilityLevels": 4, - "AttackSpeedPercentage": 14, - "DPS": 27, - "PreviewScenario": "GearVampstache" - }, - "11": { - "Level": 11, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_VampStache", - "TID": "TID_GEAR_VAMPSTACHE", - "InfoTID": "TID_GEAR_INFO_VAMPSTACHE", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2100;400", - "MainAbilities": "BarbarianKingVampstache", - "MainAbilityLevels": 4, - "AttackSpeedPercentage": 15, - "DPS": 32, - "PreviewScenario": "GearVampstache" - }, - "12": { - "Level": 12, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_VampStache", - "TID": "TID_GEAR_VAMPSTACHE", - "InfoTID": "TID_GEAR_INFO_VAMPSTACHE", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2200, - "MainAbilities": "BarbarianKingVampstache", - "MainAbilityLevels": 5, - "AttackSpeedPercentage": 16, - "DPS": 37, - "PreviewScenario": "GearVampstache" - }, - "13": { - "Level": 13, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_VampStache", - "TID": "TID_GEAR_VAMPSTACHE", - "InfoTID": "TID_GEAR_INFO_VAMPSTACHE", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2300, - "MainAbilities": "BarbarianKingVampstache", - "MainAbilityLevels": 5, - "AttackSpeedPercentage": 17, - "DPS": 42, - "PreviewScenario": "GearVampstache" - }, - "14": { - "Level": 14, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_VampStache", - "TID": "TID_GEAR_VAMPSTACHE", - "InfoTID": "TID_GEAR_INFO_VAMPSTACHE", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2400;600", - "MainAbilities": "BarbarianKingVampstache", - "MainAbilityLevels": 5, - "AttackSpeedPercentage": 18, - "DPS": 48, - "PreviewScenario": "GearVampstache" - }, - "15": { - "Level": 15, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_VampStache", - "TID": "TID_GEAR_VAMPSTACHE", - "InfoTID": "TID_GEAR_INFO_VAMPSTACHE", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2500, - "MainAbilities": "BarbarianKingVampstache", - "MainAbilityLevels": 6, - "AttackSpeedPercentage": 19, - "DPS": 53, - "PreviewScenario": "GearVampstache" - }, - "16": { - "Level": 16, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_VampStache", - "TID": "TID_GEAR_VAMPSTACHE", - "InfoTID": "TID_GEAR_INFO_VAMPSTACHE", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2600, - "MainAbilities": "BarbarianKingVampstache", - "MainAbilityLevels": 6, - "AttackSpeedPercentage": 20, - "DPS": 58, - "PreviewScenario": "GearVampstache" - }, - "17": { - "Level": 17, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_VampStache", - "TID": "TID_GEAR_VAMPSTACHE", - "InfoTID": "TID_GEAR_INFO_VAMPSTACHE", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2700;600", - "MainAbilities": "BarbarianKingVampstache", - "MainAbilityLevels": 6, - "AttackSpeedPercentage": 21, - "DPS": 63, - "PreviewScenario": "GearVampstache" - }, - "18": { - "Level": 18, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_BK_VampStache", - "TID": "TID_GEAR_VAMPSTACHE", - "InfoTID": "TID_GEAR_INFO_VAMPSTACHE", - "AllowedCharacters": "Barbarian King;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2700;600", - "MainAbilities": "BarbarianKingVampstache", - "MainAbilityLevels": 7, - "AttackSpeedPercentage": 22, - "DPS": 68, - "PreviewScenario": "GearVampstache" - } - }, - "Frozen Arrow": { - "1": { - "Level": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_FreezeArrow", - "TID": "TID_GEAR_FROZEN_ARROW", - "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 120, - "MainAbilities": "ArcherQueenAttackFreeze", - "MainAbilityLevels": 1, - "DPS": 35, - "PreviewScenario": "GearFrozenArrow" - }, - "2": { - "Level": 2, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_FreezeArrow", - "TID": "TID_GEAR_FROZEN_ARROW", - "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "240;20", - "MainAbilities": "ArcherQueenAttackFreeze", - "MainAbilityLevels": 2, - "DPS": 40, - "PreviewScenario": "GearFrozenArrow" - }, - "3": { - "Level": 3, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_FreezeArrow", - "TID": "TID_GEAR_FROZEN_ARROW", - "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 400, - "MainAbilities": "ArcherQueenAttackFreeze", - "MainAbilityLevels": 3, - "DPS": 45, - "PreviewScenario": "GearFrozenArrow" - }, - "4": { - "Level": 4, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_FreezeArrow", - "TID": "TID_GEAR_FROZEN_ARROW", - "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 600, - "MainAbilities": "ArcherQueenAttackFreeze", - "MainAbilityLevels": 4, - "DPS": 50, - "PreviewScenario": "GearFrozenArrow" - }, - "5": { - "Level": 5, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_FreezeArrow", - "TID": "TID_GEAR_FROZEN_ARROW", - "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "840;100", - "MainAbilities": "ArcherQueenAttackFreeze", - "MainAbilityLevels": 5, - "DPS": 55, - "PreviewScenario": "GearFrozenArrow" - }, - "6": { - "Level": 6, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_FreezeArrow", - "TID": "TID_GEAR_FROZEN_ARROW", - "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1120, - "MainAbilities": "ArcherQueenAttackFreeze", - "MainAbilityLevels": 6, - "DPS": 60, - "PreviewScenario": "GearFrozenArrow" - }, - "7": { - "Level": 7, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_FreezeArrow", - "TID": "TID_GEAR_FROZEN_ARROW", - "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1440, - "MainAbilities": "ArcherQueenAttackFreeze", - "MainAbilityLevels": 7, - "DPS": 66, - "PreviewScenario": "GearFrozenArrow" - }, - "8": { - "Level": 8, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_FreezeArrow", - "TID": "TID_GEAR_FROZEN_ARROW", - "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre; EpicOre", - "UpgradeCosts": "1800;200;10", - "MainAbilities": "ArcherQueenAttackFreeze", - "MainAbilityLevels": 8, - "DPS": 72, - "PreviewScenario": "GearFrozenArrow" - }, - "9": { - "Level": 9, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_FreezeArrow", - "TID": "TID_GEAR_FROZEN_ARROW", - "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1900, - "MainAbilities": "ArcherQueenAttackFreeze", - "MainAbilityLevels": 9, - "DPS": 78, - "PreviewScenario": "GearFrozenArrow" - }, - "10": { - "Level": 10, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_FreezeArrow", - "TID": "TID_GEAR_FROZEN_ARROW", - "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2000, - "MainAbilities": "ArcherQueenAttackFreeze", - "MainAbilityLevels": 10, - "DPS": 85, - "PreviewScenario": "GearFrozenArrow" - }, - "11": { - "Level": 11, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_FreezeArrow", - "TID": "TID_GEAR_FROZEN_ARROW", - "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre; EpicOre", - "UpgradeCosts": "2100;400;20", - "MainAbilities": "ArcherQueenAttackFreeze", - "MainAbilityLevels": 11, - "DPS": 92, - "PreviewScenario": "GearFrozenArrow" - }, - "12": { - "Level": 12, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_FreezeArrow", - "TID": "TID_GEAR_FROZEN_ARROW", - "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2200, - "MainAbilities": "ArcherQueenAttackFreeze", - "MainAbilityLevels": 12, - "DPS": 99, - "PreviewScenario": "GearFrozenArrow" - }, - "13": { - "Level": 13, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_FreezeArrow", - "TID": "TID_GEAR_FROZEN_ARROW", - "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2300, - "MainAbilities": "ArcherQueenAttackFreeze", - "MainAbilityLevels": 13, - "DPS": 105, - "PreviewScenario": "GearFrozenArrow" - }, - "14": { - "Level": 14, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_FreezeArrow", - "TID": "TID_GEAR_FROZEN_ARROW", - "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre; EpicOre", - "UpgradeCosts": "2400;600;30", - "MainAbilities": "ArcherQueenAttackFreeze", - "MainAbilityLevels": 14, - "DPS": 111, - "PreviewScenario": "GearFrozenArrow" - }, - "15": { - "Level": 15, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_FreezeArrow", - "TID": "TID_GEAR_FROZEN_ARROW", - "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2500, - "MainAbilities": "ArcherQueenAttackFreeze", - "MainAbilityLevels": 15, - "DPS": 117, - "PreviewScenario": "GearFrozenArrow" - }, - "16": { - "Level": 16, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_FreezeArrow", - "TID": "TID_GEAR_FROZEN_ARROW", - "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2600, - "MainAbilities": "ArcherQueenAttackFreeze", - "MainAbilityLevels": 16, - "DPS": 122, - "PreviewScenario": "GearFrozenArrow" - }, - "17": { - "Level": 17, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_FreezeArrow", - "TID": "TID_GEAR_FROZEN_ARROW", - "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre; EpicOre", - "UpgradeCosts": "2700;600;50", - "MainAbilities": "ArcherQueenAttackFreeze", - "MainAbilityLevels": 17, - "DPS": 127, - "PreviewScenario": "GearFrozenArrow" - }, - "18": { - "Level": 18, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_FreezeArrow", - "TID": "TID_GEAR_FROZEN_ARROW", - "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2800, - "MainAbilities": "ArcherQueenAttackFreeze", - "MainAbilityLevels": 18, - "DPS": 132, - "PreviewScenario": "GearFrozenArrow" - }, - "19": { - "Level": 19, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_FreezeArrow", - "TID": "TID_GEAR_FROZEN_ARROW", - "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2900, - "MainAbilities": "ArcherQueenAttackFreeze", - "MainAbilityLevels": 19, - "DPS": 136, - "PreviewScenario": "GearFrozenArrow" - }, - "20": { - "Level": 20, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_FreezeArrow", - "TID": "TID_GEAR_FROZEN_ARROW", - "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre; EpicOre", - "UpgradeCosts": "3000;600;100", - "MainAbilities": "ArcherQueenAttackFreeze", - "MainAbilityLevels": 20, - "DPS": 140, - "PreviewScenario": "GearFrozenArrow" - }, - "21": { - "Level": 21, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_FreezeArrow", - "TID": "TID_GEAR_FROZEN_ARROW", - "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 3100, - "MainAbilities": "ArcherQueenAttackFreeze", - "MainAbilityLevels": 21, - "DPS": 144, - "PreviewScenario": "GearFrozenArrow" - }, - "22": { - "Level": 22, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_FreezeArrow", - "TID": "TID_GEAR_FROZEN_ARROW", - "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 8, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 3200, - "MainAbilities": "ArcherQueenAttackFreeze", - "MainAbilityLevels": 22, - "DPS": 148, - "PreviewScenario": "GearFrozenArrow" - }, - "23": { - "Level": 23, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_FreezeArrow", - "TID": "TID_GEAR_FROZEN_ARROW", - "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 8, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre; EpicOre", - "UpgradeCosts": "3300;600;120", - "MainAbilities": "ArcherQueenAttackFreeze", - "MainAbilityLevels": 23, - "DPS": 152, - "PreviewScenario": "GearFrozenArrow" - }, - "24": { - "Level": 24, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_FreezeArrow", - "TID": "TID_GEAR_FROZEN_ARROW", - "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 8, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 3400, - "MainAbilities": "ArcherQueenAttackFreeze", - "MainAbilityLevels": 24, - "DPS": 156, - "PreviewScenario": "GearFrozenArrow" - }, - "25": { - "Level": 25, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_FreezeArrow", - "TID": "TID_GEAR_FROZEN_ARROW", - "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 9, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 3500, - "MainAbilities": "ArcherQueenAttackFreeze", - "MainAbilityLevels": 25, - "DPS": 160, - "PreviewScenario": "GearFrozenArrow" - }, - "26": { - "Level": 26, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_FreezeArrow", - "TID": "TID_GEAR_FROZEN_ARROW", - "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 9, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre; EpicOre", - "UpgradeCosts": "3600;600;150", - "MainAbilities": "ArcherQueenAttackFreeze", - "MainAbilityLevels": 26, - "DPS": 164, - "PreviewScenario": "GearFrozenArrow" - }, - "27": { - "Level": 27, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_FreezeArrow", - "TID": "TID_GEAR_FROZEN_ARROW", - "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Epic", - "Claimable": true, - "RequiredBlacksmithLevel": 9, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre; EpicOre", - "UpgradeCosts": "3600;600;150", - "MainAbilities": "ArcherQueenAttackFreeze", - "MainAbilityLevels": 27, - "DPS": 168, - "PreviewScenario": "GearFrozenArrow" - } - }, - "Giant Arrow": { - "1": { - "Level": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_MagicArrow", - "TID": "TID_GEAR_PIERCING_ARROW", - "InfoTID": "TID_GEAR_INFO_PIERCING_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 2, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 120, - "MainAbilities": "ArcherQueenPierceProjectile", - "MainAbilityLevels": 1, - "HitPoints": 80, - "DPS": 20, - "PreviewScenario": "GearPiercingArrow" - }, - "2": { - "Level": 2, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_MagicArrow", - "TID": "TID_GEAR_PIERCING_ARROW", - "InfoTID": "TID_GEAR_INFO_PIERCING_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "240;20", - "MainAbilities": "ArcherQueenPierceProjectile", - "MainAbilityLevels": 1, - "HitPoints": 93, - "DPS": 23, - "PreviewScenario": "GearPiercingArrow" - }, - "3": { - "Level": 3, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_MagicArrow", - "TID": "TID_GEAR_PIERCING_ARROW", - "InfoTID": "TID_GEAR_INFO_PIERCING_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 400, - "MainAbilities": "ArcherQueenPierceProjectile", - "MainAbilityLevels": 2, - "HitPoints": 106, - "DPS": 27, - "PreviewScenario": "GearPiercingArrow" - }, - "4": { - "Level": 4, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_MagicArrow", - "TID": "TID_GEAR_PIERCING_ARROW", - "InfoTID": "TID_GEAR_INFO_PIERCING_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 600, - "MainAbilities": "ArcherQueenPierceProjectile", - "MainAbilityLevels": 2, - "HitPoints": 119, - "DPS": 30, - "PreviewScenario": "GearPiercingArrow" - }, - "5": { - "Level": 5, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_MagicArrow", - "TID": "TID_GEAR_PIERCING_ARROW", - "InfoTID": "TID_GEAR_INFO_PIERCING_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "840;100", - "MainAbilities": "ArcherQueenPierceProjectile", - "MainAbilityLevels": 2, - "HitPoints": 133, - "DPS": 33, - "PreviewScenario": "GearPiercingArrow" - }, - "6": { - "Level": 6, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_MagicArrow", - "TID": "TID_GEAR_PIERCING_ARROW", - "InfoTID": "TID_GEAR_INFO_PIERCING_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1120, - "MainAbilities": "ArcherQueenPierceProjectile", - "MainAbilityLevels": 3, - "HitPoints": 146, - "DPS": 37, - "PreviewScenario": "GearPiercingArrow" - }, - "7": { - "Level": 7, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_MagicArrow", - "TID": "TID_GEAR_PIERCING_ARROW", - "InfoTID": "TID_GEAR_INFO_PIERCING_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1440, - "MainAbilities": "ArcherQueenPierceProjectile", - "MainAbilityLevels": 3, - "HitPoints": 159, - "DPS": 40, - "PreviewScenario": "GearPiercingArrow" - }, - "8": { - "Level": 8, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_MagicArrow", - "TID": "TID_GEAR_PIERCING_ARROW", - "InfoTID": "TID_GEAR_INFO_PIERCING_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "1800;200", - "MainAbilities": "ArcherQueenPierceProjectile", - "MainAbilityLevels": 3, - "HitPoints": 172, - "DPS": 43, - "PreviewScenario": "GearPiercingArrow" - }, - "9": { - "Level": 9, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_MagicArrow", - "TID": "TID_GEAR_PIERCING_ARROW", - "InfoTID": "TID_GEAR_INFO_PIERCING_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1900, - "MainAbilities": "ArcherQueenPierceProjectile", - "MainAbilityLevels": 4, - "HitPoints": 199, - "DPS": 50, - "PreviewScenario": "GearPiercingArrow" - }, - "10": { - "Level": 10, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_MagicArrow", - "TID": "TID_GEAR_PIERCING_ARROW", - "InfoTID": "TID_GEAR_INFO_PIERCING_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2000, - "MainAbilities": "ArcherQueenPierceProjectile", - "MainAbilityLevels": 4, - "HitPoints": 241, - "DPS": 59, - "PreviewScenario": "GearPiercingArrow" - }, - "11": { - "Level": 11, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_MagicArrow", - "TID": "TID_GEAR_PIERCING_ARROW", - "InfoTID": "TID_GEAR_INFO_PIERCING_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2100;400", - "MainAbilities": "ArcherQueenPierceProjectile", - "MainAbilityLevels": 4, - "HitPoints": 284, - "DPS": 68, - "PreviewScenario": "GearPiercingArrow" - }, - "12": { - "Level": 12, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_MagicArrow", - "TID": "TID_GEAR_PIERCING_ARROW", - "InfoTID": "TID_GEAR_INFO_PIERCING_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2200, - "MainAbilities": "ArcherQueenPierceProjectile", - "MainAbilityLevels": 5, - "HitPoints": 326, - "DPS": 77, - "PreviewScenario": "GearPiercingArrow" - }, - "13": { - "Level": 13, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_MagicArrow", - "TID": "TID_GEAR_PIERCING_ARROW", - "InfoTID": "TID_GEAR_INFO_PIERCING_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2300, - "MainAbilities": "ArcherQueenPierceProjectile", - "MainAbilityLevels": 5, - "HitPoints": 369, - "DPS": 86, - "PreviewScenario": "GearPiercingArrow" - }, - "14": { - "Level": 14, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_MagicArrow", - "TID": "TID_GEAR_PIERCING_ARROW", - "InfoTID": "TID_GEAR_INFO_PIERCING_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2400;600", - "MainAbilities": "ArcherQueenPierceProjectile", - "MainAbilityLevels": 5, - "HitPoints": 411, - "DPS": 96, - "PreviewScenario": "GearPiercingArrow" - }, - "15": { - "Level": 15, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_MagicArrow", - "TID": "TID_GEAR_PIERCING_ARROW", - "InfoTID": "TID_GEAR_INFO_PIERCING_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2500, - "MainAbilities": "ArcherQueenPierceProjectile", - "MainAbilityLevels": 6, - "HitPoints": 454, - "DPS": 105, - "PreviewScenario": "GearPiercingArrow" - }, - "16": { - "Level": 16, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_MagicArrow", - "TID": "TID_GEAR_PIERCING_ARROW", - "InfoTID": "TID_GEAR_INFO_PIERCING_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2600, - "MainAbilities": "ArcherQueenPierceProjectile", - "MainAbilityLevels": 6, - "HitPoints": 496, - "DPS": 114, - "PreviewScenario": "GearPiercingArrow" - }, - "17": { - "Level": 17, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_MagicArrow", - "TID": "TID_GEAR_PIERCING_ARROW", - "InfoTID": "TID_GEAR_INFO_PIERCING_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2700;600", - "MainAbilities": "ArcherQueenPierceProjectile", - "MainAbilityLevels": 6, - "HitPoints": 539, - "DPS": 123, - "PreviewScenario": "GearPiercingArrow" - }, - "18": { - "Level": 18, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_MagicArrow", - "TID": "TID_GEAR_PIERCING_ARROW", - "InfoTID": "TID_GEAR_INFO_PIERCING_ARROW", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2700;600", - "MainAbilities": "ArcherQueenPierceProjectile", - "MainAbilityLevels": 7, - "HitPoints": 581, - "DPS": 132, - "PreviewScenario": "GearPiercingArrow" - } - }, - "Healer Puppet": { - "1": { - "Level": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_HealerDoll", - "TID": "TID_GEAR_HEALER_JAR", - "InfoTID": "TID_GEAR_INFO_HEALER_JAR", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 120, - "MainAbilities": "ArcherQueenSpawnHealers", - "MainAbilityLevels": 1, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 1, - "HitPoints": 132, - "PreviewScenario": "GearHealerJar" - }, - "2": { - "Level": 2, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_HealerDoll", - "TID": "TID_GEAR_HEALER_JAR", - "InfoTID": "TID_GEAR_INFO_HEALER_JAR", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "240;20", - "MainAbilities": "ArcherQueenSpawnHealers", - "MainAbilityLevels": 1, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 2, - "HitPoints": 154, - "PreviewScenario": "GearHealerJar" - }, - "3": { - "Level": 3, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_HealerDoll", - "TID": "TID_GEAR_HEALER_JAR", - "InfoTID": "TID_GEAR_INFO_HEALER_JAR", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 400, - "MainAbilities": "ArcherQueenSpawnHealers", - "MainAbilityLevels": 2, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 3, - "HitPoints": 177, - "PreviewScenario": "GearHealerJar" - }, - "4": { - "Level": 4, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_HealerDoll", - "TID": "TID_GEAR_HEALER_JAR", - "InfoTID": "TID_GEAR_INFO_HEALER_JAR", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 600, - "MainAbilities": "ArcherQueenSpawnHealers", - "MainAbilityLevels": 2, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 4, - "HitPoints": 199, - "PreviewScenario": "GearHealerJar" - }, - "5": { - "Level": 5, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_HealerDoll", - "TID": "TID_GEAR_HEALER_JAR", - "InfoTID": "TID_GEAR_INFO_HEALER_JAR", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "840;100", - "MainAbilities": "ArcherQueenSpawnHealers", - "MainAbilityLevels": 2, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 5, - "HitPoints": 221, - "PreviewScenario": "GearHealerJar" - }, - "6": { - "Level": 6, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_HealerDoll", - "TID": "TID_GEAR_HEALER_JAR", - "InfoTID": "TID_GEAR_INFO_HEALER_JAR", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1120, - "MainAbilities": "ArcherQueenSpawnHealers", - "MainAbilityLevels": 3, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 6, - "HitPoints": 243, - "PreviewScenario": "GearHealerJar" - }, - "7": { - "Level": 7, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_HealerDoll", - "TID": "TID_GEAR_HEALER_JAR", - "InfoTID": "TID_GEAR_INFO_HEALER_JAR", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1440, - "MainAbilities": "ArcherQueenSpawnHealers", - "MainAbilityLevels": 3, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 7, - "HitPoints": 265, - "PreviewScenario": "GearHealerJar" - }, - "8": { - "Level": 8, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_HealerDoll", - "TID": "TID_GEAR_HEALER_JAR", - "InfoTID": "TID_GEAR_INFO_HEALER_JAR", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "1800;200", - "MainAbilities": "ArcherQueenSpawnHealers", - "MainAbilityLevels": 3, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 8, - "HitPoints": 287, - "PreviewScenario": "GearHealerJar" - }, - "9": { - "Level": 9, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_HealerDoll", - "TID": "TID_GEAR_HEALER_JAR", - "InfoTID": "TID_GEAR_INFO_HEALER_JAR", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1900, - "MainAbilities": "ArcherQueenSpawnHealers", - "MainAbilityLevels": 4, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 9, - "HitPoints": 331, - "PreviewScenario": "GearHealerJar" - }, - "10": { - "Level": 10, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_HealerDoll", - "TID": "TID_GEAR_HEALER_JAR", - "InfoTID": "TID_GEAR_INFO_HEALER_JAR", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2000, - "MainAbilities": "ArcherQueenSpawnHealers", - "MainAbilityLevels": 4, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 10, - "HitPoints": 402, - "PreviewScenario": "GearHealerJar" - }, - "11": { - "Level": 11, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_HealerDoll", - "TID": "TID_GEAR_HEALER_JAR", - "InfoTID": "TID_GEAR_INFO_HEALER_JAR", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2100;400", - "MainAbilities": "ArcherQueenSpawnHealers", - "MainAbilityLevels": 4, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 11, - "HitPoints": 473, - "PreviewScenario": "GearHealerJar" - }, - "12": { - "Level": 12, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_HealerDoll", - "TID": "TID_GEAR_HEALER_JAR", - "InfoTID": "TID_GEAR_INFO_HEALER_JAR", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2200, - "MainAbilities": "ArcherQueenSpawnHealers", - "MainAbilityLevels": 5, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 12, - "HitPoints": 543, - "PreviewScenario": "GearHealerJar" - }, - "13": { - "Level": 13, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_HealerDoll", - "TID": "TID_GEAR_HEALER_JAR", - "InfoTID": "TID_GEAR_INFO_HEALER_JAR", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2300, - "MainAbilities": "ArcherQueenSpawnHealers", - "MainAbilityLevels": 5, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 13, - "HitPoints": 614, - "PreviewScenario": "GearHealerJar" - }, - "14": { - "Level": 14, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_HealerDoll", - "TID": "TID_GEAR_HEALER_JAR", - "InfoTID": "TID_GEAR_INFO_HEALER_JAR", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2400;600", - "MainAbilities": "ArcherQueenSpawnHealers", - "MainAbilityLevels": 5, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 14, - "HitPoints": 685, - "PreviewScenario": "GearHealerJar" - }, - "15": { - "Level": 15, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_HealerDoll", - "TID": "TID_GEAR_HEALER_JAR", - "InfoTID": "TID_GEAR_INFO_HEALER_JAR", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2500, - "MainAbilities": "ArcherQueenSpawnHealers", - "MainAbilityLevels": 6, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 15, - "HitPoints": 756, - "PreviewScenario": "GearHealerJar" - }, - "16": { - "Level": 16, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_HealerDoll", - "TID": "TID_GEAR_HEALER_JAR", - "InfoTID": "TID_GEAR_INFO_HEALER_JAR", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2600, - "MainAbilities": "ArcherQueenSpawnHealers", - "MainAbilityLevels": 6, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 16, - "HitPoints": 826, - "PreviewScenario": "GearHealerJar" - }, - "17": { - "Level": 17, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_HealerDoll", - "TID": "TID_GEAR_HEALER_JAR", - "InfoTID": "TID_GEAR_INFO_HEALER_JAR", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2700;600", - "MainAbilities": "ArcherQueenSpawnHealers", - "MainAbilityLevels": 6, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 17, - "HitPoints": 897, - "PreviewScenario": "GearHealerJar" - }, - "18": { - "Level": 18, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_AQ_HealerDoll", - "TID": "TID_GEAR_HEALER_JAR", - "InfoTID": "TID_GEAR_INFO_HEALER_JAR", - "AllowedCharacters": "Archer Queen;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2700;600", - "MainAbilities": "ArcherQueenSpawnHealers", - "MainAbilityLevels": 7, - "ExtraAbilities": "Regeneration", - "ExtraAbilityLevels": 18, - "HitPoints": 968, - "PreviewScenario": "GearHealerJar" - } - }, - "Magic Tinderbox": { - "1": { - "Level": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_FireSack", - "TID": "TID_GEAR_FIRE_IN_A_CAN", - "InfoTID": "TID_GEAR_INFO_FIRE_IN_A_CAN", - "Deprecated": true, - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 2, - "RequiredCharacterLevel": 1, - "MainAbilities": "GrandWardenFireball", - "MainAbilityLevels": 1, - "PreviewScenario": "GearFireInCan" - } - }, - "Rage Gem": { - "1": { - "Level": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_RageGem", - "TID": "TID_GEAR_ANGRY_TOME", - "InfoTID": "TID_GEAR_INFO_ANGRY_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 4, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 120, - "MainAbilities": "GrandWardenRageAura", - "MainAbilityLevels": 1, - "AttackSpeedPercentage": 5, - "DPS": 12, - "PreviewScenario": "GearAngryTome" - }, - "2": { - "Level": 2, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_RageGem", - "TID": "TID_GEAR_ANGRY_TOME", - "InfoTID": "TID_GEAR_INFO_ANGRY_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "240;20", - "MainAbilities": "GrandWardenRageAura", - "MainAbilityLevels": 1, - "AttackSpeedPercentage": 6, - "DPS": 14, - "PreviewScenario": "GearAngryTome" - }, - "3": { - "Level": 3, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_RageGem", - "TID": "TID_GEAR_ANGRY_TOME", - "InfoTID": "TID_GEAR_INFO_ANGRY_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 400, - "MainAbilities": "GrandWardenRageAura", - "MainAbilityLevels": 2, - "AttackSpeedPercentage": 7, - "DPS": 16, - "PreviewScenario": "GearAngryTome" - }, - "4": { - "Level": 4, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_RageGem", - "TID": "TID_GEAR_ANGRY_TOME", - "InfoTID": "TID_GEAR_INFO_ANGRY_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 600, - "MainAbilities": "GrandWardenRageAura", - "MainAbilityLevels": 2, - "AttackSpeedPercentage": 8, - "DPS": 18, - "PreviewScenario": "GearAngryTome" - }, - "5": { - "Level": 5, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_RageGem", - "TID": "TID_GEAR_ANGRY_TOME", - "InfoTID": "TID_GEAR_INFO_ANGRY_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "840;100", - "MainAbilities": "GrandWardenRageAura", - "MainAbilityLevels": 2, - "AttackSpeedPercentage": 9, - "DPS": 20, - "PreviewScenario": "GearAngryTome" - }, - "6": { - "Level": 6, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_RageGem", - "TID": "TID_GEAR_ANGRY_TOME", - "InfoTID": "TID_GEAR_INFO_ANGRY_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1120, - "MainAbilities": "GrandWardenRageAura", - "MainAbilityLevels": 3, - "AttackSpeedPercentage": 10, - "DPS": 22, - "PreviewScenario": "GearAngryTome" - }, - "7": { - "Level": 7, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_RageGem", - "TID": "TID_GEAR_ANGRY_TOME", - "InfoTID": "TID_GEAR_INFO_ANGRY_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1440, - "MainAbilities": "GrandWardenRageAura", - "MainAbilityLevels": 3, - "AttackSpeedPercentage": 11, - "DPS": 24, - "PreviewScenario": "GearAngryTome" - }, - "8": { - "Level": 8, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_RageGem", - "TID": "TID_GEAR_ANGRY_TOME", - "InfoTID": "TID_GEAR_INFO_ANGRY_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "1800;200", - "MainAbilities": "GrandWardenRageAura", - "MainAbilityLevels": 3, - "AttackSpeedPercentage": 12, - "DPS": 26, - "PreviewScenario": "GearAngryTome" - }, - "9": { - "Level": 9, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_RageGem", - "TID": "TID_GEAR_ANGRY_TOME", - "InfoTID": "TID_GEAR_INFO_ANGRY_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1900, - "MainAbilities": "GrandWardenRageAura", - "MainAbilityLevels": 4, - "AttackSpeedPercentage": 13, - "DPS": 30, - "PreviewScenario": "GearAngryTome" - }, - "10": { - "Level": 10, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_RageGem", - "TID": "TID_GEAR_ANGRY_TOME", - "InfoTID": "TID_GEAR_INFO_ANGRY_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2000, - "MainAbilities": "GrandWardenRageAura", - "MainAbilityLevels": 4, - "AttackSpeedPercentage": 14, - "DPS": 36, - "PreviewScenario": "GearAngryTome" - }, - "11": { - "Level": 11, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_RageGem", - "TID": "TID_GEAR_ANGRY_TOME", - "InfoTID": "TID_GEAR_INFO_ANGRY_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2100;400", - "MainAbilities": "GrandWardenRageAura", - "MainAbilityLevels": 4, - "AttackSpeedPercentage": 15, - "DPS": 43, - "PreviewScenario": "GearAngryTome" - }, - "12": { - "Level": 12, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_RageGem", - "TID": "TID_GEAR_ANGRY_TOME", - "InfoTID": "TID_GEAR_INFO_ANGRY_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2200, - "MainAbilities": "GrandWardenRageAura", - "MainAbilityLevels": 5, - "AttackSpeedPercentage": 16, - "DPS": 49, - "PreviewScenario": "GearAngryTome" - }, - "13": { - "Level": 13, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_RageGem", - "TID": "TID_GEAR_ANGRY_TOME", - "InfoTID": "TID_GEAR_INFO_ANGRY_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2300, - "MainAbilities": "GrandWardenRageAura", - "MainAbilityLevels": 5, - "AttackSpeedPercentage": 17, - "DPS": 56, - "PreviewScenario": "GearAngryTome" - }, - "14": { - "Level": 14, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_RageGem", - "TID": "TID_GEAR_ANGRY_TOME", - "InfoTID": "TID_GEAR_INFO_ANGRY_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2400;600", - "MainAbilities": "GrandWardenRageAura", - "MainAbilityLevels": 5, - "AttackSpeedPercentage": 18, - "DPS": 62, - "PreviewScenario": "GearAngryTome" - }, - "15": { - "Level": 15, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_RageGem", - "TID": "TID_GEAR_ANGRY_TOME", - "InfoTID": "TID_GEAR_INFO_ANGRY_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2500, - "MainAbilities": "GrandWardenRageAura", - "MainAbilityLevels": 6, - "AttackSpeedPercentage": 19, - "DPS": 69, - "PreviewScenario": "GearAngryTome" - }, - "16": { - "Level": 16, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_RageGem", - "TID": "TID_GEAR_ANGRY_TOME", - "InfoTID": "TID_GEAR_INFO_ANGRY_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2600, - "MainAbilities": "GrandWardenRageAura", - "MainAbilityLevels": 6, - "AttackSpeedPercentage": 20, - "DPS": 75, - "PreviewScenario": "GearAngryTome" - }, - "17": { - "Level": 17, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_RageGem", - "TID": "TID_GEAR_ANGRY_TOME", - "InfoTID": "TID_GEAR_INFO_ANGRY_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2700;600", - "MainAbilities": "GrandWardenRageAura", - "MainAbilityLevels": 6, - "AttackSpeedPercentage": 21, - "DPS": 82, - "PreviewScenario": "GearAngryTome" - }, - "18": { - "Level": 18, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_RageGem", - "TID": "TID_GEAR_ANGRY_TOME", - "InfoTID": "TID_GEAR_INFO_ANGRY_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2700;600", - "MainAbilities": "GrandWardenRageAura", - "MainAbilityLevels": 7, - "AttackSpeedPercentage": 22, - "DPS": 88, - "PreviewScenario": "GearAngryTome" - } - }, - "Hog Rider Puppet": { - "1": { - "Level": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_a", - "TID": "TID_GEAR_HOG_TOTEM", - "InfoTID": "TID_GEAR_INFO_HOG_TOTEM", - "Deprecated": true, - "AllowedCharacters": "Warrior Princess;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 4, - "RequiredCharacterLevel": 1, - "MainAbilities": "RoyalChampionSpawnHeadhunter", - "MainAbilityLevels": 1 - } - }, - "Healing Tome": { - "1": { - "Level": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HeartTome", - "TID": "TID_GEAR_HEALING_TOME", - "InfoTID": "TID_GEAR_INFO_HEALING_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 6, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 120, - "MainAbilities": "GrandWardenHealAura", - "MainAbilityLevels": 1, - "HitPoints": 92, - "PreviewScenario": "GearHealingTome", - "HealOnActivation": 165 - }, - "2": { - "Level": 2, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HeartTome", - "TID": "TID_GEAR_HEALING_TOME", - "InfoTID": "TID_GEAR_INFO_HEALING_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "240;20", - "MainAbilities": "GrandWardenHealAura", - "MainAbilityLevels": 1, - "HitPoints": 107, - "PreviewScenario": "GearHealingTome", - "HealOnActivation": 193 - }, - "3": { - "Level": 3, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HeartTome", - "TID": "TID_GEAR_HEALING_TOME", - "InfoTID": "TID_GEAR_INFO_HEALING_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 400, - "MainAbilities": "GrandWardenHealAura", - "MainAbilityLevels": 2, - "HitPoints": 122, - "PreviewScenario": "GearHealingTome", - "HealOnActivation": 220 - }, - "4": { - "Level": 4, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HeartTome", - "TID": "TID_GEAR_HEALING_TOME", - "InfoTID": "TID_GEAR_INFO_HEALING_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 600, - "MainAbilities": "GrandWardenHealAura", - "MainAbilityLevels": 2, - "HitPoints": 137, - "PreviewScenario": "GearHealingTome", - "HealOnActivation": 248 - }, - "5": { - "Level": 5, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HeartTome", - "TID": "TID_GEAR_HEALING_TOME", - "InfoTID": "TID_GEAR_INFO_HEALING_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "840;100", - "MainAbilities": "GrandWardenHealAura", - "MainAbilityLevels": 2, - "HitPoints": 153, - "PreviewScenario": "GearHealingTome", - "HealOnActivation": 275 - }, - "6": { - "Level": 6, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HeartTome", - "TID": "TID_GEAR_HEALING_TOME", - "InfoTID": "TID_GEAR_INFO_HEALING_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1120, - "MainAbilities": "GrandWardenHealAura", - "MainAbilityLevels": 3, - "HitPoints": 168, - "PreviewScenario": "GearHealingTome", - "HealOnActivation": 303 - }, - "7": { - "Level": 7, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HeartTome", - "TID": "TID_GEAR_HEALING_TOME", - "InfoTID": "TID_GEAR_INFO_HEALING_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1440, - "MainAbilities": "GrandWardenHealAura", - "MainAbilityLevels": 3, - "HitPoints": 183, - "PreviewScenario": "GearHealingTome", - "HealOnActivation": 330 - }, - "8": { - "Level": 8, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HeartTome", - "TID": "TID_GEAR_HEALING_TOME", - "InfoTID": "TID_GEAR_INFO_HEALING_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "1800;200", - "MainAbilities": "GrandWardenHealAura", - "MainAbilityLevels": 3, - "HitPoints": 198, - "PreviewScenario": "GearHealingTome", - "HealOnActivation": 358 - }, - "9": { - "Level": 9, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HeartTome", - "TID": "TID_GEAR_HEALING_TOME", - "InfoTID": "TID_GEAR_INFO_HEALING_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 1, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 1900, - "MainAbilities": "GrandWardenHealAura", - "MainAbilityLevels": 4, - "HitPoints": 229, - "PreviewScenario": "GearHealingTome", - "HealOnActivation": 413 - }, - "10": { - "Level": 10, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HeartTome", - "TID": "TID_GEAR_HEALING_TOME", - "InfoTID": "TID_GEAR_INFO_HEALING_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2000, - "MainAbilities": "GrandWardenHealAura", - "MainAbilityLevels": 4, - "HitPoints": 280, - "PreviewScenario": "GearHealingTome", - "HealOnActivation": 463 - }, - "11": { - "Level": 11, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HeartTome", - "TID": "TID_GEAR_HEALING_TOME", - "InfoTID": "TID_GEAR_INFO_HEALING_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2100;400", - "MainAbilities": "GrandWardenHealAura", - "MainAbilityLevels": 4, - "HitPoints": 330, - "PreviewScenario": "GearHealingTome", - "HealOnActivation": 513 - }, - "12": { - "Level": 12, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HeartTome", - "TID": "TID_GEAR_HEALING_TOME", - "InfoTID": "TID_GEAR_INFO_HEALING_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 3, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2200, - "MainAbilities": "GrandWardenHealAura", - "MainAbilityLevels": 5, - "HitPoints": 381, - "PreviewScenario": "GearHealingTome", - "HealOnActivation": 563 - }, - "13": { - "Level": 13, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HeartTome", - "TID": "TID_GEAR_HEALING_TOME", - "InfoTID": "TID_GEAR_INFO_HEALING_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2300, - "MainAbilities": "GrandWardenHealAura", - "MainAbilityLevels": 5, - "HitPoints": 432, - "PreviewScenario": "GearHealingTome", - "HealOnActivation": 613 - }, - "14": { - "Level": 14, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HeartTome", - "TID": "TID_GEAR_HEALING_TOME", - "InfoTID": "TID_GEAR_INFO_HEALING_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2400;600", - "MainAbilities": "GrandWardenHealAura", - "MainAbilityLevels": 5, - "HitPoints": 482, - "PreviewScenario": "GearHealingTome", - "HealOnActivation": 663 - }, - "15": { - "Level": 15, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HeartTome", - "TID": "TID_GEAR_HEALING_TOME", - "InfoTID": "TID_GEAR_INFO_HEALING_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 5, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2500, - "MainAbilities": "GrandWardenHealAura", - "MainAbilityLevels": 6, - "HitPoints": 533, - "PreviewScenario": "GearHealingTome", - "HealOnActivation": 713 - }, - "16": { - "Level": 16, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HeartTome", - "TID": "TID_GEAR_HEALING_TOME", - "InfoTID": "TID_GEAR_INFO_HEALING_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre", - "UpgradeCosts": 2600, - "MainAbilities": "GrandWardenHealAura", - "MainAbilityLevels": 6, - "HitPoints": 584, - "PreviewScenario": "GearHealingTome", - "HealOnActivation": 763 - }, - "17": { - "Level": 17, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HeartTome", - "TID": "TID_GEAR_HEALING_TOME", - "InfoTID": "TID_GEAR_INFO_HEALING_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2700;600", - "MainAbilities": "GrandWardenHealAura", - "MainAbilityLevels": 6, - "HitPoints": 634, - "PreviewScenario": "GearHealingTome", - "HealOnActivation": 813 - }, - "18": { - "Level": 18, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_gear_GW_HeartTome", - "TID": "TID_GEAR_HEALING_TOME", - "InfoTID": "TID_GEAR_INFO_HEALING_TOME", - "AllowedCharacters": "Grand Warden;", - "Rarity": "Common", - "RequiredBlacksmithLevel": 7, - "RequiredCharacterLevel": 1, - "UpgradeResources": "CommonOre; RareOre", - "UpgradeCosts": "2700;600", - "MainAbilities": "GrandWardenHealAura", - "MainAbilityLevels": 7, - "HitPoints": 685, - "PreviewScenario": "GearHealingTome", - "HealOnActivation": 863 - } - } +{ + "Barbarian Puppet": { + "1": { + "Level": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_a", + "TID": "TID_GEAR_TITLE_BARBARIAN_CROWN", + "InfoTID": "TID_GEAR_INFO_BARBARIAN_CROWN", + "Deprecated": true, + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 6, + "RequiredCharacterLevel": 1, + "MainAbilities": "RoyalChampionElectrifiedShield", + "MainAbilityLevels": 1 + } + }, + "Rage Vial": { + "1": { + "Level": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_RageVial", + "TID": "TID_GEAR_TITLE_IRON_FIST", + "InfoTID": "TID_GEAR_INFO_IRON_FIST", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 120, + "MainAbilities": "BarbarianKingRage", + "MainAbilityLevels": 1, + "DPS": 17, + "PreviewScenario": "GearFist", + "HealOnActivation": 150 + }, + "2": { + "Level": 2, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_RageVial", + "TID": "TID_GEAR_TITLE_IRON_FIST", + "InfoTID": "TID_GEAR_INFO_IRON_FIST", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "240;20", + "MainAbilities": "BarbarianKingRage", + "MainAbilityLevels": 1, + "DPS": 22, + "PreviewScenario": "GearFist", + "HealOnActivation": 225 + }, + "3": { + "Level": 3, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_RageVial", + "TID": "TID_GEAR_TITLE_IRON_FIST", + "InfoTID": "TID_GEAR_INFO_IRON_FIST", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 400, + "MainAbilities": "BarbarianKingRage", + "MainAbilityLevels": 2, + "DPS": 27, + "PreviewScenario": "GearFist", + "HealOnActivation": 300 + }, + "4": { + "Level": 4, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_RageVial", + "TID": "TID_GEAR_TITLE_IRON_FIST", + "InfoTID": "TID_GEAR_INFO_IRON_FIST", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 600, + "MainAbilities": "BarbarianKingRage", + "MainAbilityLevels": 2, + "DPS": 32, + "PreviewScenario": "GearFist", + "HealOnActivation": 375 + }, + "5": { + "Level": 5, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_RageVial", + "TID": "TID_GEAR_TITLE_IRON_FIST", + "InfoTID": "TID_GEAR_INFO_IRON_FIST", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "840;100", + "MainAbilities": "BarbarianKingRage", + "MainAbilityLevels": 2, + "DPS": 37, + "PreviewScenario": "GearFist", + "HealOnActivation": 450 + }, + "6": { + "Level": 6, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_RageVial", + "TID": "TID_GEAR_TITLE_IRON_FIST", + "InfoTID": "TID_GEAR_INFO_IRON_FIST", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1120, + "MainAbilities": "BarbarianKingRage", + "MainAbilityLevels": 3, + "DPS": 42, + "PreviewScenario": "GearFist", + "HealOnActivation": 525 + }, + "7": { + "Level": 7, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_RageVial", + "TID": "TID_GEAR_TITLE_IRON_FIST", + "InfoTID": "TID_GEAR_INFO_IRON_FIST", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1440, + "MainAbilities": "BarbarianKingRage", + "MainAbilityLevels": 3, + "DPS": 48, + "PreviewScenario": "GearFist", + "HealOnActivation": 600 + }, + "8": { + "Level": 8, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_RageVial", + "TID": "TID_GEAR_TITLE_IRON_FIST", + "InfoTID": "TID_GEAR_INFO_IRON_FIST", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "1800;200", + "MainAbilities": "BarbarianKingRage", + "MainAbilityLevels": 3, + "DPS": 54, + "PreviewScenario": "GearFist", + "HealOnActivation": 675 + }, + "9": { + "Level": 9, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_RageVial", + "TID": "TID_GEAR_TITLE_IRON_FIST", + "InfoTID": "TID_GEAR_INFO_IRON_FIST", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1900, + "MainAbilities": "BarbarianKingRage", + "MainAbilityLevels": 4, + "DPS": 60, + "PreviewScenario": "GearFist", + "HealOnActivation": 780 + }, + "10": { + "Level": 10, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_RageVial", + "TID": "TID_GEAR_TITLE_IRON_FIST", + "InfoTID": "TID_GEAR_INFO_IRON_FIST", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2000, + "MainAbilities": "BarbarianKingRage", + "MainAbilityLevels": 4, + "DPS": 66, + "PreviewScenario": "GearFist", + "HealOnActivation": 900 + }, + "11": { + "Level": 11, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_RageVial", + "TID": "TID_GEAR_TITLE_IRON_FIST", + "InfoTID": "TID_GEAR_INFO_IRON_FIST", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2100;400", + "MainAbilities": "BarbarianKingRage", + "MainAbilityLevels": 4, + "DPS": 72, + "PreviewScenario": "GearFist", + "HealOnActivation": 1020 + }, + "12": { + "Level": 12, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_RageVial", + "TID": "TID_GEAR_TITLE_IRON_FIST", + "InfoTID": "TID_GEAR_INFO_IRON_FIST", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2200, + "MainAbilities": "BarbarianKingRage", + "MainAbilityLevels": 5, + "DPS": 79, + "PreviewScenario": "GearFist", + "HealOnActivation": 1155 + }, + "13": { + "Level": 13, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_RageVial", + "TID": "TID_GEAR_TITLE_IRON_FIST", + "InfoTID": "TID_GEAR_INFO_IRON_FIST", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2300, + "MainAbilities": "BarbarianKingRage", + "MainAbilityLevels": 5, + "DPS": 86, + "PreviewScenario": "GearFist", + "HealOnActivation": 1290 + }, + "14": { + "Level": 14, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_RageVial", + "TID": "TID_GEAR_TITLE_IRON_FIST", + "InfoTID": "TID_GEAR_INFO_IRON_FIST", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2400;600", + "MainAbilities": "BarbarianKingRage", + "MainAbilityLevels": 5, + "DPS": 94, + "PreviewScenario": "GearFist", + "HealOnActivation": 1410 + }, + "15": { + "Level": 15, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_RageVial", + "TID": "TID_GEAR_TITLE_IRON_FIST", + "InfoTID": "TID_GEAR_INFO_IRON_FIST", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2500, + "MainAbilities": "BarbarianKingRage", + "MainAbilityLevels": 6, + "DPS": 104, + "PreviewScenario": "GearFist", + "HealOnActivation": 1590 + }, + "16": { + "Level": 16, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_RageVial", + "TID": "TID_GEAR_TITLE_IRON_FIST", + "InfoTID": "TID_GEAR_INFO_IRON_FIST", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2600, + "MainAbilities": "BarbarianKingRage", + "MainAbilityLevels": 6, + "DPS": 112, + "PreviewScenario": "GearFist", + "HealOnActivation": 1695 + }, + "17": { + "Level": 17, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_RageVial", + "TID": "TID_GEAR_TITLE_IRON_FIST", + "InfoTID": "TID_GEAR_INFO_IRON_FIST", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2700;600", + "MainAbilities": "BarbarianKingRage", + "MainAbilityLevels": 6, + "DPS": 120, + "PreviewScenario": "GearFist", + "HealOnActivation": 1800 + }, + "18": { + "Level": 18, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_RageVial", + "TID": "TID_GEAR_TITLE_IRON_FIST", + "InfoTID": "TID_GEAR_INFO_IRON_FIST", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2700;600", + "MainAbilities": "BarbarianKingRage", + "MainAbilityLevels": 7, + "DPS": 128, + "PreviewScenario": "GearFist", + "HealOnActivation": 1890 + } + }, + "Archer Puppet": { + "1": { + "Level": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_ArcherDoll", + "TID": "TID_GEAR_TITLE_ARCHER_CROWN", + "InfoTID": "TID_GEAR_INFO_ARCHER_CROWN", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 120, + "MainAbilities": "ArcherQueenSpawnArchers", + "MainAbilityLevels": 1, + "DPS": 26, + "PreviewScenario": "GearArcherCrown", + "HealOnActivation": 160 + }, + "2": { + "Level": 2, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_ArcherDoll", + "TID": "TID_GEAR_TITLE_ARCHER_CROWN", + "InfoTID": "TID_GEAR_INFO_ARCHER_CROWN", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "240;20", + "MainAbilities": "ArcherQueenSpawnArchers", + "MainAbilityLevels": 1, + "DPS": 34, + "PreviewScenario": "GearArcherCrown", + "HealOnActivation": 175 + }, + "3": { + "Level": 3, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_ArcherDoll", + "TID": "TID_GEAR_TITLE_ARCHER_CROWN", + "InfoTID": "TID_GEAR_INFO_ARCHER_CROWN", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 400, + "MainAbilities": "ArcherQueenSpawnArchers", + "MainAbilityLevels": 2, + "DPS": 42, + "PreviewScenario": "GearArcherCrown", + "HealOnActivation": 190 + }, + "4": { + "Level": 4, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_ArcherDoll", + "TID": "TID_GEAR_TITLE_ARCHER_CROWN", + "InfoTID": "TID_GEAR_INFO_ARCHER_CROWN", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 600, + "MainAbilities": "ArcherQueenSpawnArchers", + "MainAbilityLevels": 2, + "DPS": 49, + "PreviewScenario": "GearArcherCrown", + "HealOnActivation": 205 + }, + "5": { + "Level": 5, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_ArcherDoll", + "TID": "TID_GEAR_TITLE_ARCHER_CROWN", + "InfoTID": "TID_GEAR_INFO_ARCHER_CROWN", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "840;100", + "MainAbilities": "ArcherQueenSpawnArchers", + "MainAbilityLevels": 2, + "DPS": 55, + "PreviewScenario": "GearArcherCrown", + "HealOnActivation": 220 + }, + "6": { + "Level": 6, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_ArcherDoll", + "TID": "TID_GEAR_TITLE_ARCHER_CROWN", + "InfoTID": "TID_GEAR_INFO_ARCHER_CROWN", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1120, + "MainAbilities": "ArcherQueenSpawnArchers", + "MainAbilityLevels": 3, + "DPS": 62, + "PreviewScenario": "GearArcherCrown", + "HealOnActivation": 235 + }, + "7": { + "Level": 7, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_ArcherDoll", + "TID": "TID_GEAR_TITLE_ARCHER_CROWN", + "InfoTID": "TID_GEAR_INFO_ARCHER_CROWN", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1440, + "MainAbilities": "ArcherQueenSpawnArchers", + "MainAbilityLevels": 3, + "DPS": 71, + "PreviewScenario": "GearArcherCrown", + "HealOnActivation": 250 + }, + "8": { + "Level": 8, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_ArcherDoll", + "TID": "TID_GEAR_TITLE_ARCHER_CROWN", + "InfoTID": "TID_GEAR_INFO_ARCHER_CROWN", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "1800;200", + "MainAbilities": "ArcherQueenSpawnArchers", + "MainAbilityLevels": 3, + "DPS": 80, + "PreviewScenario": "GearArcherCrown", + "HealOnActivation": 265 + }, + "9": { + "Level": 9, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_ArcherDoll", + "TID": "TID_GEAR_TITLE_ARCHER_CROWN", + "InfoTID": "TID_GEAR_INFO_ARCHER_CROWN", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1900, + "MainAbilities": "ArcherQueenSpawnArchers", + "MainAbilityLevels": 4, + "DPS": 90, + "PreviewScenario": "GearArcherCrown", + "HealOnActivation": 280 + }, + "10": { + "Level": 10, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_ArcherDoll", + "TID": "TID_GEAR_TITLE_ARCHER_CROWN", + "InfoTID": "TID_GEAR_INFO_ARCHER_CROWN", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2000, + "MainAbilities": "ArcherQueenSpawnArchers", + "MainAbilityLevels": 4, + "DPS": 100, + "PreviewScenario": "GearArcherCrown", + "HealOnActivation": 295 + }, + "11": { + "Level": 11, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_ArcherDoll", + "TID": "TID_GEAR_TITLE_ARCHER_CROWN", + "InfoTID": "TID_GEAR_INFO_ARCHER_CROWN", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2100;400", + "MainAbilities": "ArcherQueenSpawnArchers", + "MainAbilityLevels": 4, + "DPS": 109, + "PreviewScenario": "GearArcherCrown", + "HealOnActivation": 310 + }, + "12": { + "Level": 12, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_ArcherDoll", + "TID": "TID_GEAR_TITLE_ARCHER_CROWN", + "InfoTID": "TID_GEAR_INFO_ARCHER_CROWN", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2200, + "MainAbilities": "ArcherQueenSpawnArchers", + "MainAbilityLevels": 5, + "DPS": 115, + "PreviewScenario": "GearArcherCrown", + "HealOnActivation": 325 + }, + "13": { + "Level": 13, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_ArcherDoll", + "TID": "TID_GEAR_TITLE_ARCHER_CROWN", + "InfoTID": "TID_GEAR_INFO_ARCHER_CROWN", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2300, + "MainAbilities": "ArcherQueenSpawnArchers", + "MainAbilityLevels": 5, + "DPS": 122, + "PreviewScenario": "GearArcherCrown", + "HealOnActivation": 340 + }, + "14": { + "Level": 14, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_ArcherDoll", + "TID": "TID_GEAR_TITLE_ARCHER_CROWN", + "InfoTID": "TID_GEAR_INFO_ARCHER_CROWN", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2400;600", + "MainAbilities": "ArcherQueenSpawnArchers", + "MainAbilityLevels": 5, + "DPS": 127, + "PreviewScenario": "GearArcherCrown", + "HealOnActivation": 360 + }, + "15": { + "Level": 15, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_ArcherDoll", + "TID": "TID_GEAR_TITLE_ARCHER_CROWN", + "InfoTID": "TID_GEAR_INFO_ARCHER_CROWN", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2500, + "MainAbilities": "ArcherQueenSpawnArchers", + "MainAbilityLevels": 6, + "DPS": 132, + "PreviewScenario": "GearArcherCrown", + "HealOnActivation": 380 + }, + "16": { + "Level": 16, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_ArcherDoll", + "TID": "TID_GEAR_TITLE_ARCHER_CROWN", + "InfoTID": "TID_GEAR_INFO_ARCHER_CROWN", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2600, + "MainAbilities": "ArcherQueenSpawnArchers", + "MainAbilityLevels": 6, + "DPS": 136, + "PreviewScenario": "GearArcherCrown", + "HealOnActivation": 400 + }, + "17": { + "Level": 17, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_ArcherDoll", + "TID": "TID_GEAR_TITLE_ARCHER_CROWN", + "InfoTID": "TID_GEAR_INFO_ARCHER_CROWN", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2700;600", + "MainAbilities": "ArcherQueenSpawnArchers", + "MainAbilityLevels": 6, + "DPS": 140, + "PreviewScenario": "GearArcherCrown", + "HealOnActivation": 420 + }, + "18": { + "Level": 18, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_ArcherDoll", + "TID": "TID_GEAR_TITLE_ARCHER_CROWN", + "InfoTID": "TID_GEAR_INFO_ARCHER_CROWN", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2700;600", + "MainAbilities": "ArcherQueenSpawnArchers", + "MainAbilityLevels": 7, + "DPS": 144, + "PreviewScenario": "GearArcherCrown", + "HealOnActivation": 440 + } + }, + "Invisibility Vial": { + "1": { + "Level": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_InvisVial", + "TID": "TID_GEAR_TITLE_ROYAL_CLOAK", + "InfoTID": "TID_GEAR_INFO_ROYAL_CLOAK", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 120, + "MainAbilities": "ArcherQueenInvisibility", + "MainAbilityLevels": 1, + "HitPoints": 80, + "PreviewScenario": "GearRoyalCloak" + }, + "2": { + "Level": 2, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_InvisVial", + "TID": "TID_GEAR_TITLE_ROYAL_CLOAK", + "InfoTID": "TID_GEAR_INFO_ROYAL_CLOAK", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "240;20", + "MainAbilities": "ArcherQueenInvisibility", + "MainAbilityLevels": 2, + "HitPoints": 100, + "PreviewScenario": "GearRoyalCloak" + }, + "3": { + "Level": 3, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_InvisVial", + "TID": "TID_GEAR_TITLE_ROYAL_CLOAK", + "InfoTID": "TID_GEAR_INFO_ROYAL_CLOAK", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 400, + "MainAbilities": "ArcherQueenInvisibility", + "MainAbilityLevels": 3, + "HitPoints": 120, + "PreviewScenario": "GearRoyalCloak" + }, + "4": { + "Level": 4, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_InvisVial", + "TID": "TID_GEAR_TITLE_ROYAL_CLOAK", + "InfoTID": "TID_GEAR_INFO_ROYAL_CLOAK", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 600, + "MainAbilities": "ArcherQueenInvisibility", + "MainAbilityLevels": 4, + "HitPoints": 140, + "PreviewScenario": "GearRoyalCloak" + }, + "5": { + "Level": 5, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_InvisVial", + "TID": "TID_GEAR_TITLE_ROYAL_CLOAK", + "InfoTID": "TID_GEAR_INFO_ROYAL_CLOAK", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "840;100", + "MainAbilities": "ArcherQueenInvisibility", + "MainAbilityLevels": 5, + "HitPoints": 170, + "PreviewScenario": "GearRoyalCloak" + }, + "6": { + "Level": 6, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_InvisVial", + "TID": "TID_GEAR_TITLE_ROYAL_CLOAK", + "InfoTID": "TID_GEAR_INFO_ROYAL_CLOAK", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1120, + "MainAbilities": "ArcherQueenInvisibility", + "MainAbilityLevels": 6, + "HitPoints": 200, + "PreviewScenario": "GearRoyalCloak" + }, + "7": { + "Level": 7, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_InvisVial", + "TID": "TID_GEAR_TITLE_ROYAL_CLOAK", + "InfoTID": "TID_GEAR_INFO_ROYAL_CLOAK", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1440, + "MainAbilities": "ArcherQueenInvisibility", + "MainAbilityLevels": 7, + "HitPoints": 250, + "PreviewScenario": "GearRoyalCloak" + }, + "8": { + "Level": 8, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_InvisVial", + "TID": "TID_GEAR_TITLE_ROYAL_CLOAK", + "InfoTID": "TID_GEAR_INFO_ROYAL_CLOAK", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "1800;200", + "MainAbilities": "ArcherQueenInvisibility", + "MainAbilityLevels": 8, + "HitPoints": 300, + "PreviewScenario": "GearRoyalCloak" + }, + "9": { + "Level": 9, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_InvisVial", + "TID": "TID_GEAR_TITLE_ROYAL_CLOAK", + "InfoTID": "TID_GEAR_INFO_ROYAL_CLOAK", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1900, + "MainAbilities": "ArcherQueenInvisibility", + "MainAbilityLevels": 9, + "HitPoints": 340, + "PreviewScenario": "GearRoyalCloak" + }, + "10": { + "Level": 10, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_InvisVial", + "TID": "TID_GEAR_TITLE_ROYAL_CLOAK", + "InfoTID": "TID_GEAR_INFO_ROYAL_CLOAK", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2000, + "MainAbilities": "ArcherQueenInvisibility", + "MainAbilityLevels": 10, + "HitPoints": 380, + "PreviewScenario": "GearRoyalCloak" + }, + "11": { + "Level": 11, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_InvisVial", + "TID": "TID_GEAR_TITLE_ROYAL_CLOAK", + "InfoTID": "TID_GEAR_INFO_ROYAL_CLOAK", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2100;400", + "MainAbilities": "ArcherQueenInvisibility", + "MainAbilityLevels": 11, + "HitPoints": 420, + "PreviewScenario": "GearRoyalCloak" + }, + "12": { + "Level": 12, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_InvisVial", + "TID": "TID_GEAR_TITLE_ROYAL_CLOAK", + "InfoTID": "TID_GEAR_INFO_ROYAL_CLOAK", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2200, + "MainAbilities": "ArcherQueenInvisibility", + "MainAbilityLevels": 12, + "HitPoints": 460, + "PreviewScenario": "GearRoyalCloak" + }, + "13": { + "Level": 13, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_InvisVial", + "TID": "TID_GEAR_TITLE_ROYAL_CLOAK", + "InfoTID": "TID_GEAR_INFO_ROYAL_CLOAK", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2300, + "MainAbilities": "ArcherQueenInvisibility", + "MainAbilityLevels": 13, + "HitPoints": 500, + "PreviewScenario": "GearRoyalCloak" + }, + "14": { + "Level": 14, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_InvisVial", + "TID": "TID_GEAR_TITLE_ROYAL_CLOAK", + "InfoTID": "TID_GEAR_INFO_ROYAL_CLOAK", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2400;600", + "MainAbilities": "ArcherQueenInvisibility", + "MainAbilityLevels": 14, + "HitPoints": 540, + "PreviewScenario": "GearRoyalCloak" + }, + "15": { + "Level": 15, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_InvisVial", + "TID": "TID_GEAR_TITLE_ROYAL_CLOAK", + "InfoTID": "TID_GEAR_INFO_ROYAL_CLOAK", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2500, + "MainAbilities": "ArcherQueenInvisibility", + "MainAbilityLevels": 15, + "HitPoints": 580, + "PreviewScenario": "GearRoyalCloak" + }, + "16": { + "Level": 16, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_InvisVial", + "TID": "TID_GEAR_TITLE_ROYAL_CLOAK", + "InfoTID": "TID_GEAR_INFO_ROYAL_CLOAK", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2600, + "MainAbilities": "ArcherQueenInvisibility", + "MainAbilityLevels": 16, + "HitPoints": 620, + "PreviewScenario": "GearRoyalCloak" + }, + "17": { + "Level": 17, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_InvisVial", + "TID": "TID_GEAR_TITLE_ROYAL_CLOAK", + "InfoTID": "TID_GEAR_INFO_ROYAL_CLOAK", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2700;600", + "MainAbilities": "ArcherQueenInvisibility", + "MainAbilityLevels": 17, + "HitPoints": 660, + "PreviewScenario": "GearRoyalCloak" + }, + "18": { + "Level": 18, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_InvisVial", + "TID": "TID_GEAR_TITLE_ROYAL_CLOAK", + "InfoTID": "TID_GEAR_INFO_ROYAL_CLOAK", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2700;600", + "MainAbilities": "ArcherQueenInvisibility", + "MainAbilityLevels": 18, + "HitPoints": 700, + "PreviewScenario": "GearRoyalCloak" + } + }, + "Eternal Tome": { + "1": { + "Level": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_EternalTome", + "TID": "TID_GEAR_TITLE_ETERNAL_TOME", + "InfoTID": "TID_GEAR_INFO_ETERNAL_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 120, + "MainAbilities": "GrandWardenInvulnerability", + "MainAbilityLevels": 1, + "PreviewScenario": "GearEternalTome" + }, + "2": { + "Level": 2, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_EternalTome", + "TID": "TID_GEAR_TITLE_ETERNAL_TOME", + "InfoTID": "TID_GEAR_INFO_ETERNAL_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "240;20", + "MainAbilities": "GrandWardenInvulnerability", + "MainAbilityLevels": 2, + "PreviewScenario": "GearEternalTome" + }, + "3": { + "Level": 3, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_EternalTome", + "TID": "TID_GEAR_TITLE_ETERNAL_TOME", + "InfoTID": "TID_GEAR_INFO_ETERNAL_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 400, + "MainAbilities": "GrandWardenInvulnerability", + "MainAbilityLevels": 3, + "PreviewScenario": "GearEternalTome" + }, + "4": { + "Level": 4, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_EternalTome", + "TID": "TID_GEAR_TITLE_ETERNAL_TOME", + "InfoTID": "TID_GEAR_INFO_ETERNAL_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 600, + "MainAbilities": "GrandWardenInvulnerability", + "MainAbilityLevels": 4, + "PreviewScenario": "GearEternalTome" + }, + "5": { + "Level": 5, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_EternalTome", + "TID": "TID_GEAR_TITLE_ETERNAL_TOME", + "InfoTID": "TID_GEAR_INFO_ETERNAL_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "840;100", + "MainAbilities": "GrandWardenInvulnerability", + "MainAbilityLevels": 5, + "PreviewScenario": "GearEternalTome" + }, + "6": { + "Level": 6, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_EternalTome", + "TID": "TID_GEAR_TITLE_ETERNAL_TOME", + "InfoTID": "TID_GEAR_INFO_ETERNAL_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1120, + "MainAbilities": "GrandWardenInvulnerability", + "MainAbilityLevels": 6, + "PreviewScenario": "GearEternalTome" + }, + "7": { + "Level": 7, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_EternalTome", + "TID": "TID_GEAR_TITLE_ETERNAL_TOME", + "InfoTID": "TID_GEAR_INFO_ETERNAL_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1440, + "MainAbilities": "GrandWardenInvulnerability", + "MainAbilityLevels": 7, + "PreviewScenario": "GearEternalTome" + }, + "8": { + "Level": 8, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_EternalTome", + "TID": "TID_GEAR_TITLE_ETERNAL_TOME", + "InfoTID": "TID_GEAR_INFO_ETERNAL_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "1800;200", + "MainAbilities": "GrandWardenInvulnerability", + "MainAbilityLevels": 8, + "PreviewScenario": "GearEternalTome" + }, + "9": { + "Level": 9, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_EternalTome", + "TID": "TID_GEAR_TITLE_ETERNAL_TOME", + "InfoTID": "TID_GEAR_INFO_ETERNAL_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1900, + "MainAbilities": "GrandWardenInvulnerability", + "MainAbilityLevels": 9, + "PreviewScenario": "GearEternalTome" + }, + "10": { + "Level": 10, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_EternalTome", + "TID": "TID_GEAR_TITLE_ETERNAL_TOME", + "InfoTID": "TID_GEAR_INFO_ETERNAL_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2000, + "MainAbilities": "GrandWardenInvulnerability", + "MainAbilityLevels": 10, + "PreviewScenario": "GearEternalTome" + }, + "11": { + "Level": 11, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_EternalTome", + "TID": "TID_GEAR_TITLE_ETERNAL_TOME", + "InfoTID": "TID_GEAR_INFO_ETERNAL_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2100;400", + "MainAbilities": "GrandWardenInvulnerability", + "MainAbilityLevels": 11, + "PreviewScenario": "GearEternalTome" + }, + "12": { + "Level": 12, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_EternalTome", + "TID": "TID_GEAR_TITLE_ETERNAL_TOME", + "InfoTID": "TID_GEAR_INFO_ETERNAL_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2200, + "MainAbilities": "GrandWardenInvulnerability", + "MainAbilityLevels": 12, + "PreviewScenario": "GearEternalTome" + }, + "13": { + "Level": 13, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_EternalTome", + "TID": "TID_GEAR_TITLE_ETERNAL_TOME", + "InfoTID": "TID_GEAR_INFO_ETERNAL_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2300, + "MainAbilities": "GrandWardenInvulnerability", + "MainAbilityLevels": 13, + "PreviewScenario": "GearEternalTome" + }, + "14": { + "Level": 14, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_EternalTome", + "TID": "TID_GEAR_TITLE_ETERNAL_TOME", + "InfoTID": "TID_GEAR_INFO_ETERNAL_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2400;600", + "MainAbilities": "GrandWardenInvulnerability", + "MainAbilityLevels": 14, + "PreviewScenario": "GearEternalTome" + }, + "15": { + "Level": 15, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_EternalTome", + "TID": "TID_GEAR_TITLE_ETERNAL_TOME", + "InfoTID": "TID_GEAR_INFO_ETERNAL_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2500, + "MainAbilities": "GrandWardenInvulnerability", + "MainAbilityLevels": 15, + "PreviewScenario": "GearEternalTome" + }, + "16": { + "Level": 16, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_EternalTome", + "TID": "TID_GEAR_TITLE_ETERNAL_TOME", + "InfoTID": "TID_GEAR_INFO_ETERNAL_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2600, + "MainAbilities": "GrandWardenInvulnerability", + "MainAbilityLevels": 16, + "PreviewScenario": "GearEternalTome" + }, + "17": { + "Level": 17, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_EternalTome", + "TID": "TID_GEAR_TITLE_ETERNAL_TOME", + "InfoTID": "TID_GEAR_INFO_ETERNAL_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2700;600", + "MainAbilities": "GrandWardenInvulnerability", + "MainAbilityLevels": 17, + "PreviewScenario": "GearEternalTome" + }, + "18": { + "Level": 18, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_EternalTome", + "TID": "TID_GEAR_TITLE_ETERNAL_TOME", + "InfoTID": "TID_GEAR_INFO_ETERNAL_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2700;600", + "MainAbilities": "GrandWardenInvulnerability", + "MainAbilityLevels": 18, + "PreviewScenario": "GearEternalTome" + } + }, + "Life Gem": { + "1": { + "Level": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HealGem", + "TID": "TID_GEAR_TITLE_LIFE_GEM", + "InfoTID": "TID_GEAR_INFO_LIFE_GEM", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 120, + "MainAbilities": "GrandWardenLifeAura", + "MainAbilityLevels": 1, + "HitPoints": 150, + "DPS": 10, + "PreviewScenario": "GearLifeGem" + }, + "2": { + "Level": 2, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HealGem", + "TID": "TID_GEAR_TITLE_LIFE_GEM", + "InfoTID": "TID_GEAR_INFO_LIFE_GEM", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "240;20", + "MainAbilities": "GrandWardenLifeAura", + "MainAbilityLevels": 1, + "HitPoints": 163, + "DPS": 12, + "PreviewScenario": "GearLifeGem" + }, + "3": { + "Level": 3, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HealGem", + "TID": "TID_GEAR_TITLE_LIFE_GEM", + "InfoTID": "TID_GEAR_INFO_LIFE_GEM", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 400, + "MainAbilities": "GrandWardenLifeAura", + "MainAbilityLevels": 2, + "HitPoints": 172, + "DPS": 14, + "PreviewScenario": "GearLifeGem" + }, + "4": { + "Level": 4, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HealGem", + "TID": "TID_GEAR_TITLE_LIFE_GEM", + "InfoTID": "TID_GEAR_INFO_LIFE_GEM", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 600, + "MainAbilities": "GrandWardenLifeAura", + "MainAbilityLevels": 2, + "HitPoints": 181, + "DPS": 16, + "PreviewScenario": "GearLifeGem" + }, + "5": { + "Level": 5, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HealGem", + "TID": "TID_GEAR_TITLE_LIFE_GEM", + "InfoTID": "TID_GEAR_INFO_LIFE_GEM", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "840;100", + "MainAbilities": "GrandWardenLifeAura", + "MainAbilityLevels": 2, + "HitPoints": 192, + "DPS": 18, + "PreviewScenario": "GearLifeGem" + }, + "6": { + "Level": 6, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HealGem", + "TID": "TID_GEAR_TITLE_LIFE_GEM", + "InfoTID": "TID_GEAR_INFO_LIFE_GEM", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1120, + "MainAbilities": "GrandWardenLifeAura", + "MainAbilityLevels": 3, + "HitPoints": 203, + "DPS": 20, + "PreviewScenario": "GearLifeGem" + }, + "7": { + "Level": 7, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HealGem", + "TID": "TID_GEAR_TITLE_LIFE_GEM", + "InfoTID": "TID_GEAR_INFO_LIFE_GEM", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1440, + "MainAbilities": "GrandWardenLifeAura", + "MainAbilityLevels": 3, + "HitPoints": 225, + "DPS": 22, + "PreviewScenario": "GearLifeGem" + }, + "8": { + "Level": 8, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HealGem", + "TID": "TID_GEAR_TITLE_LIFE_GEM", + "InfoTID": "TID_GEAR_INFO_LIFE_GEM", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "1800;200", + "MainAbilities": "GrandWardenLifeAura", + "MainAbilityLevels": 3, + "HitPoints": 249, + "DPS": 24, + "PreviewScenario": "GearLifeGem" + }, + "9": { + "Level": 9, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HealGem", + "TID": "TID_GEAR_TITLE_LIFE_GEM", + "InfoTID": "TID_GEAR_INFO_LIFE_GEM", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1900, + "MainAbilities": "GrandWardenLifeAura", + "MainAbilityLevels": 4, + "HitPoints": 275, + "DPS": 28, + "PreviewScenario": "GearLifeGem" + }, + "10": { + "Level": 10, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HealGem", + "TID": "TID_GEAR_TITLE_LIFE_GEM", + "InfoTID": "TID_GEAR_INFO_LIFE_GEM", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2000, + "MainAbilities": "GrandWardenLifeAura", + "MainAbilityLevels": 4, + "HitPoints": 304, + "DPS": 32, + "PreviewScenario": "GearLifeGem" + }, + "11": { + "Level": 11, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HealGem", + "TID": "TID_GEAR_TITLE_LIFE_GEM", + "InfoTID": "TID_GEAR_INFO_LIFE_GEM", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2100;400", + "MainAbilities": "GrandWardenLifeAura", + "MainAbilityLevels": 4, + "HitPoints": 336, + "DPS": 38, + "PreviewScenario": "GearLifeGem" + }, + "12": { + "Level": 12, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HealGem", + "TID": "TID_GEAR_TITLE_LIFE_GEM", + "InfoTID": "TID_GEAR_INFO_LIFE_GEM", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2200, + "MainAbilities": "GrandWardenLifeAura", + "MainAbilityLevels": 5, + "HitPoints": 351, + "DPS": 42, + "PreviewScenario": "GearLifeGem" + }, + "13": { + "Level": 13, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HealGem", + "TID": "TID_GEAR_TITLE_LIFE_GEM", + "InfoTID": "TID_GEAR_INFO_LIFE_GEM", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2300, + "MainAbilities": "GrandWardenLifeAura", + "MainAbilityLevels": 5, + "HitPoints": 366, + "DPS": 46, + "PreviewScenario": "GearLifeGem" + }, + "14": { + "Level": 14, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HealGem", + "TID": "TID_GEAR_TITLE_LIFE_GEM", + "InfoTID": "TID_GEAR_INFO_LIFE_GEM", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2400;600", + "MainAbilities": "GrandWardenLifeAura", + "MainAbilityLevels": 5, + "HitPoints": 381, + "DPS": 50, + "PreviewScenario": "GearLifeGem" + }, + "15": { + "Level": 15, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HealGem", + "TID": "TID_GEAR_TITLE_LIFE_GEM", + "InfoTID": "TID_GEAR_INFO_LIFE_GEM", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2500, + "MainAbilities": "GrandWardenLifeAura", + "MainAbilityLevels": 6, + "HitPoints": 396, + "DPS": 54, + "PreviewScenario": "GearLifeGem" + }, + "16": { + "Level": 16, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HealGem", + "TID": "TID_GEAR_TITLE_LIFE_GEM", + "InfoTID": "TID_GEAR_INFO_LIFE_GEM", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2600, + "MainAbilities": "GrandWardenLifeAura", + "MainAbilityLevels": 6, + "HitPoints": 411, + "DPS": 58, + "PreviewScenario": "GearLifeGem" + }, + "17": { + "Level": 17, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HealGem", + "TID": "TID_GEAR_TITLE_LIFE_GEM", + "InfoTID": "TID_GEAR_INFO_LIFE_GEM", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2700;600", + "MainAbilities": "GrandWardenLifeAura", + "MainAbilityLevels": 6, + "HitPoints": 426, + "DPS": 62, + "PreviewScenario": "GearLifeGem" + }, + "18": { + "Level": 18, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HealGem", + "TID": "TID_GEAR_TITLE_LIFE_GEM", + "InfoTID": "TID_GEAR_INFO_LIFE_GEM", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2700;600", + "MainAbilities": "GrandWardenLifeAura", + "MainAbilityLevels": 7, + "HitPoints": 441, + "DPS": 66, + "PreviewScenario": "GearLifeGem" + } + }, + "Seeking Shield": { + "1": { + "Level": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_RC_SeekingShield", + "TID": "TID_GEAR_TITLE_SEEKING_SHIELD", + "InfoTID": "TID_GEAR_INFO_SEEKING_SHIELD", + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 120, + "MainAbilities": "RoyalChampionShieldBounce", + "MainAbilityLevels": 1, + "HitPoints": 40, + "PreviewScenario": "GearSeekingShield" + }, + "2": { + "Level": 2, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_RC_SeekingShield", + "TID": "TID_GEAR_TITLE_SEEKING_SHIELD", + "InfoTID": "TID_GEAR_INFO_SEEKING_SHIELD", + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "240;20", + "MainAbilities": "RoyalChampionShieldBounce", + "MainAbilityLevels": 1, + "HitPoints": 60, + "PreviewScenario": "GearSeekingShield" + }, + "3": { + "Level": 3, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_RC_SeekingShield", + "TID": "TID_GEAR_TITLE_SEEKING_SHIELD", + "InfoTID": "TID_GEAR_INFO_SEEKING_SHIELD", + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 400, + "MainAbilities": "RoyalChampionShieldBounce", + "MainAbilityLevels": 2, + "HitPoints": 80, + "PreviewScenario": "GearSeekingShield" + }, + "4": { + "Level": 4, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_RC_SeekingShield", + "TID": "TID_GEAR_TITLE_SEEKING_SHIELD", + "InfoTID": "TID_GEAR_INFO_SEEKING_SHIELD", + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 600, + "MainAbilities": "RoyalChampionShieldBounce", + "MainAbilityLevels": 2, + "HitPoints": 100, + "PreviewScenario": "GearSeekingShield" + }, + "5": { + "Level": 5, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_RC_SeekingShield", + "TID": "TID_GEAR_TITLE_SEEKING_SHIELD", + "InfoTID": "TID_GEAR_INFO_SEEKING_SHIELD", + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "840;100", + "MainAbilities": "RoyalChampionShieldBounce", + "MainAbilityLevels": 2, + "HitPoints": 120, + "PreviewScenario": "GearSeekingShield" + }, + "6": { + "Level": 6, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_RC_SeekingShield", + "TID": "TID_GEAR_TITLE_SEEKING_SHIELD", + "InfoTID": "TID_GEAR_INFO_SEEKING_SHIELD", + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1120, + "MainAbilities": "RoyalChampionShieldBounce", + "MainAbilityLevels": 3, + "HitPoints": 140, + "PreviewScenario": "GearSeekingShield" + }, + "7": { + "Level": 7, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_RC_SeekingShield", + "TID": "TID_GEAR_TITLE_SEEKING_SHIELD", + "InfoTID": "TID_GEAR_INFO_SEEKING_SHIELD", + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1440, + "MainAbilities": "RoyalChampionShieldBounce", + "MainAbilityLevels": 3, + "HitPoints": 160, + "PreviewScenario": "GearSeekingShield" + }, + "8": { + "Level": 8, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_RC_SeekingShield", + "TID": "TID_GEAR_TITLE_SEEKING_SHIELD", + "InfoTID": "TID_GEAR_INFO_SEEKING_SHIELD", + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "1800;200", + "MainAbilities": "RoyalChampionShieldBounce", + "MainAbilityLevels": 3, + "HitPoints": 180, + "PreviewScenario": "GearSeekingShield" + }, + "9": { + "Level": 9, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_RC_SeekingShield", + "TID": "TID_GEAR_TITLE_SEEKING_SHIELD", + "InfoTID": "TID_GEAR_INFO_SEEKING_SHIELD", + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1900, + "MainAbilities": "RoyalChampionShieldBounce", + "MainAbilityLevels": 4, + "HitPoints": 200, + "PreviewScenario": "GearSeekingShield" + }, + "10": { + "Level": 10, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_RC_SeekingShield", + "TID": "TID_GEAR_TITLE_SEEKING_SHIELD", + "InfoTID": "TID_GEAR_INFO_SEEKING_SHIELD", + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2000, + "MainAbilities": "RoyalChampionShieldBounce", + "MainAbilityLevels": 4, + "HitPoints": 220, + "PreviewScenario": "GearSeekingShield" + }, + "11": { + "Level": 11, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_RC_SeekingShield", + "TID": "TID_GEAR_TITLE_SEEKING_SHIELD", + "InfoTID": "TID_GEAR_INFO_SEEKING_SHIELD", + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2100;400", + "MainAbilities": "RoyalChampionShieldBounce", + "MainAbilityLevels": 4, + "HitPoints": 240, + "PreviewScenario": "GearSeekingShield" + }, + "12": { + "Level": 12, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_RC_SeekingShield", + "TID": "TID_GEAR_TITLE_SEEKING_SHIELD", + "InfoTID": "TID_GEAR_INFO_SEEKING_SHIELD", + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2200, + "MainAbilities": "RoyalChampionShieldBounce", + "MainAbilityLevels": 5, + "HitPoints": 260, + "PreviewScenario": "GearSeekingShield" + }, + "13": { + "Level": 13, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_RC_SeekingShield", + "TID": "TID_GEAR_TITLE_SEEKING_SHIELD", + "InfoTID": "TID_GEAR_INFO_SEEKING_SHIELD", + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2300, + "MainAbilities": "RoyalChampionShieldBounce", + "MainAbilityLevels": 5, + "HitPoints": 280, + "PreviewScenario": "GearSeekingShield" + }, + "14": { + "Level": 14, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_RC_SeekingShield", + "TID": "TID_GEAR_TITLE_SEEKING_SHIELD", + "InfoTID": "TID_GEAR_INFO_SEEKING_SHIELD", + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2400;600", + "MainAbilities": "RoyalChampionShieldBounce", + "MainAbilityLevels": 5, + "HitPoints": 300, + "PreviewScenario": "GearSeekingShield" + }, + "15": { + "Level": 15, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_RC_SeekingShield", + "TID": "TID_GEAR_TITLE_SEEKING_SHIELD", + "InfoTID": "TID_GEAR_INFO_SEEKING_SHIELD", + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2500, + "MainAbilities": "RoyalChampionShieldBounce", + "MainAbilityLevels": 6, + "HitPoints": 320, + "PreviewScenario": "GearSeekingShield" + }, + "16": { + "Level": 16, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_RC_SeekingShield", + "TID": "TID_GEAR_TITLE_SEEKING_SHIELD", + "InfoTID": "TID_GEAR_INFO_SEEKING_SHIELD", + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2600, + "MainAbilities": "RoyalChampionShieldBounce", + "MainAbilityLevels": 6, + "HitPoints": 340, + "PreviewScenario": "GearSeekingShield" + }, + "17": { + "Level": 17, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_RC_SeekingShield", + "TID": "TID_GEAR_TITLE_SEEKING_SHIELD", + "InfoTID": "TID_GEAR_INFO_SEEKING_SHIELD", + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2700;600", + "MainAbilities": "RoyalChampionShieldBounce", + "MainAbilityLevels": 6, + "HitPoints": 360, + "PreviewScenario": "GearSeekingShield" + }, + "18": { + "Level": 18, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_RC_SeekingShield", + "TID": "TID_GEAR_TITLE_SEEKING_SHIELD", + "InfoTID": "TID_GEAR_INFO_SEEKING_SHIELD", + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2700;600", + "MainAbilities": "RoyalChampionShieldBounce", + "MainAbilityLevels": 7, + "HitPoints": 380, + "PreviewScenario": "GearSeekingShield" + } + }, + "Royal Gem": { + "1": { + "Level": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HeartTome", + "TID": "TID_GEAR_PROTECTIVE_CLOAK", + "InfoTID": "TID_GEAR_INFO_PROTECTIVE_CLOAK", + "Deprecated": true, + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 6, + "RequiredCharacterLevel": 1, + "MainAbilities": "RCProtectiveCloak", + "MainAbilityLevels": 1, + "HitPoints": 123, + "HealOnActivation": 363 + }, + "2": { + "Level": 2, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HeartTome", + "TID": "TID_GEAR_PROTECTIVE_CLOAK", + "InfoTID": "TID_GEAR_INFO_PROTECTIVE_CLOAK", + "Deprecated": true, + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "MainAbilities": "RCProtectiveCloak", + "MainAbilityLevels": 1, + "HitPoints": 143, + "HealOnActivation": 423 + }, + "3": { + "Level": 3, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HeartTome", + "TID": "TID_GEAR_PROTECTIVE_CLOAK", + "InfoTID": "TID_GEAR_INFO_PROTECTIVE_CLOAK", + "Deprecated": true, + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "MainAbilities": "RCProtectiveCloak", + "MainAbilityLevels": 2, + "HitPoints": 164, + "HealOnActivation": 484 + }, + "4": { + "Level": 4, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HeartTome", + "TID": "TID_GEAR_PROTECTIVE_CLOAK", + "InfoTID": "TID_GEAR_INFO_PROTECTIVE_CLOAK", + "Deprecated": true, + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "MainAbilities": "RCProtectiveCloak", + "MainAbilityLevels": 2, + "HitPoints": 184, + "HealOnActivation": 544 + }, + "5": { + "Level": 5, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HeartTome", + "TID": "TID_GEAR_PROTECTIVE_CLOAK", + "InfoTID": "TID_GEAR_INFO_PROTECTIVE_CLOAK", + "Deprecated": true, + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "MainAbilities": "RCProtectiveCloak", + "MainAbilityLevels": 2, + "HitPoints": 205, + "HealOnActivation": 605 + }, + "6": { + "Level": 6, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HeartTome", + "TID": "TID_GEAR_PROTECTIVE_CLOAK", + "InfoTID": "TID_GEAR_INFO_PROTECTIVE_CLOAK", + "Deprecated": true, + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "MainAbilities": "RCProtectiveCloak", + "MainAbilityLevels": 3, + "HitPoints": 225, + "HealOnActivation": 665 + }, + "7": { + "Level": 7, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HeartTome", + "TID": "TID_GEAR_PROTECTIVE_CLOAK", + "InfoTID": "TID_GEAR_INFO_PROTECTIVE_CLOAK", + "Deprecated": true, + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "MainAbilities": "RCProtectiveCloak", + "MainAbilityLevels": 3, + "HitPoints": 246, + "HealOnActivation": 726 + }, + "8": { + "Level": 8, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HeartTome", + "TID": "TID_GEAR_PROTECTIVE_CLOAK", + "InfoTID": "TID_GEAR_INFO_PROTECTIVE_CLOAK", + "Deprecated": true, + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "MainAbilities": "RCProtectiveCloak", + "MainAbilityLevels": 3, + "HitPoints": 266, + "HealOnActivation": 786 + }, + "9": { + "Level": 9, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HeartTome", + "TID": "TID_GEAR_PROTECTIVE_CLOAK", + "InfoTID": "TID_GEAR_INFO_PROTECTIVE_CLOAK", + "Deprecated": true, + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "MainAbilities": "RCProtectiveCloak", + "MainAbilityLevels": 4, + "HitPoints": 307, + "HealOnActivation": 907 + }, + "10": { + "Level": 10, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HeartTome", + "TID": "TID_GEAR_PROTECTIVE_CLOAK", + "InfoTID": "TID_GEAR_INFO_PROTECTIVE_CLOAK", + "Deprecated": true, + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "MainAbilities": "RCProtectiveCloak", + "MainAbilityLevels": 4, + "HitPoints": 375, + "HealOnActivation": 1108 + }, + "11": { + "Level": 11, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HeartTome", + "TID": "TID_GEAR_PROTECTIVE_CLOAK", + "InfoTID": "TID_GEAR_INFO_PROTECTIVE_CLOAK", + "Deprecated": true, + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "MainAbilities": "RCProtectiveCloak", + "MainAbilityLevels": 4, + "HitPoints": 443, + "HealOnActivation": 1310 + }, + "12": { + "Level": 12, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HeartTome", + "TID": "TID_GEAR_PROTECTIVE_CLOAK", + "InfoTID": "TID_GEAR_INFO_PROTECTIVE_CLOAK", + "Deprecated": true, + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "MainAbilities": "RCProtectiveCloak", + "MainAbilityLevels": 5, + "HitPoints": 511, + "HealOnActivation": 1511 + }, + "13": { + "Level": 13, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HeartTome", + "TID": "TID_GEAR_PROTECTIVE_CLOAK", + "InfoTID": "TID_GEAR_INFO_PROTECTIVE_CLOAK", + "Deprecated": true, + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "MainAbilities": "RCProtectiveCloak", + "MainAbilityLevels": 5, + "HitPoints": 579, + "HealOnActivation": 1713 + }, + "14": { + "Level": 14, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HeartTome", + "TID": "TID_GEAR_PROTECTIVE_CLOAK", + "InfoTID": "TID_GEAR_INFO_PROTECTIVE_CLOAK", + "Deprecated": true, + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "MainAbilities": "RCProtectiveCloak", + "MainAbilityLevels": 5, + "HitPoints": 648, + "HealOnActivation": 1914 + }, + "15": { + "Level": 15, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HeartTome", + "TID": "TID_GEAR_PROTECTIVE_CLOAK", + "InfoTID": "TID_GEAR_INFO_PROTECTIVE_CLOAK", + "Deprecated": true, + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "MainAbilities": "RCProtectiveCloak", + "MainAbilityLevels": 6, + "HitPoints": 716, + "HealOnActivation": 2116 + }, + "16": { + "Level": 16, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HeartTome", + "TID": "TID_GEAR_PROTECTIVE_CLOAK", + "InfoTID": "TID_GEAR_INFO_PROTECTIVE_CLOAK", + "Deprecated": true, + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "MainAbilities": "RCProtectiveCloak", + "MainAbilityLevels": 6, + "HitPoints": 784, + "HealOnActivation": 2317 + }, + "17": { + "Level": 17, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HeartTome", + "TID": "TID_GEAR_PROTECTIVE_CLOAK", + "InfoTID": "TID_GEAR_INFO_PROTECTIVE_CLOAK", + "Deprecated": true, + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "MainAbilities": "RCProtectiveCloak", + "MainAbilityLevels": 6, + "HitPoints": 852, + "HealOnActivation": 2519 + }, + "18": { + "Level": 18, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HeartTome", + "TID": "TID_GEAR_PROTECTIVE_CLOAK", + "InfoTID": "TID_GEAR_INFO_PROTECTIVE_CLOAK", + "Deprecated": true, + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "MainAbilities": "RCProtectiveCloak", + "MainAbilityLevels": 7, + "HitPoints": 920, + "HealOnActivation": 2720 + } + }, + "Earthquake Boots": { + "1": { + "Level": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_StompBoots", + "TID": "TID_GEAR_EARTHQUAKE_BOOTS", + "InfoTID": "TID_GEAR_INFO_EARTHQUAKE_BOOTS", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 120, + "MainAbilities": "BarbarianKingEarthquakeBoots", + "MainAbilityLevels": 1, + "HitPoints": 209, + "DPS": 13, + "PreviewScenario": "GearEQboots" + }, + "2": { + "Level": 2, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_StompBoots", + "TID": "TID_GEAR_EARTHQUAKE_BOOTS", + "InfoTID": "TID_GEAR_INFO_EARTHQUAKE_BOOTS", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "240;20", + "MainAbilities": "BarbarianKingEarthquakeBoots", + "MainAbilityLevels": 1, + "HitPoints": 244, + "DPS": 15, + "PreviewScenario": "GearEQboots" + }, + "3": { + "Level": 3, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_StompBoots", + "TID": "TID_GEAR_EARTHQUAKE_BOOTS", + "InfoTID": "TID_GEAR_INFO_EARTHQUAKE_BOOTS", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 400, + "MainAbilities": "BarbarianKingEarthquakeBoots", + "MainAbilityLevels": 2, + "HitPoints": 278, + "DPS": 17, + "PreviewScenario": "GearEQboots" + }, + "4": { + "Level": 4, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_StompBoots", + "TID": "TID_GEAR_EARTHQUAKE_BOOTS", + "InfoTID": "TID_GEAR_INFO_EARTHQUAKE_BOOTS", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 600, + "MainAbilities": "BarbarianKingEarthquakeBoots", + "MainAbilityLevels": 2, + "HitPoints": 313, + "DPS": 19, + "PreviewScenario": "GearEQboots" + }, + "5": { + "Level": 5, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_StompBoots", + "TID": "TID_GEAR_EARTHQUAKE_BOOTS", + "InfoTID": "TID_GEAR_INFO_EARTHQUAKE_BOOTS", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "840;100", + "MainAbilities": "BarbarianKingEarthquakeBoots", + "MainAbilityLevels": 2, + "HitPoints": 348, + "DPS": 21, + "PreviewScenario": "GearEQboots" + }, + "6": { + "Level": 6, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_StompBoots", + "TID": "TID_GEAR_EARTHQUAKE_BOOTS", + "InfoTID": "TID_GEAR_INFO_EARTHQUAKE_BOOTS", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1120, + "MainAbilities": "BarbarianKingEarthquakeBoots", + "MainAbilityLevels": 3, + "HitPoints": 383, + "DPS": 23, + "PreviewScenario": "GearEQboots" + }, + "7": { + "Level": 7, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_StompBoots", + "TID": "TID_GEAR_EARTHQUAKE_BOOTS", + "InfoTID": "TID_GEAR_INFO_EARTHQUAKE_BOOTS", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1440, + "MainAbilities": "BarbarianKingEarthquakeBoots", + "MainAbilityLevels": 3, + "HitPoints": 418, + "DPS": 26, + "PreviewScenario": "GearEQboots" + }, + "8": { + "Level": 8, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_StompBoots", + "TID": "TID_GEAR_EARTHQUAKE_BOOTS", + "InfoTID": "TID_GEAR_INFO_EARTHQUAKE_BOOTS", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "1800;200", + "MainAbilities": "BarbarianKingEarthquakeBoots", + "MainAbilityLevels": 3, + "HitPoints": 452, + "DPS": 28, + "PreviewScenario": "GearEQboots" + }, + "9": { + "Level": 9, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_StompBoots", + "TID": "TID_GEAR_EARTHQUAKE_BOOTS", + "InfoTID": "TID_GEAR_INFO_EARTHQUAKE_BOOTS", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1900, + "MainAbilities": "BarbarianKingEarthquakeBoots", + "MainAbilityLevels": 4, + "HitPoints": 522, + "DPS": 32, + "PreviewScenario": "GearEQboots" + }, + "10": { + "Level": 10, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_StompBoots", + "TID": "TID_GEAR_EARTHQUAKE_BOOTS", + "InfoTID": "TID_GEAR_INFO_EARTHQUAKE_BOOTS", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2000, + "MainAbilities": "BarbarianKingEarthquakeBoots", + "MainAbilityLevels": 4, + "HitPoints": 677, + "DPS": 40, + "PreviewScenario": "GearEQboots" + }, + "11": { + "Level": 11, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_StompBoots", + "TID": "TID_GEAR_EARTHQUAKE_BOOTS", + "InfoTID": "TID_GEAR_INFO_EARTHQUAKE_BOOTS", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2100;400", + "MainAbilities": "BarbarianKingEarthquakeBoots", + "MainAbilityLevels": 4, + "HitPoints": 831, + "DPS": 48, + "PreviewScenario": "GearEQboots" + }, + "12": { + "Level": 12, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_StompBoots", + "TID": "TID_GEAR_EARTHQUAKE_BOOTS", + "InfoTID": "TID_GEAR_INFO_EARTHQUAKE_BOOTS", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2200, + "MainAbilities": "BarbarianKingEarthquakeBoots", + "MainAbilityLevels": 5, + "HitPoints": 986, + "DPS": 55, + "PreviewScenario": "GearEQboots" + }, + "13": { + "Level": 13, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_StompBoots", + "TID": "TID_GEAR_EARTHQUAKE_BOOTS", + "InfoTID": "TID_GEAR_INFO_EARTHQUAKE_BOOTS", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2300, + "MainAbilities": "BarbarianKingEarthquakeBoots", + "MainAbilityLevels": 5, + "HitPoints": 1140, + "DPS": 63, + "PreviewScenario": "GearEQboots" + }, + "14": { + "Level": 14, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_StompBoots", + "TID": "TID_GEAR_EARTHQUAKE_BOOTS", + "InfoTID": "TID_GEAR_INFO_EARTHQUAKE_BOOTS", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2400;600", + "MainAbilities": "BarbarianKingEarthquakeBoots", + "MainAbilityLevels": 5, + "HitPoints": 1295, + "DPS": 71, + "PreviewScenario": "GearEQboots" + }, + "15": { + "Level": 15, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_StompBoots", + "TID": "TID_GEAR_EARTHQUAKE_BOOTS", + "InfoTID": "TID_GEAR_INFO_EARTHQUAKE_BOOTS", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2500, + "MainAbilities": "BarbarianKingEarthquakeBoots", + "MainAbilityLevels": 6, + "HitPoints": 1449, + "DPS": 79, + "PreviewScenario": "GearEQboots" + }, + "16": { + "Level": 16, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_StompBoots", + "TID": "TID_GEAR_EARTHQUAKE_BOOTS", + "InfoTID": "TID_GEAR_INFO_EARTHQUAKE_BOOTS", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2600, + "MainAbilities": "BarbarianKingEarthquakeBoots", + "MainAbilityLevels": 6, + "HitPoints": 1604, + "DPS": 86, + "PreviewScenario": "GearEQboots" + }, + "17": { + "Level": 17, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_StompBoots", + "TID": "TID_GEAR_EARTHQUAKE_BOOTS", + "InfoTID": "TID_GEAR_INFO_EARTHQUAKE_BOOTS", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2700;600", + "MainAbilities": "BarbarianKingEarthquakeBoots", + "MainAbilityLevels": 6, + "HitPoints": 1758, + "DPS": 94, + "PreviewScenario": "GearEQboots" + }, + "18": { + "Level": 18, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_StompBoots", + "TID": "TID_GEAR_EARTHQUAKE_BOOTS", + "InfoTID": "TID_GEAR_INFO_EARTHQUAKE_BOOTS", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2700;600", + "MainAbilities": "BarbarianKingEarthquakeBoots", + "MainAbilityLevels": 7, + "HitPoints": 1913, + "DPS": 102, + "PreviewScenario": "GearEQboots" + } + }, + "Giant Gauntlet": { + "1": { + "Level": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_GiantGauntlet", + "TID": "TID_GEAR_GIANT_GAUNTLET", + "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 120, + "MainAbilities": "BarbarianKingGetsBig", + "MainAbilityLevels": 1, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 1, + "DPS": 17, + "PreviewScenario": "GearGauntlet" + }, + "2": { + "Level": 2, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_GiantGauntlet", + "TID": "TID_GEAR_GIANT_GAUNTLET", + "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "240;20", + "MainAbilities": "BarbarianKingGetsBig", + "MainAbilityLevels": 1, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 2, + "DPS": 20, + "PreviewScenario": "GearGauntlet" + }, + "3": { + "Level": 3, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_GiantGauntlet", + "TID": "TID_GEAR_GIANT_GAUNTLET", + "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 400, + "MainAbilities": "BarbarianKingGetsBig", + "MainAbilityLevels": 2, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 3, + "DPS": 23, + "PreviewScenario": "GearGauntlet" + }, + "4": { + "Level": 4, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_GiantGauntlet", + "TID": "TID_GEAR_GIANT_GAUNTLET", + "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 600, + "MainAbilities": "BarbarianKingGetsBig", + "MainAbilityLevels": 2, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 4, + "DPS": 26, + "PreviewScenario": "GearGauntlet" + }, + "5": { + "Level": 5, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_GiantGauntlet", + "TID": "TID_GEAR_GIANT_GAUNTLET", + "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "840;100", + "MainAbilities": "BarbarianKingGetsBig", + "MainAbilityLevels": 2, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 5, + "DPS": 29, + "PreviewScenario": "GearGauntlet" + }, + "6": { + "Level": 6, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_GiantGauntlet", + "TID": "TID_GEAR_GIANT_GAUNTLET", + "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1120, + "MainAbilities": "BarbarianKingGetsBig", + "MainAbilityLevels": 3, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 6, + "DPS": 32, + "PreviewScenario": "GearGauntlet" + }, + "7": { + "Level": 7, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_GiantGauntlet", + "TID": "TID_GEAR_GIANT_GAUNTLET", + "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1440, + "MainAbilities": "BarbarianKingGetsBig", + "MainAbilityLevels": 3, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 7, + "DPS": 34, + "PreviewScenario": "GearGauntlet" + }, + "8": { + "Level": 8, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_GiantGauntlet", + "TID": "TID_GEAR_GIANT_GAUNTLET", + "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre; EpicOre", + "UpgradeCosts": "1800;200;10", + "MainAbilities": "BarbarianKingGetsBig", + "MainAbilityLevels": 3, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 8, + "DPS": 37, + "PreviewScenario": "GearGauntlet" + }, + "9": { + "Level": 9, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_GiantGauntlet", + "TID": "TID_GEAR_GIANT_GAUNTLET", + "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1900, + "MainAbilities": "BarbarianKingGetsBig", + "MainAbilityLevels": 4, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 9, + "DPS": 43, + "PreviewScenario": "GearGauntlet" + }, + "10": { + "Level": 10, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_GiantGauntlet", + "TID": "TID_GEAR_GIANT_GAUNTLET", + "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2000, + "MainAbilities": "BarbarianKingGetsBig", + "MainAbilityLevels": 4, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 10, + "DPS": 53, + "PreviewScenario": "GearGauntlet" + }, + "11": { + "Level": 11, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_GiantGauntlet", + "TID": "TID_GEAR_GIANT_GAUNTLET", + "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre; EpicOre", + "UpgradeCosts": "2100;400;20", + "MainAbilities": "BarbarianKingGetsBig", + "MainAbilityLevels": 4, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 11, + "DPS": 63, + "PreviewScenario": "GearGauntlet" + }, + "12": { + "Level": 12, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_GiantGauntlet", + "TID": "TID_GEAR_GIANT_GAUNTLET", + "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2200, + "MainAbilities": "BarbarianKingGetsBig", + "MainAbilityLevels": 5, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 12, + "DPS": 74, + "PreviewScenario": "GearGauntlet" + }, + "13": { + "Level": 13, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_GiantGauntlet", + "TID": "TID_GEAR_GIANT_GAUNTLET", + "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2300, + "MainAbilities": "BarbarianKingGetsBig", + "MainAbilityLevels": 5, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 13, + "DPS": 84, + "PreviewScenario": "GearGauntlet" + }, + "14": { + "Level": 14, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_GiantGauntlet", + "TID": "TID_GEAR_GIANT_GAUNTLET", + "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre; EpicOre", + "UpgradeCosts": "2400;600;30", + "MainAbilities": "BarbarianKingGetsBig", + "MainAbilityLevels": 5, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 14, + "DPS": 94, + "PreviewScenario": "GearGauntlet" + }, + "15": { + "Level": 15, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_GiantGauntlet", + "TID": "TID_GEAR_GIANT_GAUNTLET", + "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2500, + "MainAbilities": "BarbarianKingGetsBig", + "MainAbilityLevels": 6, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 15, + "DPS": 104, + "PreviewScenario": "GearGauntlet" + }, + "16": { + "Level": 16, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_GiantGauntlet", + "TID": "TID_GEAR_GIANT_GAUNTLET", + "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2600, + "MainAbilities": "BarbarianKingGetsBig", + "MainAbilityLevels": 6, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 16, + "DPS": 115, + "PreviewScenario": "GearGauntlet" + }, + "17": { + "Level": 17, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_GiantGauntlet", + "TID": "TID_GEAR_GIANT_GAUNTLET", + "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre; EpicOre", + "UpgradeCosts": "2700;600;50", + "MainAbilities": "BarbarianKingGetsBig", + "MainAbilityLevels": 6, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 17, + "DPS": 125, + "PreviewScenario": "GearGauntlet" + }, + "18": { + "Level": 18, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_GiantGauntlet", + "TID": "TID_GEAR_GIANT_GAUNTLET", + "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2800, + "MainAbilities": "BarbarianKingGetsBig", + "MainAbilityLevels": 7, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 18, + "DPS": 135, + "PreviewScenario": "GearGauntlet" + }, + "19": { + "Level": 19, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_GiantGauntlet", + "TID": "TID_GEAR_GIANT_GAUNTLET", + "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2900, + "MainAbilities": "BarbarianKingGetsBig", + "MainAbilityLevels": 7, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 19, + "DPS": 140, + "PreviewScenario": "GearGauntlet" + }, + "20": { + "Level": 20, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_GiantGauntlet", + "TID": "TID_GEAR_GIANT_GAUNTLET", + "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre; EpicOre", + "UpgradeCosts": "3000;600;100", + "MainAbilities": "BarbarianKingGetsBig", + "MainAbilityLevels": 7, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 20, + "DPS": 145, + "PreviewScenario": "GearGauntlet" + }, + "21": { + "Level": 21, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_GiantGauntlet", + "TID": "TID_GEAR_GIANT_GAUNTLET", + "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 3100, + "MainAbilities": "BarbarianKingGetsBig", + "MainAbilityLevels": 8, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 21, + "DPS": 150, + "PreviewScenario": "GearGauntlet" + }, + "22": { + "Level": 22, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_GiantGauntlet", + "TID": "TID_GEAR_GIANT_GAUNTLET", + "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 8, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 3200, + "MainAbilities": "BarbarianKingGetsBig", + "MainAbilityLevels": 8, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 22, + "DPS": 155, + "PreviewScenario": "GearGauntlet" + }, + "23": { + "Level": 23, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_GiantGauntlet", + "TID": "TID_GEAR_GIANT_GAUNTLET", + "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 8, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre; EpicOre", + "UpgradeCosts": "3300;600;120", + "MainAbilities": "BarbarianKingGetsBig", + "MainAbilityLevels": 8, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 23, + "DPS": 160, + "PreviewScenario": "GearGauntlet" + }, + "24": { + "Level": 24, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_GiantGauntlet", + "TID": "TID_GEAR_GIANT_GAUNTLET", + "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 8, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 3400, + "MainAbilities": "BarbarianKingGetsBig", + "MainAbilityLevels": 9, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 24, + "DPS": 165, + "PreviewScenario": "GearGauntlet" + }, + "25": { + "Level": 25, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_GiantGauntlet", + "TID": "TID_GEAR_GIANT_GAUNTLET", + "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 9, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 3500, + "MainAbilities": "BarbarianKingGetsBig", + "MainAbilityLevels": 9, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 25, + "DPS": 170, + "PreviewScenario": "GearGauntlet" + }, + "26": { + "Level": 26, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_GiantGauntlet", + "TID": "TID_GEAR_GIANT_GAUNTLET", + "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 9, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre; EpicOre", + "UpgradeCosts": "3600;600;150", + "MainAbilities": "BarbarianKingGetsBig", + "MainAbilityLevels": 9, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 26, + "DPS": 175, + "PreviewScenario": "GearGauntlet" + }, + "27": { + "Level": 27, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_GiantGauntlet", + "TID": "TID_GEAR_GIANT_GAUNTLET", + "InfoTID": "TID_GEAR_INFO_GIANT_GAUNTLET", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 9, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre; EpicOre", + "UpgradeCosts": "3600;600;150", + "MainAbilities": "BarbarianKingGetsBig", + "MainAbilityLevels": 10, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 27, + "DPS": 180, + "PreviewScenario": "GearGauntlet" + } + }, + "Vampstache": { + "1": { + "Level": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_VampStache", + "TID": "TID_GEAR_VAMPSTACHE", + "InfoTID": "TID_GEAR_INFO_VAMPSTACHE", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 120, + "MainAbilities": "BarbarianKingVampstache", + "MainAbilityLevels": 1, + "AttackSpeedPercentage": 5, + "DPS": 9, + "PreviewScenario": "GearVampstache" + }, + "2": { + "Level": 2, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_VampStache", + "TID": "TID_GEAR_VAMPSTACHE", + "InfoTID": "TID_GEAR_INFO_VAMPSTACHE", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "240;20", + "MainAbilities": "BarbarianKingVampstache", + "MainAbilityLevels": 1, + "AttackSpeedPercentage": 6, + "DPS": 10, + "PreviewScenario": "GearVampstache" + }, + "3": { + "Level": 3, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_VampStache", + "TID": "TID_GEAR_VAMPSTACHE", + "InfoTID": "TID_GEAR_INFO_VAMPSTACHE", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 400, + "MainAbilities": "BarbarianKingVampstache", + "MainAbilityLevels": 2, + "AttackSpeedPercentage": 7, + "DPS": 12, + "PreviewScenario": "GearVampstache" + }, + "4": { + "Level": 4, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_VampStache", + "TID": "TID_GEAR_VAMPSTACHE", + "InfoTID": "TID_GEAR_INFO_VAMPSTACHE", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 600, + "MainAbilities": "BarbarianKingVampstache", + "MainAbilityLevels": 2, + "AttackSpeedPercentage": 8, + "DPS": 13, + "PreviewScenario": "GearVampstache" + }, + "5": { + "Level": 5, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_VampStache", + "TID": "TID_GEAR_VAMPSTACHE", + "InfoTID": "TID_GEAR_INFO_VAMPSTACHE", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "840;100", + "MainAbilities": "BarbarianKingVampstache", + "MainAbilityLevels": 2, + "AttackSpeedPercentage": 9, + "DPS": 15, + "PreviewScenario": "GearVampstache" + }, + "6": { + "Level": 6, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_VampStache", + "TID": "TID_GEAR_VAMPSTACHE", + "InfoTID": "TID_GEAR_INFO_VAMPSTACHE", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1120, + "MainAbilities": "BarbarianKingVampstache", + "MainAbilityLevels": 3, + "AttackSpeedPercentage": 10, + "DPS": 16, + "PreviewScenario": "GearVampstache" + }, + "7": { + "Level": 7, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_VampStache", + "TID": "TID_GEAR_VAMPSTACHE", + "InfoTID": "TID_GEAR_INFO_VAMPSTACHE", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1440, + "MainAbilities": "BarbarianKingVampstache", + "MainAbilityLevels": 3, + "AttackSpeedPercentage": 11, + "DPS": 18, + "PreviewScenario": "GearVampstache" + }, + "8": { + "Level": 8, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_VampStache", + "TID": "TID_GEAR_VAMPSTACHE", + "InfoTID": "TID_GEAR_INFO_VAMPSTACHE", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "1800;200", + "MainAbilities": "BarbarianKingVampstache", + "MainAbilityLevels": 3, + "AttackSpeedPercentage": 12, + "DPS": 19, + "PreviewScenario": "GearVampstache" + }, + "9": { + "Level": 9, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_VampStache", + "TID": "TID_GEAR_VAMPSTACHE", + "InfoTID": "TID_GEAR_INFO_VAMPSTACHE", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1900, + "MainAbilities": "BarbarianKingVampstache", + "MainAbilityLevels": 4, + "AttackSpeedPercentage": 13, + "DPS": 22, + "PreviewScenario": "GearVampstache" + }, + "10": { + "Level": 10, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_VampStache", + "TID": "TID_GEAR_VAMPSTACHE", + "InfoTID": "TID_GEAR_INFO_VAMPSTACHE", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2000, + "MainAbilities": "BarbarianKingVampstache", + "MainAbilityLevels": 4, + "AttackSpeedPercentage": 14, + "DPS": 27, + "PreviewScenario": "GearVampstache" + }, + "11": { + "Level": 11, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_VampStache", + "TID": "TID_GEAR_VAMPSTACHE", + "InfoTID": "TID_GEAR_INFO_VAMPSTACHE", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2100;400", + "MainAbilities": "BarbarianKingVampstache", + "MainAbilityLevels": 4, + "AttackSpeedPercentage": 15, + "DPS": 32, + "PreviewScenario": "GearVampstache" + }, + "12": { + "Level": 12, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_VampStache", + "TID": "TID_GEAR_VAMPSTACHE", + "InfoTID": "TID_GEAR_INFO_VAMPSTACHE", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2200, + "MainAbilities": "BarbarianKingVampstache", + "MainAbilityLevels": 5, + "AttackSpeedPercentage": 16, + "DPS": 37, + "PreviewScenario": "GearVampstache" + }, + "13": { + "Level": 13, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_VampStache", + "TID": "TID_GEAR_VAMPSTACHE", + "InfoTID": "TID_GEAR_INFO_VAMPSTACHE", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2300, + "MainAbilities": "BarbarianKingVampstache", + "MainAbilityLevels": 5, + "AttackSpeedPercentage": 17, + "DPS": 42, + "PreviewScenario": "GearVampstache" + }, + "14": { + "Level": 14, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_VampStache", + "TID": "TID_GEAR_VAMPSTACHE", + "InfoTID": "TID_GEAR_INFO_VAMPSTACHE", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2400;600", + "MainAbilities": "BarbarianKingVampstache", + "MainAbilityLevels": 5, + "AttackSpeedPercentage": 18, + "DPS": 48, + "PreviewScenario": "GearVampstache" + }, + "15": { + "Level": 15, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_VampStache", + "TID": "TID_GEAR_VAMPSTACHE", + "InfoTID": "TID_GEAR_INFO_VAMPSTACHE", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2500, + "MainAbilities": "BarbarianKingVampstache", + "MainAbilityLevels": 6, + "AttackSpeedPercentage": 19, + "DPS": 53, + "PreviewScenario": "GearVampstache" + }, + "16": { + "Level": 16, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_VampStache", + "TID": "TID_GEAR_VAMPSTACHE", + "InfoTID": "TID_GEAR_INFO_VAMPSTACHE", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2600, + "MainAbilities": "BarbarianKingVampstache", + "MainAbilityLevels": 6, + "AttackSpeedPercentage": 20, + "DPS": 58, + "PreviewScenario": "GearVampstache" + }, + "17": { + "Level": 17, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_VampStache", + "TID": "TID_GEAR_VAMPSTACHE", + "InfoTID": "TID_GEAR_INFO_VAMPSTACHE", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2700;600", + "MainAbilities": "BarbarianKingVampstache", + "MainAbilityLevels": 6, + "AttackSpeedPercentage": 21, + "DPS": 63, + "PreviewScenario": "GearVampstache" + }, + "18": { + "Level": 18, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_BK_VampStache", + "TID": "TID_GEAR_VAMPSTACHE", + "InfoTID": "TID_GEAR_INFO_VAMPSTACHE", + "AllowedCharacters": "Barbarian King;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2700;600", + "MainAbilities": "BarbarianKingVampstache", + "MainAbilityLevels": 7, + "AttackSpeedPercentage": 22, + "DPS": 68, + "PreviewScenario": "GearVampstache" + } + }, + "Frozen Arrow": { + "1": { + "Level": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_FreezeArrow", + "TID": "TID_GEAR_FROZEN_ARROW", + "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 120, + "MainAbilities": "ArcherQueenAttackFreeze", + "MainAbilityLevels": 1, + "DPS": 35, + "PreviewScenario": "GearFrozenArrow" + }, + "2": { + "Level": 2, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_FreezeArrow", + "TID": "TID_GEAR_FROZEN_ARROW", + "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "240;20", + "MainAbilities": "ArcherQueenAttackFreeze", + "MainAbilityLevels": 2, + "DPS": 40, + "PreviewScenario": "GearFrozenArrow" + }, + "3": { + "Level": 3, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_FreezeArrow", + "TID": "TID_GEAR_FROZEN_ARROW", + "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 400, + "MainAbilities": "ArcherQueenAttackFreeze", + "MainAbilityLevels": 3, + "DPS": 45, + "PreviewScenario": "GearFrozenArrow" + }, + "4": { + "Level": 4, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_FreezeArrow", + "TID": "TID_GEAR_FROZEN_ARROW", + "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 600, + "MainAbilities": "ArcherQueenAttackFreeze", + "MainAbilityLevels": 4, + "DPS": 50, + "PreviewScenario": "GearFrozenArrow" + }, + "5": { + "Level": 5, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_FreezeArrow", + "TID": "TID_GEAR_FROZEN_ARROW", + "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "840;100", + "MainAbilities": "ArcherQueenAttackFreeze", + "MainAbilityLevels": 5, + "DPS": 55, + "PreviewScenario": "GearFrozenArrow" + }, + "6": { + "Level": 6, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_FreezeArrow", + "TID": "TID_GEAR_FROZEN_ARROW", + "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1120, + "MainAbilities": "ArcherQueenAttackFreeze", + "MainAbilityLevels": 6, + "DPS": 60, + "PreviewScenario": "GearFrozenArrow" + }, + "7": { + "Level": 7, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_FreezeArrow", + "TID": "TID_GEAR_FROZEN_ARROW", + "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1440, + "MainAbilities": "ArcherQueenAttackFreeze", + "MainAbilityLevels": 7, + "DPS": 66, + "PreviewScenario": "GearFrozenArrow" + }, + "8": { + "Level": 8, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_FreezeArrow", + "TID": "TID_GEAR_FROZEN_ARROW", + "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre; EpicOre", + "UpgradeCosts": "1800;200;10", + "MainAbilities": "ArcherQueenAttackFreeze", + "MainAbilityLevels": 8, + "DPS": 72, + "PreviewScenario": "GearFrozenArrow" + }, + "9": { + "Level": 9, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_FreezeArrow", + "TID": "TID_GEAR_FROZEN_ARROW", + "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1900, + "MainAbilities": "ArcherQueenAttackFreeze", + "MainAbilityLevels": 9, + "DPS": 78, + "PreviewScenario": "GearFrozenArrow" + }, + "10": { + "Level": 10, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_FreezeArrow", + "TID": "TID_GEAR_FROZEN_ARROW", + "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2000, + "MainAbilities": "ArcherQueenAttackFreeze", + "MainAbilityLevels": 10, + "DPS": 85, + "PreviewScenario": "GearFrozenArrow" + }, + "11": { + "Level": 11, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_FreezeArrow", + "TID": "TID_GEAR_FROZEN_ARROW", + "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre; EpicOre", + "UpgradeCosts": "2100;400;20", + "MainAbilities": "ArcherQueenAttackFreeze", + "MainAbilityLevels": 11, + "DPS": 92, + "PreviewScenario": "GearFrozenArrow" + }, + "12": { + "Level": 12, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_FreezeArrow", + "TID": "TID_GEAR_FROZEN_ARROW", + "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2200, + "MainAbilities": "ArcherQueenAttackFreeze", + "MainAbilityLevels": 12, + "DPS": 99, + "PreviewScenario": "GearFrozenArrow" + }, + "13": { + "Level": 13, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_FreezeArrow", + "TID": "TID_GEAR_FROZEN_ARROW", + "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2300, + "MainAbilities": "ArcherQueenAttackFreeze", + "MainAbilityLevels": 13, + "DPS": 105, + "PreviewScenario": "GearFrozenArrow" + }, + "14": { + "Level": 14, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_FreezeArrow", + "TID": "TID_GEAR_FROZEN_ARROW", + "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre; EpicOre", + "UpgradeCosts": "2400;600;30", + "MainAbilities": "ArcherQueenAttackFreeze", + "MainAbilityLevels": 14, + "DPS": 111, + "PreviewScenario": "GearFrozenArrow" + }, + "15": { + "Level": 15, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_FreezeArrow", + "TID": "TID_GEAR_FROZEN_ARROW", + "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2500, + "MainAbilities": "ArcherQueenAttackFreeze", + "MainAbilityLevels": 15, + "DPS": 117, + "PreviewScenario": "GearFrozenArrow" + }, + "16": { + "Level": 16, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_FreezeArrow", + "TID": "TID_GEAR_FROZEN_ARROW", + "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2600, + "MainAbilities": "ArcherQueenAttackFreeze", + "MainAbilityLevels": 16, + "DPS": 122, + "PreviewScenario": "GearFrozenArrow" + }, + "17": { + "Level": 17, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_FreezeArrow", + "TID": "TID_GEAR_FROZEN_ARROW", + "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre; EpicOre", + "UpgradeCosts": "2700;600;50", + "MainAbilities": "ArcherQueenAttackFreeze", + "MainAbilityLevels": 17, + "DPS": 127, + "PreviewScenario": "GearFrozenArrow" + }, + "18": { + "Level": 18, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_FreezeArrow", + "TID": "TID_GEAR_FROZEN_ARROW", + "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2800, + "MainAbilities": "ArcherQueenAttackFreeze", + "MainAbilityLevels": 18, + "DPS": 132, + "PreviewScenario": "GearFrozenArrow" + }, + "19": { + "Level": 19, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_FreezeArrow", + "TID": "TID_GEAR_FROZEN_ARROW", + "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2900, + "MainAbilities": "ArcherQueenAttackFreeze", + "MainAbilityLevels": 19, + "DPS": 136, + "PreviewScenario": "GearFrozenArrow" + }, + "20": { + "Level": 20, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_FreezeArrow", + "TID": "TID_GEAR_FROZEN_ARROW", + "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre; EpicOre", + "UpgradeCosts": "3000;600;100", + "MainAbilities": "ArcherQueenAttackFreeze", + "MainAbilityLevels": 20, + "DPS": 140, + "PreviewScenario": "GearFrozenArrow" + }, + "21": { + "Level": 21, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_FreezeArrow", + "TID": "TID_GEAR_FROZEN_ARROW", + "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 3100, + "MainAbilities": "ArcherQueenAttackFreeze", + "MainAbilityLevels": 21, + "DPS": 144, + "PreviewScenario": "GearFrozenArrow" + }, + "22": { + "Level": 22, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_FreezeArrow", + "TID": "TID_GEAR_FROZEN_ARROW", + "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 8, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 3200, + "MainAbilities": "ArcherQueenAttackFreeze", + "MainAbilityLevels": 22, + "DPS": 148, + "PreviewScenario": "GearFrozenArrow" + }, + "23": { + "Level": 23, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_FreezeArrow", + "TID": "TID_GEAR_FROZEN_ARROW", + "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 8, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre; EpicOre", + "UpgradeCosts": "3300;600;120", + "MainAbilities": "ArcherQueenAttackFreeze", + "MainAbilityLevels": 23, + "DPS": 152, + "PreviewScenario": "GearFrozenArrow" + }, + "24": { + "Level": 24, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_FreezeArrow", + "TID": "TID_GEAR_FROZEN_ARROW", + "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 8, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 3400, + "MainAbilities": "ArcherQueenAttackFreeze", + "MainAbilityLevels": 24, + "DPS": 156, + "PreviewScenario": "GearFrozenArrow" + }, + "25": { + "Level": 25, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_FreezeArrow", + "TID": "TID_GEAR_FROZEN_ARROW", + "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 9, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 3500, + "MainAbilities": "ArcherQueenAttackFreeze", + "MainAbilityLevels": 25, + "DPS": 160, + "PreviewScenario": "GearFrozenArrow" + }, + "26": { + "Level": 26, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_FreezeArrow", + "TID": "TID_GEAR_FROZEN_ARROW", + "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 9, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre; EpicOre", + "UpgradeCosts": "3600;600;150", + "MainAbilities": "ArcherQueenAttackFreeze", + "MainAbilityLevels": 26, + "DPS": 164, + "PreviewScenario": "GearFrozenArrow" + }, + "27": { + "Level": 27, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_FreezeArrow", + "TID": "TID_GEAR_FROZEN_ARROW", + "InfoTID": "TID_GEAR_INFO_FROZEN_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Epic", + "Claimable": true, + "RequiredBlacksmithLevel": 9, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre; EpicOre", + "UpgradeCosts": "3600;600;150", + "MainAbilities": "ArcherQueenAttackFreeze", + "MainAbilityLevels": 27, + "DPS": 168, + "PreviewScenario": "GearFrozenArrow" + } + }, + "Giant Arrow": { + "1": { + "Level": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_MagicArrow", + "TID": "TID_GEAR_PIERCING_ARROW", + "InfoTID": "TID_GEAR_INFO_PIERCING_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 2, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 120, + "MainAbilities": "ArcherQueenPierceProjectile", + "MainAbilityLevels": 1, + "HitPoints": 80, + "DPS": 20, + "PreviewScenario": "GearPiercingArrow" + }, + "2": { + "Level": 2, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_MagicArrow", + "TID": "TID_GEAR_PIERCING_ARROW", + "InfoTID": "TID_GEAR_INFO_PIERCING_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "240;20", + "MainAbilities": "ArcherQueenPierceProjectile", + "MainAbilityLevels": 1, + "HitPoints": 93, + "DPS": 23, + "PreviewScenario": "GearPiercingArrow" + }, + "3": { + "Level": 3, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_MagicArrow", + "TID": "TID_GEAR_PIERCING_ARROW", + "InfoTID": "TID_GEAR_INFO_PIERCING_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 400, + "MainAbilities": "ArcherQueenPierceProjectile", + "MainAbilityLevels": 2, + "HitPoints": 106, + "DPS": 27, + "PreviewScenario": "GearPiercingArrow" + }, + "4": { + "Level": 4, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_MagicArrow", + "TID": "TID_GEAR_PIERCING_ARROW", + "InfoTID": "TID_GEAR_INFO_PIERCING_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 600, + "MainAbilities": "ArcherQueenPierceProjectile", + "MainAbilityLevels": 2, + "HitPoints": 119, + "DPS": 30, + "PreviewScenario": "GearPiercingArrow" + }, + "5": { + "Level": 5, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_MagicArrow", + "TID": "TID_GEAR_PIERCING_ARROW", + "InfoTID": "TID_GEAR_INFO_PIERCING_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "840;100", + "MainAbilities": "ArcherQueenPierceProjectile", + "MainAbilityLevels": 2, + "HitPoints": 133, + "DPS": 33, + "PreviewScenario": "GearPiercingArrow" + }, + "6": { + "Level": 6, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_MagicArrow", + "TID": "TID_GEAR_PIERCING_ARROW", + "InfoTID": "TID_GEAR_INFO_PIERCING_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1120, + "MainAbilities": "ArcherQueenPierceProjectile", + "MainAbilityLevels": 3, + "HitPoints": 146, + "DPS": 37, + "PreviewScenario": "GearPiercingArrow" + }, + "7": { + "Level": 7, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_MagicArrow", + "TID": "TID_GEAR_PIERCING_ARROW", + "InfoTID": "TID_GEAR_INFO_PIERCING_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1440, + "MainAbilities": "ArcherQueenPierceProjectile", + "MainAbilityLevels": 3, + "HitPoints": 159, + "DPS": 40, + "PreviewScenario": "GearPiercingArrow" + }, + "8": { + "Level": 8, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_MagicArrow", + "TID": "TID_GEAR_PIERCING_ARROW", + "InfoTID": "TID_GEAR_INFO_PIERCING_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "1800;200", + "MainAbilities": "ArcherQueenPierceProjectile", + "MainAbilityLevels": 3, + "HitPoints": 172, + "DPS": 43, + "PreviewScenario": "GearPiercingArrow" + }, + "9": { + "Level": 9, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_MagicArrow", + "TID": "TID_GEAR_PIERCING_ARROW", + "InfoTID": "TID_GEAR_INFO_PIERCING_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1900, + "MainAbilities": "ArcherQueenPierceProjectile", + "MainAbilityLevels": 4, + "HitPoints": 199, + "DPS": 50, + "PreviewScenario": "GearPiercingArrow" + }, + "10": { + "Level": 10, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_MagicArrow", + "TID": "TID_GEAR_PIERCING_ARROW", + "InfoTID": "TID_GEAR_INFO_PIERCING_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2000, + "MainAbilities": "ArcherQueenPierceProjectile", + "MainAbilityLevels": 4, + "HitPoints": 241, + "DPS": 59, + "PreviewScenario": "GearPiercingArrow" + }, + "11": { + "Level": 11, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_MagicArrow", + "TID": "TID_GEAR_PIERCING_ARROW", + "InfoTID": "TID_GEAR_INFO_PIERCING_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2100;400", + "MainAbilities": "ArcherQueenPierceProjectile", + "MainAbilityLevels": 4, + "HitPoints": 284, + "DPS": 68, + "PreviewScenario": "GearPiercingArrow" + }, + "12": { + "Level": 12, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_MagicArrow", + "TID": "TID_GEAR_PIERCING_ARROW", + "InfoTID": "TID_GEAR_INFO_PIERCING_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2200, + "MainAbilities": "ArcherQueenPierceProjectile", + "MainAbilityLevels": 5, + "HitPoints": 326, + "DPS": 77, + "PreviewScenario": "GearPiercingArrow" + }, + "13": { + "Level": 13, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_MagicArrow", + "TID": "TID_GEAR_PIERCING_ARROW", + "InfoTID": "TID_GEAR_INFO_PIERCING_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2300, + "MainAbilities": "ArcherQueenPierceProjectile", + "MainAbilityLevels": 5, + "HitPoints": 369, + "DPS": 86, + "PreviewScenario": "GearPiercingArrow" + }, + "14": { + "Level": 14, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_MagicArrow", + "TID": "TID_GEAR_PIERCING_ARROW", + "InfoTID": "TID_GEAR_INFO_PIERCING_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2400;600", + "MainAbilities": "ArcherQueenPierceProjectile", + "MainAbilityLevels": 5, + "HitPoints": 411, + "DPS": 96, + "PreviewScenario": "GearPiercingArrow" + }, + "15": { + "Level": 15, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_MagicArrow", + "TID": "TID_GEAR_PIERCING_ARROW", + "InfoTID": "TID_GEAR_INFO_PIERCING_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2500, + "MainAbilities": "ArcherQueenPierceProjectile", + "MainAbilityLevels": 6, + "HitPoints": 454, + "DPS": 105, + "PreviewScenario": "GearPiercingArrow" + }, + "16": { + "Level": 16, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_MagicArrow", + "TID": "TID_GEAR_PIERCING_ARROW", + "InfoTID": "TID_GEAR_INFO_PIERCING_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2600, + "MainAbilities": "ArcherQueenPierceProjectile", + "MainAbilityLevels": 6, + "HitPoints": 496, + "DPS": 114, + "PreviewScenario": "GearPiercingArrow" + }, + "17": { + "Level": 17, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_MagicArrow", + "TID": "TID_GEAR_PIERCING_ARROW", + "InfoTID": "TID_GEAR_INFO_PIERCING_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2700;600", + "MainAbilities": "ArcherQueenPierceProjectile", + "MainAbilityLevels": 6, + "HitPoints": 539, + "DPS": 123, + "PreviewScenario": "GearPiercingArrow" + }, + "18": { + "Level": 18, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_MagicArrow", + "TID": "TID_GEAR_PIERCING_ARROW", + "InfoTID": "TID_GEAR_INFO_PIERCING_ARROW", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2700;600", + "MainAbilities": "ArcherQueenPierceProjectile", + "MainAbilityLevels": 7, + "HitPoints": 581, + "DPS": 132, + "PreviewScenario": "GearPiercingArrow" + } + }, + "Healer Puppet": { + "1": { + "Level": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_HealerDoll", + "TID": "TID_GEAR_HEALER_JAR", + "InfoTID": "TID_GEAR_INFO_HEALER_JAR", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 120, + "MainAbilities": "ArcherQueenSpawnHealers", + "MainAbilityLevels": 1, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 1, + "HitPoints": 132, + "PreviewScenario": "GearHealerJar" + }, + "2": { + "Level": 2, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_HealerDoll", + "TID": "TID_GEAR_HEALER_JAR", + "InfoTID": "TID_GEAR_INFO_HEALER_JAR", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "240;20", + "MainAbilities": "ArcherQueenSpawnHealers", + "MainAbilityLevels": 1, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 2, + "HitPoints": 154, + "PreviewScenario": "GearHealerJar" + }, + "3": { + "Level": 3, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_HealerDoll", + "TID": "TID_GEAR_HEALER_JAR", + "InfoTID": "TID_GEAR_INFO_HEALER_JAR", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 400, + "MainAbilities": "ArcherQueenSpawnHealers", + "MainAbilityLevels": 2, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 3, + "HitPoints": 177, + "PreviewScenario": "GearHealerJar" + }, + "4": { + "Level": 4, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_HealerDoll", + "TID": "TID_GEAR_HEALER_JAR", + "InfoTID": "TID_GEAR_INFO_HEALER_JAR", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 600, + "MainAbilities": "ArcherQueenSpawnHealers", + "MainAbilityLevels": 2, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 4, + "HitPoints": 199, + "PreviewScenario": "GearHealerJar" + }, + "5": { + "Level": 5, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_HealerDoll", + "TID": "TID_GEAR_HEALER_JAR", + "InfoTID": "TID_GEAR_INFO_HEALER_JAR", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "840;100", + "MainAbilities": "ArcherQueenSpawnHealers", + "MainAbilityLevels": 2, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 5, + "HitPoints": 221, + "PreviewScenario": "GearHealerJar" + }, + "6": { + "Level": 6, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_HealerDoll", + "TID": "TID_GEAR_HEALER_JAR", + "InfoTID": "TID_GEAR_INFO_HEALER_JAR", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1120, + "MainAbilities": "ArcherQueenSpawnHealers", + "MainAbilityLevels": 3, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 6, + "HitPoints": 243, + "PreviewScenario": "GearHealerJar" + }, + "7": { + "Level": 7, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_HealerDoll", + "TID": "TID_GEAR_HEALER_JAR", + "InfoTID": "TID_GEAR_INFO_HEALER_JAR", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1440, + "MainAbilities": "ArcherQueenSpawnHealers", + "MainAbilityLevels": 3, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 7, + "HitPoints": 265, + "PreviewScenario": "GearHealerJar" + }, + "8": { + "Level": 8, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_HealerDoll", + "TID": "TID_GEAR_HEALER_JAR", + "InfoTID": "TID_GEAR_INFO_HEALER_JAR", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "1800;200", + "MainAbilities": "ArcherQueenSpawnHealers", + "MainAbilityLevels": 3, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 8, + "HitPoints": 287, + "PreviewScenario": "GearHealerJar" + }, + "9": { + "Level": 9, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_HealerDoll", + "TID": "TID_GEAR_HEALER_JAR", + "InfoTID": "TID_GEAR_INFO_HEALER_JAR", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1900, + "MainAbilities": "ArcherQueenSpawnHealers", + "MainAbilityLevels": 4, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 9, + "HitPoints": 331, + "PreviewScenario": "GearHealerJar" + }, + "10": { + "Level": 10, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_HealerDoll", + "TID": "TID_GEAR_HEALER_JAR", + "InfoTID": "TID_GEAR_INFO_HEALER_JAR", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2000, + "MainAbilities": "ArcherQueenSpawnHealers", + "MainAbilityLevels": 4, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 10, + "HitPoints": 402, + "PreviewScenario": "GearHealerJar" + }, + "11": { + "Level": 11, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_HealerDoll", + "TID": "TID_GEAR_HEALER_JAR", + "InfoTID": "TID_GEAR_INFO_HEALER_JAR", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2100;400", + "MainAbilities": "ArcherQueenSpawnHealers", + "MainAbilityLevels": 4, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 11, + "HitPoints": 473, + "PreviewScenario": "GearHealerJar" + }, + "12": { + "Level": 12, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_HealerDoll", + "TID": "TID_GEAR_HEALER_JAR", + "InfoTID": "TID_GEAR_INFO_HEALER_JAR", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2200, + "MainAbilities": "ArcherQueenSpawnHealers", + "MainAbilityLevels": 5, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 12, + "HitPoints": 543, + "PreviewScenario": "GearHealerJar" + }, + "13": { + "Level": 13, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_HealerDoll", + "TID": "TID_GEAR_HEALER_JAR", + "InfoTID": "TID_GEAR_INFO_HEALER_JAR", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2300, + "MainAbilities": "ArcherQueenSpawnHealers", + "MainAbilityLevels": 5, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 13, + "HitPoints": 614, + "PreviewScenario": "GearHealerJar" + }, + "14": { + "Level": 14, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_HealerDoll", + "TID": "TID_GEAR_HEALER_JAR", + "InfoTID": "TID_GEAR_INFO_HEALER_JAR", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2400;600", + "MainAbilities": "ArcherQueenSpawnHealers", + "MainAbilityLevels": 5, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 14, + "HitPoints": 685, + "PreviewScenario": "GearHealerJar" + }, + "15": { + "Level": 15, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_HealerDoll", + "TID": "TID_GEAR_HEALER_JAR", + "InfoTID": "TID_GEAR_INFO_HEALER_JAR", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2500, + "MainAbilities": "ArcherQueenSpawnHealers", + "MainAbilityLevels": 6, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 15, + "HitPoints": 756, + "PreviewScenario": "GearHealerJar" + }, + "16": { + "Level": 16, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_HealerDoll", + "TID": "TID_GEAR_HEALER_JAR", + "InfoTID": "TID_GEAR_INFO_HEALER_JAR", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2600, + "MainAbilities": "ArcherQueenSpawnHealers", + "MainAbilityLevels": 6, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 16, + "HitPoints": 826, + "PreviewScenario": "GearHealerJar" + }, + "17": { + "Level": 17, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_HealerDoll", + "TID": "TID_GEAR_HEALER_JAR", + "InfoTID": "TID_GEAR_INFO_HEALER_JAR", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2700;600", + "MainAbilities": "ArcherQueenSpawnHealers", + "MainAbilityLevels": 6, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 17, + "HitPoints": 897, + "PreviewScenario": "GearHealerJar" + }, + "18": { + "Level": 18, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_AQ_HealerDoll", + "TID": "TID_GEAR_HEALER_JAR", + "InfoTID": "TID_GEAR_INFO_HEALER_JAR", + "AllowedCharacters": "Archer Queen;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2700;600", + "MainAbilities": "ArcherQueenSpawnHealers", + "MainAbilityLevels": 7, + "ExtraAbilities": "Regeneration", + "ExtraAbilityLevels": 18, + "HitPoints": 968, + "PreviewScenario": "GearHealerJar" + } + }, + "Magic Tinderbox": { + "1": { + "Level": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_FireSack", + "TID": "TID_GEAR_FIRE_IN_A_CAN", + "InfoTID": "TID_GEAR_INFO_FIRE_IN_A_CAN", + "Deprecated": true, + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 2, + "RequiredCharacterLevel": 1, + "MainAbilities": "GrandWardenFireball", + "MainAbilityLevels": 1, + "PreviewScenario": "GearFireInCan" + } + }, + "Rage Gem": { + "1": { + "Level": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_RageGem", + "TID": "TID_GEAR_ANGRY_TOME", + "InfoTID": "TID_GEAR_INFO_ANGRY_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 4, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 120, + "MainAbilities": "GrandWardenRageAura", + "MainAbilityLevels": 1, + "AttackSpeedPercentage": 5, + "DPS": 12, + "PreviewScenario": "GearAngryTome" + }, + "2": { + "Level": 2, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_RageGem", + "TID": "TID_GEAR_ANGRY_TOME", + "InfoTID": "TID_GEAR_INFO_ANGRY_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "240;20", + "MainAbilities": "GrandWardenRageAura", + "MainAbilityLevels": 1, + "AttackSpeedPercentage": 6, + "DPS": 14, + "PreviewScenario": "GearAngryTome" + }, + "3": { + "Level": 3, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_RageGem", + "TID": "TID_GEAR_ANGRY_TOME", + "InfoTID": "TID_GEAR_INFO_ANGRY_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 400, + "MainAbilities": "GrandWardenRageAura", + "MainAbilityLevels": 2, + "AttackSpeedPercentage": 7, + "DPS": 16, + "PreviewScenario": "GearAngryTome" + }, + "4": { + "Level": 4, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_RageGem", + "TID": "TID_GEAR_ANGRY_TOME", + "InfoTID": "TID_GEAR_INFO_ANGRY_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 600, + "MainAbilities": "GrandWardenRageAura", + "MainAbilityLevels": 2, + "AttackSpeedPercentage": 8, + "DPS": 18, + "PreviewScenario": "GearAngryTome" + }, + "5": { + "Level": 5, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_RageGem", + "TID": "TID_GEAR_ANGRY_TOME", + "InfoTID": "TID_GEAR_INFO_ANGRY_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "840;100", + "MainAbilities": "GrandWardenRageAura", + "MainAbilityLevels": 2, + "AttackSpeedPercentage": 9, + "DPS": 20, + "PreviewScenario": "GearAngryTome" + }, + "6": { + "Level": 6, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_RageGem", + "TID": "TID_GEAR_ANGRY_TOME", + "InfoTID": "TID_GEAR_INFO_ANGRY_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1120, + "MainAbilities": "GrandWardenRageAura", + "MainAbilityLevels": 3, + "AttackSpeedPercentage": 10, + "DPS": 22, + "PreviewScenario": "GearAngryTome" + }, + "7": { + "Level": 7, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_RageGem", + "TID": "TID_GEAR_ANGRY_TOME", + "InfoTID": "TID_GEAR_INFO_ANGRY_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1440, + "MainAbilities": "GrandWardenRageAura", + "MainAbilityLevels": 3, + "AttackSpeedPercentage": 11, + "DPS": 24, + "PreviewScenario": "GearAngryTome" + }, + "8": { + "Level": 8, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_RageGem", + "TID": "TID_GEAR_ANGRY_TOME", + "InfoTID": "TID_GEAR_INFO_ANGRY_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "1800;200", + "MainAbilities": "GrandWardenRageAura", + "MainAbilityLevels": 3, + "AttackSpeedPercentage": 12, + "DPS": 26, + "PreviewScenario": "GearAngryTome" + }, + "9": { + "Level": 9, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_RageGem", + "TID": "TID_GEAR_ANGRY_TOME", + "InfoTID": "TID_GEAR_INFO_ANGRY_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1900, + "MainAbilities": "GrandWardenRageAura", + "MainAbilityLevels": 4, + "AttackSpeedPercentage": 13, + "DPS": 30, + "PreviewScenario": "GearAngryTome" + }, + "10": { + "Level": 10, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_RageGem", + "TID": "TID_GEAR_ANGRY_TOME", + "InfoTID": "TID_GEAR_INFO_ANGRY_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2000, + "MainAbilities": "GrandWardenRageAura", + "MainAbilityLevels": 4, + "AttackSpeedPercentage": 14, + "DPS": 36, + "PreviewScenario": "GearAngryTome" + }, + "11": { + "Level": 11, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_RageGem", + "TID": "TID_GEAR_ANGRY_TOME", + "InfoTID": "TID_GEAR_INFO_ANGRY_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2100;400", + "MainAbilities": "GrandWardenRageAura", + "MainAbilityLevels": 4, + "AttackSpeedPercentage": 15, + "DPS": 43, + "PreviewScenario": "GearAngryTome" + }, + "12": { + "Level": 12, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_RageGem", + "TID": "TID_GEAR_ANGRY_TOME", + "InfoTID": "TID_GEAR_INFO_ANGRY_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2200, + "MainAbilities": "GrandWardenRageAura", + "MainAbilityLevels": 5, + "AttackSpeedPercentage": 16, + "DPS": 49, + "PreviewScenario": "GearAngryTome" + }, + "13": { + "Level": 13, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_RageGem", + "TID": "TID_GEAR_ANGRY_TOME", + "InfoTID": "TID_GEAR_INFO_ANGRY_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2300, + "MainAbilities": "GrandWardenRageAura", + "MainAbilityLevels": 5, + "AttackSpeedPercentage": 17, + "DPS": 56, + "PreviewScenario": "GearAngryTome" + }, + "14": { + "Level": 14, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_RageGem", + "TID": "TID_GEAR_ANGRY_TOME", + "InfoTID": "TID_GEAR_INFO_ANGRY_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2400;600", + "MainAbilities": "GrandWardenRageAura", + "MainAbilityLevels": 5, + "AttackSpeedPercentage": 18, + "DPS": 62, + "PreviewScenario": "GearAngryTome" + }, + "15": { + "Level": 15, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_RageGem", + "TID": "TID_GEAR_ANGRY_TOME", + "InfoTID": "TID_GEAR_INFO_ANGRY_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2500, + "MainAbilities": "GrandWardenRageAura", + "MainAbilityLevels": 6, + "AttackSpeedPercentage": 19, + "DPS": 69, + "PreviewScenario": "GearAngryTome" + }, + "16": { + "Level": 16, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_RageGem", + "TID": "TID_GEAR_ANGRY_TOME", + "InfoTID": "TID_GEAR_INFO_ANGRY_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2600, + "MainAbilities": "GrandWardenRageAura", + "MainAbilityLevels": 6, + "AttackSpeedPercentage": 20, + "DPS": 75, + "PreviewScenario": "GearAngryTome" + }, + "17": { + "Level": 17, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_RageGem", + "TID": "TID_GEAR_ANGRY_TOME", + "InfoTID": "TID_GEAR_INFO_ANGRY_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2700;600", + "MainAbilities": "GrandWardenRageAura", + "MainAbilityLevels": 6, + "AttackSpeedPercentage": 21, + "DPS": 82, + "PreviewScenario": "GearAngryTome" + }, + "18": { + "Level": 18, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_RageGem", + "TID": "TID_GEAR_ANGRY_TOME", + "InfoTID": "TID_GEAR_INFO_ANGRY_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2700;600", + "MainAbilities": "GrandWardenRageAura", + "MainAbilityLevels": 7, + "AttackSpeedPercentage": 22, + "DPS": 88, + "PreviewScenario": "GearAngryTome" + } + }, + "Hog Rider Puppet": { + "1": { + "Level": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_a", + "TID": "TID_GEAR_HOG_TOTEM", + "InfoTID": "TID_GEAR_INFO_HOG_TOTEM", + "Deprecated": true, + "AllowedCharacters": "Warrior Princess;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 4, + "RequiredCharacterLevel": 1, + "MainAbilities": "RoyalChampionSpawnHeadhunter", + "MainAbilityLevels": 1 + } + }, + "Healing Tome": { + "1": { + "Level": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HeartTome", + "TID": "TID_GEAR_HEALING_TOME", + "InfoTID": "TID_GEAR_INFO_HEALING_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 6, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 120, + "MainAbilities": "GrandWardenHealAura", + "MainAbilityLevels": 1, + "HitPoints": 92, + "PreviewScenario": "GearHealingTome", + "HealOnActivation": 165 + }, + "2": { + "Level": 2, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HeartTome", + "TID": "TID_GEAR_HEALING_TOME", + "InfoTID": "TID_GEAR_INFO_HEALING_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "240;20", + "MainAbilities": "GrandWardenHealAura", + "MainAbilityLevels": 1, + "HitPoints": 107, + "PreviewScenario": "GearHealingTome", + "HealOnActivation": 193 + }, + "3": { + "Level": 3, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HeartTome", + "TID": "TID_GEAR_HEALING_TOME", + "InfoTID": "TID_GEAR_INFO_HEALING_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 400, + "MainAbilities": "GrandWardenHealAura", + "MainAbilityLevels": 2, + "HitPoints": 122, + "PreviewScenario": "GearHealingTome", + "HealOnActivation": 220 + }, + "4": { + "Level": 4, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HeartTome", + "TID": "TID_GEAR_HEALING_TOME", + "InfoTID": "TID_GEAR_INFO_HEALING_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 600, + "MainAbilities": "GrandWardenHealAura", + "MainAbilityLevels": 2, + "HitPoints": 137, + "PreviewScenario": "GearHealingTome", + "HealOnActivation": 248 + }, + "5": { + "Level": 5, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HeartTome", + "TID": "TID_GEAR_HEALING_TOME", + "InfoTID": "TID_GEAR_INFO_HEALING_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "840;100", + "MainAbilities": "GrandWardenHealAura", + "MainAbilityLevels": 2, + "HitPoints": 153, + "PreviewScenario": "GearHealingTome", + "HealOnActivation": 275 + }, + "6": { + "Level": 6, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HeartTome", + "TID": "TID_GEAR_HEALING_TOME", + "InfoTID": "TID_GEAR_INFO_HEALING_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1120, + "MainAbilities": "GrandWardenHealAura", + "MainAbilityLevels": 3, + "HitPoints": 168, + "PreviewScenario": "GearHealingTome", + "HealOnActivation": 303 + }, + "7": { + "Level": 7, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HeartTome", + "TID": "TID_GEAR_HEALING_TOME", + "InfoTID": "TID_GEAR_INFO_HEALING_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1440, + "MainAbilities": "GrandWardenHealAura", + "MainAbilityLevels": 3, + "HitPoints": 183, + "PreviewScenario": "GearHealingTome", + "HealOnActivation": 330 + }, + "8": { + "Level": 8, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HeartTome", + "TID": "TID_GEAR_HEALING_TOME", + "InfoTID": "TID_GEAR_INFO_HEALING_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "1800;200", + "MainAbilities": "GrandWardenHealAura", + "MainAbilityLevels": 3, + "HitPoints": 198, + "PreviewScenario": "GearHealingTome", + "HealOnActivation": 358 + }, + "9": { + "Level": 9, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HeartTome", + "TID": "TID_GEAR_HEALING_TOME", + "InfoTID": "TID_GEAR_INFO_HEALING_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 1, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 1900, + "MainAbilities": "GrandWardenHealAura", + "MainAbilityLevels": 4, + "HitPoints": 229, + "PreviewScenario": "GearHealingTome", + "HealOnActivation": 413 + }, + "10": { + "Level": 10, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HeartTome", + "TID": "TID_GEAR_HEALING_TOME", + "InfoTID": "TID_GEAR_INFO_HEALING_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2000, + "MainAbilities": "GrandWardenHealAura", + "MainAbilityLevels": 4, + "HitPoints": 280, + "PreviewScenario": "GearHealingTome", + "HealOnActivation": 463 + }, + "11": { + "Level": 11, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HeartTome", + "TID": "TID_GEAR_HEALING_TOME", + "InfoTID": "TID_GEAR_INFO_HEALING_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2100;400", + "MainAbilities": "GrandWardenHealAura", + "MainAbilityLevels": 4, + "HitPoints": 330, + "PreviewScenario": "GearHealingTome", + "HealOnActivation": 513 + }, + "12": { + "Level": 12, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HeartTome", + "TID": "TID_GEAR_HEALING_TOME", + "InfoTID": "TID_GEAR_INFO_HEALING_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 3, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2200, + "MainAbilities": "GrandWardenHealAura", + "MainAbilityLevels": 5, + "HitPoints": 381, + "PreviewScenario": "GearHealingTome", + "HealOnActivation": 563 + }, + "13": { + "Level": 13, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HeartTome", + "TID": "TID_GEAR_HEALING_TOME", + "InfoTID": "TID_GEAR_INFO_HEALING_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2300, + "MainAbilities": "GrandWardenHealAura", + "MainAbilityLevels": 5, + "HitPoints": 432, + "PreviewScenario": "GearHealingTome", + "HealOnActivation": 613 + }, + "14": { + "Level": 14, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HeartTome", + "TID": "TID_GEAR_HEALING_TOME", + "InfoTID": "TID_GEAR_INFO_HEALING_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2400;600", + "MainAbilities": "GrandWardenHealAura", + "MainAbilityLevels": 5, + "HitPoints": 482, + "PreviewScenario": "GearHealingTome", + "HealOnActivation": 663 + }, + "15": { + "Level": 15, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HeartTome", + "TID": "TID_GEAR_HEALING_TOME", + "InfoTID": "TID_GEAR_INFO_HEALING_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 5, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2500, + "MainAbilities": "GrandWardenHealAura", + "MainAbilityLevels": 6, + "HitPoints": 533, + "PreviewScenario": "GearHealingTome", + "HealOnActivation": 713 + }, + "16": { + "Level": 16, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HeartTome", + "TID": "TID_GEAR_HEALING_TOME", + "InfoTID": "TID_GEAR_INFO_HEALING_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre", + "UpgradeCosts": 2600, + "MainAbilities": "GrandWardenHealAura", + "MainAbilityLevels": 6, + "HitPoints": 584, + "PreviewScenario": "GearHealingTome", + "HealOnActivation": 763 + }, + "17": { + "Level": 17, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HeartTome", + "TID": "TID_GEAR_HEALING_TOME", + "InfoTID": "TID_GEAR_INFO_HEALING_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2700;600", + "MainAbilities": "GrandWardenHealAura", + "MainAbilityLevels": 6, + "HitPoints": 634, + "PreviewScenario": "GearHealingTome", + "HealOnActivation": 813 + }, + "18": { + "Level": 18, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_gear_GW_HeartTome", + "TID": "TID_GEAR_HEALING_TOME", + "InfoTID": "TID_GEAR_INFO_HEALING_TOME", + "AllowedCharacters": "Grand Warden;", + "Rarity": "Common", + "RequiredBlacksmithLevel": 7, + "RequiredCharacterLevel": 1, + "UpgradeResources": "CommonOre; RareOre", + "UpgradeCosts": "2700;600", + "MainAbilities": "GrandWardenHealAura", + "MainAbilityLevels": 7, + "HitPoints": 685, + "PreviewScenario": "GearHealingTome", + "HealOnActivation": 863 + } + } } \ No newline at end of file diff --git a/assets/json/heroes.json b/assets/json/heroes.json index c7ed446d..77748163 100644 --- a/assets/json/heroes.json +++ b/assets/json/heroes.json @@ -1,25972 +1,25972 @@ -{ - "Barbarian King": { - "1": { - "VisualLevel": 1, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 1445, - "UpgradeTimeH": 4, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 5000, - "RequiredTownHallLevel": 7, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 102, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 10, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 0, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 0, - "AbilitySpeedBoost2": 0, - "AbilityDamageBoostPercent": 0, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 0, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 20, - "StrengthWeight2": 10, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 1, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKing", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 1 - }, - "2": { - "VisualLevel": 2, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 1481, - "UpgradeTimeH": 6, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 6000, - "RequiredTownHallLevel": 7, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 104, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 10, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 0, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 0, - "AbilitySpeedBoost2": 0, - "AbilityDamageBoostPercent": 0, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 0, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 20, - "StrengthWeight2": 10, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 1, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKing", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 1 - }, - "3": { - "VisualLevel": 3, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 1518, - "UpgradeTimeH": 8, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 7000, - "RequiredTownHallLevel": 7, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 105, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 10, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 0, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 0, - "AbilitySpeedBoost2": 0, - "AbilityDamageBoostPercent": 0, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 0, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 20, - "StrengthWeight2": 10, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 1, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKing", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 1 - }, - "4": { - "VisualLevel": 4, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 1556, - "UpgradeTimeH": 10, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 8000, - "RequiredTownHallLevel": 7, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 108, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 10, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 0, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 0, - "AbilitySpeedBoost2": 0, - "AbilityDamageBoostPercent": 0, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 0, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 20, - "StrengthWeight2": 10, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 1, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKing", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 1 - }, - "5": { - "VisualLevel": 5, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 1595, - "UpgradeTimeH": 12, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 9000, - "RequiredTownHallLevel": 7, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 110, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 12, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 18, - "AbilitySpeedBoost2": 9, - "AbilityDamageBoostPercent": 120, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 6, - "AbilityDamageBoostOffset": 56, - "AbilityHealthIncrease": 500, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 21, - "StrengthWeight2": 11, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 2, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 1 - }, - "6": { - "VisualLevel": 6, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 1635, - "UpgradeTimeH": 14, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 10000, - "RequiredTownHallLevel": 7, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 112, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 12, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 18, - "AbilitySpeedBoost2": 9, - "AbilityDamageBoostPercent": 120, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 6, - "AbilityDamageBoostOffset": 56, - "AbilityHealthIncrease": 500, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 21, - "StrengthWeight2": 11, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 2, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 1 - }, - "7": { - "VisualLevel": 7, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 1675, - "UpgradeTimeH": 16, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 11000, - "RequiredTownHallLevel": 7, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 115, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 12, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 18, - "AbilitySpeedBoost2": 9, - "AbilityDamageBoostPercent": 120, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 6, - "AbilityDamageBoostOffset": 56, - "AbilityHealthIncrease": 500, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 21, - "StrengthWeight2": 11, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 2, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 1 - }, - "8": { - "VisualLevel": 8, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 1717, - "UpgradeTimeH": 18, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 12000, - "RequiredTownHallLevel": 7, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 116, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 12, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 18, - "AbilitySpeedBoost2": 9, - "AbilityDamageBoostPercent": 120, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 6, - "AbilityDamageBoostOffset": 56, - "AbilityHealthIncrease": 500, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 21, - "StrengthWeight2": 11, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 2, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 1 - }, - "9": { - "VisualLevel": 9, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 1760, - "UpgradeTimeH": 20, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 13000, - "RequiredTownHallLevel": 7, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 119, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 12, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 18, - "AbilitySpeedBoost2": 9, - "AbilityDamageBoostPercent": 120, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 6, - "AbilityDamageBoostOffset": 56, - "AbilityHealthIncrease": 500, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 21, - "StrengthWeight2": 11, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 2, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 1 - }, - "10": { - "VisualLevel": 10, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 1805, - "UpgradeTimeH": 22, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 14000, - "RequiredTownHallLevel": 7, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 122, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 14, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 19, - "AbilitySpeedBoost2": 9, - "AbilityDamageBoostPercent": 124, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 8, - "AbilityDamageBoostOffset": 101, - "AbilityHealthIncrease": 620, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 22, - "StrengthWeight2": 12, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 3, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 1 - }, - "11": { - "VisualLevel": 11, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 1850, - "UpgradeTimeH": 24, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 15000, - "RequiredTownHallLevel": 8, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 124, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 14, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 19, - "AbilitySpeedBoost2": 9, - "AbilityDamageBoostPercent": 124, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 8, - "AbilityDamageBoostOffset": 101, - "AbilityHealthIncrease": 620, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 22, - "StrengthWeight2": 12, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 3, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 2 - }, - "12": { - "VisualLevel": 12, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 1896, - "UpgradeTimeH": 24, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 16000, - "RequiredTownHallLevel": 8, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 127, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 14, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 19, - "AbilitySpeedBoost2": 9, - "AbilityDamageBoostPercent": 124, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 8, - "AbilityDamageBoostOffset": 101, - "AbilityHealthIncrease": 620, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 22, - "StrengthWeight2": 12, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 3, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 2 - }, - "13": { - "VisualLevel": 13, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 1943, - "UpgradeTimeH": 24, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 17000, - "RequiredTownHallLevel": 8, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 129, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 14, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 19, - "AbilitySpeedBoost2": 9, - "AbilityDamageBoostPercent": 124, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 8, - "AbilityDamageBoostOffset": 101, - "AbilityHealthIncrease": 620, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 22, - "StrengthWeight2": 12, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 3, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 2 - }, - "14": { - "VisualLevel": 14, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 1992, - "UpgradeTimeH": 24, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 18500, - "RequiredTownHallLevel": 8, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 132, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 14, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 19, - "AbilitySpeedBoost2": 9, - "AbilityDamageBoostPercent": 124, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 8, - "AbilityDamageBoostOffset": 101, - "AbilityHealthIncrease": 620, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 22, - "StrengthWeight2": 12, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 3, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 2 - }, - "15": { - "VisualLevel": 15, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 2042, - "UpgradeTimeH": 24, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 20000, - "RequiredTownHallLevel": 8, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 134, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 16, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 20, - "AbilitySpeedBoost2": 10, - "AbilityDamageBoostPercent": 128, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 10, - "AbilityDamageBoostOffset": 147, - "AbilityHealthIncrease": 752, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 23, - "StrengthWeight2": 13, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 4, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 2 - }, - "16": { - "VisualLevel": 16, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 2093, - "UpgradeTimeH": 36, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 21500, - "RequiredTownHallLevel": 8, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 137, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 16, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 20, - "AbilitySpeedBoost2": 10, - "AbilityDamageBoostPercent": 128, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 10, - "AbilityDamageBoostOffset": 147, - "AbilityHealthIncrease": 752, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 23, - "StrengthWeight2": 13, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 4, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 2 - }, - "17": { - "VisualLevel": 17, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 2145, - "UpgradeTimeH": 36, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 23000, - "RequiredTownHallLevel": 8, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 139, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 16, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 20, - "AbilitySpeedBoost2": 10, - "AbilityDamageBoostPercent": 128, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 10, - "AbilityDamageBoostOffset": 147, - "AbilityHealthIncrease": 752, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 23, - "StrengthWeight2": 13, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 4, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 2 - }, - "18": { - "VisualLevel": 18, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 2198, - "UpgradeTimeH": 36, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 24500, - "RequiredTownHallLevel": 8, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 143, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 16, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 20, - "AbilitySpeedBoost2": 10, - "AbilityDamageBoostPercent": 128, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 10, - "AbilityDamageBoostOffset": 147, - "AbilityHealthIncrease": 752, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 23, - "StrengthWeight2": 13, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 4, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 2 - }, - "19": { - "VisualLevel": 19, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 2253, - "UpgradeTimeH": 48, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 26000, - "RequiredTownHallLevel": 8, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 145, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 16, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 20, - "AbilitySpeedBoost2": 10, - "AbilityDamageBoostPercent": 128, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 10, - "AbilityDamageBoostOffset": 147, - "AbilityHealthIncrease": 752, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 23, - "StrengthWeight2": 13, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 4, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 2 - }, - "20": { - "VisualLevel": 20, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 2309, - "UpgradeTimeH": 48, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 28000, - "RequiredTownHallLevel": 8, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 148, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 18, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 21, - "AbilitySpeedBoost2": 10, - "AbilityDamageBoostPercent": 132, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 12, - "AbilityDamageBoostOffset": 195, - "AbilityHealthIncrease": 899, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 24, - "StrengthWeight2": 14, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 5, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 2 - }, - "21": { - "VisualLevel": 21, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 2367, - "UpgradeTimeH": 48, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 29000, - "RequiredTownHallLevel": 9, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 151, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 18, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 21, - "AbilitySpeedBoost2": 10, - "AbilityDamageBoostPercent": 132, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 12, - "AbilityDamageBoostOffset": 195, - "AbilityHealthIncrease": 899, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 24, - "StrengthWeight2": 14, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 5, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 3 - }, - "22": { - "VisualLevel": 22, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 2427, - "UpgradeTimeH": 48, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 31000, - "RequiredTownHallLevel": 9, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 154, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 18, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 21, - "AbilitySpeedBoost2": 10, - "AbilityDamageBoostPercent": 132, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 12, - "AbilityDamageBoostOffset": 195, - "AbilityHealthIncrease": 899, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 24, - "StrengthWeight2": 14, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 5, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 3 - }, - "23": { - "VisualLevel": 23, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 2487, - "UpgradeTimeH": 48, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 32000, - "RequiredTownHallLevel": 9, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 157, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 18, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 21, - "AbilitySpeedBoost2": 10, - "AbilityDamageBoostPercent": 132, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 12, - "AbilityDamageBoostOffset": 195, - "AbilityHealthIncrease": 899, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 24, - "StrengthWeight2": 14, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 5, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 3 - }, - "24": { - "VisualLevel": 24, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 2549, - "UpgradeTimeH": 60, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 34000, - "RequiredTownHallLevel": 9, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 161, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 18, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 21, - "AbilitySpeedBoost2": 10, - "AbilityDamageBoostPercent": 132, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 12, - "AbilityDamageBoostOffset": 195, - "AbilityHealthIncrease": 899, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 24, - "StrengthWeight2": 14, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 5, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 3 - }, - "25": { - "VisualLevel": 25, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 2613, - "UpgradeTimeH": 60, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 35000, - "RequiredTownHallLevel": 9, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 164, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 20, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 22, - "AbilitySpeedBoost2": 11, - "AbilityDamageBoostPercent": 136, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 14, - "AbilityDamageBoostOffset": 245, - "AbilityHealthIncrease": 1063, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 25, - "StrengthWeight2": 15, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 6, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 3 - }, - "26": { - "VisualLevel": 26, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 2678, - "UpgradeTimeH": 60, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 37000, - "RequiredTownHallLevel": 9, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 167, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 20, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 22, - "AbilitySpeedBoost2": 11, - "AbilityDamageBoostPercent": 136, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 14, - "AbilityDamageBoostOffset": 245, - "AbilityHealthIncrease": 1063, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 25, - "StrengthWeight2": 15, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 6, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 4 - }, - "27": { - "VisualLevel": 27, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 2746, - "UpgradeTimeH": 60, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 38000, - "RequiredTownHallLevel": 9, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 170, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 20, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 22, - "AbilitySpeedBoost2": 11, - "AbilityDamageBoostPercent": 136, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 14, - "AbilityDamageBoostOffset": 245, - "AbilityHealthIncrease": 1063, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 25, - "StrengthWeight2": 15, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 6, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 4 - }, - "28": { - "VisualLevel": 28, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 2814, - "UpgradeTimeH": 60, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 40000, - "RequiredTownHallLevel": 9, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 173, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 20, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 22, - "AbilitySpeedBoost2": 11, - "AbilityDamageBoostPercent": 136, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 14, - "AbilityDamageBoostOffset": 245, - "AbilityHealthIncrease": 1063, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 25, - "StrengthWeight2": 15, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 6, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 4 - }, - "29": { - "VisualLevel": 29, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 2885, - "UpgradeTimeH": 72, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 41000, - "RequiredTownHallLevel": 9, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 177, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 20, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 22, - "AbilitySpeedBoost2": 11, - "AbilityDamageBoostPercent": 136, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 14, - "AbilityDamageBoostOffset": 245, - "AbilityHealthIncrease": 1063, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 25, - "StrengthWeight2": 15, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 6, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 4 - }, - "30": { - "VisualLevel": 30, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 2956, - "UpgradeTimeH": 72, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 43000, - "RequiredTownHallLevel": 9, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 181, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 22, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 23, - "AbilitySpeedBoost2": 11, - "AbilityDamageBoostPercent": 140, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 16, - "AbilityDamageBoostOffset": 298, - "AbilityHealthIncrease": 1247, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 26, - "StrengthWeight2": 16, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 7, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 4 - }, - "31": { - "VisualLevel": 31, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 3030, - "UpgradeTimeH": 72, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 44000, - "RequiredTownHallLevel": 10, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 184, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 22, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 23, - "AbilitySpeedBoost2": 11, - "AbilityDamageBoostPercent": 140, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 16, - "AbilityDamageBoostOffset": 298, - "AbilityHealthIncrease": 1247, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 26, - "StrengthWeight2": 16, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 7, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 5 - }, - "32": { - "VisualLevel": 32, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 3107, - "UpgradeTimeH": 72, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 46000, - "RequiredTownHallLevel": 10, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 188, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 22, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 23, - "AbilitySpeedBoost2": 11, - "AbilityDamageBoostPercent": 140, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 16, - "AbilityDamageBoostOffset": 298, - "AbilityHealthIncrease": 1247, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 26, - "StrengthWeight2": 16, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 7, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 5 - }, - "33": { - "VisualLevel": 33, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 3184, - "UpgradeTimeH": 72, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 47000, - "RequiredTownHallLevel": 10, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 192, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 22, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 23, - "AbilitySpeedBoost2": 11, - "AbilityDamageBoostPercent": 140, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 16, - "AbilityDamageBoostOffset": 298, - "AbilityHealthIncrease": 1247, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 26, - "StrengthWeight2": 16, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 7, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 5 - }, - "34": { - "VisualLevel": 34, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 3264, - "UpgradeTimeH": 84, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 49000, - "RequiredTownHallLevel": 10, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 196, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 22, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 23, - "AbilitySpeedBoost2": 11, - "AbilityDamageBoostPercent": 140, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 16, - "AbilityDamageBoostOffset": 298, - "AbilityHealthIncrease": 1247, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 26, - "StrengthWeight2": 16, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 7, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 5 - }, - "35": { - "VisualLevel": 35, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 3346, - "UpgradeTimeH": 84, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 50000, - "RequiredTownHallLevel": 10, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 200, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 24, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 24, - "AbilitySpeedBoost2": 12, - "AbilityDamageBoostPercent": 144, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 18, - "AbilityDamageBoostOffset": 354, - "AbilityHealthIncrease": 1455, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 27, - "StrengthWeight2": 17, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 8, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 5 - }, - "36": { - "VisualLevel": 36, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 3429, - "UpgradeTimeH": 84, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 52000, - "RequiredTownHallLevel": 10, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 203, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 24, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 24, - "AbilitySpeedBoost2": 12, - "AbilityDamageBoostPercent": 144, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 18, - "AbilityDamageBoostOffset": 354, - "AbilityHealthIncrease": 1455, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 27, - "StrengthWeight2": 17, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 8, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 6 - }, - "37": { - "VisualLevel": 37, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 3515, - "UpgradeTimeH": 84, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 53000, - "RequiredTownHallLevel": 10, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 207, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 24, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 24, - "AbilitySpeedBoost2": 12, - "AbilityDamageBoostPercent": 144, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 18, - "AbilityDamageBoostOffset": 354, - "AbilityHealthIncrease": 1455, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 27, - "StrengthWeight2": 17, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 8, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 6 - }, - "38": { - "VisualLevel": 38, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 3602, - "UpgradeTimeH": 84, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 55000, - "RequiredTownHallLevel": 10, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 212, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 24, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 24, - "AbilitySpeedBoost2": 12, - "AbilityDamageBoostPercent": 144, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 18, - "AbilityDamageBoostOffset": 354, - "AbilityHealthIncrease": 1455, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 27, - "StrengthWeight2": 17, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 8, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 6 - }, - "39": { - "VisualLevel": 39, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 3692, - "UpgradeTimeH": 96, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 56000, - "RequiredTownHallLevel": 10, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 216, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 24, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 24, - "AbilitySpeedBoost2": 12, - "AbilityDamageBoostPercent": 144, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 18, - "AbilityDamageBoostOffset": 354, - "AbilityHealthIncrease": 1455, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 27, - "StrengthWeight2": 17, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 8, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 6 - }, - "40": { - "VisualLevel": 40, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 3785, - "UpgradeTimeH": 96, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 60000, - "RequiredTownHallLevel": 10, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 220, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 26, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 25, - "AbilitySpeedBoost2": 12, - "AbilityDamageBoostPercent": 150, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 20, - "AbilityDamageBoostOffset": 414, - "AbilityHealthIncrease": 1692, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 28, - "StrengthWeight2": 18, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 9, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 6 - }, - "41": { - "VisualLevel": 41, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 3879, - "UpgradeTimeH": 96, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 64000, - "RequiredTownHallLevel": 11, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 234, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 26, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 25, - "AbilitySpeedBoost2": 12, - "AbilityDamageBoostPercent": 150, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 20, - "AbilityDamageBoostOffset": 414, - "AbilityHealthIncrease": 1692, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 28, - "StrengthWeight2": 18, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 9, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 7 - }, - "42": { - "VisualLevel": 42, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 3976, - "UpgradeTimeH": 96, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 68000, - "RequiredTownHallLevel": 11, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 239, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 26, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 25, - "AbilitySpeedBoost2": 12, - "AbilityDamageBoostPercent": 150, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 20, - "AbilityDamageBoostOffset": 414, - "AbilityHealthIncrease": 1692, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 28, - "StrengthWeight2": 18, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 9, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 7 - }, - "43": { - "VisualLevel": 43, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 4076, - "UpgradeTimeH": 96, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 72000, - "RequiredTownHallLevel": 11, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 244, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 26, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 25, - "AbilitySpeedBoost2": 12, - "AbilityDamageBoostPercent": 150, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 20, - "AbilityDamageBoostOffset": 414, - "AbilityHealthIncrease": 1692, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 28, - "StrengthWeight2": 18, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 9, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 7 - }, - "44": { - "VisualLevel": 44, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 4178, - "UpgradeTimeH": 120, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 76000, - "RequiredTownHallLevel": 11, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 249, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 26, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 25, - "AbilitySpeedBoost2": 12, - "AbilityDamageBoostPercent": 150, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 20, - "AbilityDamageBoostOffset": 414, - "AbilityHealthIncrease": 1692, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 28, - "StrengthWeight2": 18, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 9, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 7 - }, - "45": { - "VisualLevel": 45, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 4282, - "UpgradeTimeH": 120, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 80000, - "RequiredTownHallLevel": 11, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 254, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 28, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 26, - "AbilitySpeedBoost2": 13, - "AbilityDamageBoostPercent": 155, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 22, - "AbilityDamageBoostOffset": 478, - "AbilityHealthIncrease": 1963, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 29, - "StrengthWeight2": 19, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 10, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 7 - }, - "46": { - "VisualLevel": 46, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 4389, - "UpgradeTimeH": 120, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 84000, - "RequiredTownHallLevel": 11, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 259, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 28, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 26, - "AbilitySpeedBoost2": 13, - "AbilityDamageBoostPercent": 155, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 22, - "AbilityDamageBoostOffset": 478, - "AbilityHealthIncrease": 1963, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 29, - "StrengthWeight2": 19, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 10, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 8 - }, - "47": { - "VisualLevel": 47, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 4499, - "UpgradeTimeH": 120, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 88000, - "RequiredTownHallLevel": 11, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 265, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 28, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 26, - "AbilitySpeedBoost2": 13, - "AbilityDamageBoostPercent": 155, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 22, - "AbilityDamageBoostOffset": 478, - "AbilityHealthIncrease": 1963, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 29, - "StrengthWeight2": 19, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 10, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 8 - }, - "48": { - "VisualLevel": 48, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 4611, - "UpgradeTimeH": 120, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 92000, - "RequiredTownHallLevel": 11, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 270, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 28, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 26, - "AbilitySpeedBoost2": 13, - "AbilityDamageBoostPercent": 155, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 22, - "AbilityDamageBoostOffset": 478, - "AbilityHealthIncrease": 1963, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 29, - "StrengthWeight2": 19, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 10, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 8 - }, - "49": { - "VisualLevel": 49, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 4727, - "UpgradeTimeH": 120, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 96000, - "RequiredTownHallLevel": 11, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 276, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 28, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 26, - "AbilitySpeedBoost2": 13, - "AbilityDamageBoostPercent": 155, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 22, - "AbilityDamageBoostOffset": 478, - "AbilityHealthIncrease": 1963, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 29, - "StrengthWeight2": 19, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 10, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 8 - }, - "50": { - "VisualLevel": 50, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 4845, - "UpgradeTimeH": 132, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 100000, - "RequiredTownHallLevel": 11, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 282, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 30, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 27, - "AbilitySpeedBoost2": 14, - "AbilityDamageBoostPercent": 160, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 24, - "AbilityDamageBoostOffset": 546, - "AbilityHealthIncrease": 2263, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 30, - "StrengthWeight2": 20, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 11, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 8 - }, - "51": { - "VisualLevel": 51, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 4967, - "UpgradeTimeH": 132, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 105000, - "RequiredTownHallLevel": 12, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 288, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 30, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 27, - "AbilitySpeedBoost2": 14, - "AbilityDamageBoostPercent": 160, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 24, - "AbilityDamageBoostOffset": 546, - "AbilityHealthIncrease": 2263, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 30, - "StrengthWeight2": 20, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 11, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 9 - }, - "52": { - "VisualLevel": 52, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 5092, - "UpgradeTimeH": 132, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 110000, - "RequiredTownHallLevel": 12, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 294, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 30, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 27, - "AbilitySpeedBoost2": 14, - "AbilityDamageBoostPercent": 160, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 24, - "AbilityDamageBoostOffset": 546, - "AbilityHealthIncrease": 2263, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 30, - "StrengthWeight2": 20, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 11, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 9 - }, - "53": { - "VisualLevel": 53, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 5219, - "UpgradeTimeH": 132, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 115000, - "RequiredTownHallLevel": 12, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 300, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 30, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 27, - "AbilitySpeedBoost2": 14, - "AbilityDamageBoostPercent": 160, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 24, - "AbilityDamageBoostOffset": 546, - "AbilityHealthIncrease": 2263, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 30, - "StrengthWeight2": 20, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 11, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 9 - }, - "54": { - "VisualLevel": 54, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 5350, - "UpgradeTimeH": 132, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 120000, - "RequiredTownHallLevel": 12, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 307, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 30, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 27, - "AbilitySpeedBoost2": 14, - "AbilityDamageBoostPercent": 160, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 24, - "AbilityDamageBoostOffset": 546, - "AbilityHealthIncrease": 2263, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 30, - "StrengthWeight2": 20, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 11, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 9 - }, - "55": { - "VisualLevel": 55, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 5484, - "UpgradeTimeH": 138, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 125000, - "RequiredTownHallLevel": 12, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 314, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 32, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 28, - "AbilitySpeedBoost2": 15, - "AbilityDamageBoostPercent": 165, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 26, - "AbilityDamageBoostOffset": 618, - "AbilityHealthIncrease": 2592, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 31, - "StrengthWeight2": 21, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 12, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 9 - }, - "56": { - "VisualLevel": 56, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 5622, - "UpgradeTimeH": 138, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 130000, - "RequiredTownHallLevel": 12, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 320, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 32, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 28, - "AbilitySpeedBoost2": 15, - "AbilityDamageBoostPercent": 165, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 26, - "AbilityDamageBoostOffset": 618, - "AbilityHealthIncrease": 2592, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 31, - "StrengthWeight2": 21, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 12, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 10 - }, - "57": { - "VisualLevel": 57, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 5763, - "UpgradeTimeH": 138, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 135000, - "RequiredTownHallLevel": 12, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 327, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 32, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 28, - "AbilitySpeedBoost2": 15, - "AbilityDamageBoostPercent": 165, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 26, - "AbilityDamageBoostOffset": 618, - "AbilityHealthIncrease": 2592, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 31, - "StrengthWeight2": 21, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 12, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 10 - }, - "58": { - "VisualLevel": 58, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 5908, - "UpgradeTimeH": 138, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 140000, - "RequiredTownHallLevel": 12, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 334, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 32, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 28, - "AbilitySpeedBoost2": 15, - "AbilityDamageBoostPercent": 165, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 26, - "AbilityDamageBoostOffset": 618, - "AbilityHealthIncrease": 2592, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 31, - "StrengthWeight2": 21, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 12, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 10 - }, - "59": { - "VisualLevel": 59, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 6055, - "UpgradeTimeH": 138, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 145000, - "RequiredTownHallLevel": 12, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 341, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 32, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 28, - "AbilitySpeedBoost2": 15, - "AbilityDamageBoostPercent": 165, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 26, - "AbilityDamageBoostOffset": 618, - "AbilityHealthIncrease": 2592, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 31, - "StrengthWeight2": 21, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 12, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 10 - }, - "60": { - "VisualLevel": 60, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 6208, - "UpgradeTimeH": 144, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 150000, - "RequiredTownHallLevel": 12, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 349, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 34, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 29, - "AbilitySpeedBoost2": 16, - "AbilityDamageBoostPercent": 170, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 28, - "AbilityDamageBoostOffset": 694, - "AbilityHealthIncrease": 2980, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 32, - "StrengthWeight2": 22, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 13, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 10 - }, - "61": { - "VisualLevel": 61, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 6363, - "UpgradeTimeH": 144, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 155000, - "RequiredTownHallLevel": 12, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 355, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 34, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 29, - "AbilitySpeedBoost2": 16, - "AbilityDamageBoostPercent": 170, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 28, - "AbilityDamageBoostOffset": 694, - "AbilityHealthIncrease": 2980, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 32, - "StrengthWeight2": 22, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 13, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 11 - }, - "62": { - "VisualLevel": 62, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 6522, - "UpgradeTimeH": 144, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 160000, - "RequiredTownHallLevel": 12, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 362, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 34, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 29, - "AbilitySpeedBoost2": 16, - "AbilityDamageBoostPercent": 170, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 28, - "AbilityDamageBoostOffset": 694, - "AbilityHealthIncrease": 2980, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 32, - "StrengthWeight2": 22, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 13, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 11 - }, - "63": { - "VisualLevel": 63, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 6685, - "UpgradeTimeH": 144, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 165000, - "RequiredTownHallLevel": 12, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 370, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 34, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 29, - "AbilitySpeedBoost2": 16, - "AbilityDamageBoostPercent": 170, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 28, - "AbilityDamageBoostOffset": 694, - "AbilityHealthIncrease": 2980, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 32, - "StrengthWeight2": 22, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 13, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 11 - }, - "64": { - "VisualLevel": 64, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 6853, - "UpgradeTimeH": 144, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 170000, - "RequiredTownHallLevel": 12, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 377, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 34, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 29, - "AbilitySpeedBoost2": 16, - "AbilityDamageBoostPercent": 170, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 28, - "AbilityDamageBoostOffset": 694, - "AbilityHealthIncrease": 2980, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 32, - "StrengthWeight2": 22, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 13, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 11 - }, - "65": { - "VisualLevel": 65, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 7024, - "UpgradeTimeH": 156, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 175000, - "RequiredTownHallLevel": 12, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 385, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 36, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 30, - "AbilitySpeedBoost2": 17, - "AbilityDamageBoostPercent": 175, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 30, - "AbilityDamageBoostOffset": 770, - "AbilityHealthIncrease": 3400, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 33, - "StrengthWeight2": 22, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 14, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 11 - }, - "66": { - "VisualLevel": 66, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 7200, - "UpgradeTimeH": 156, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 180000, - "RequiredTownHallLevel": 13, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 393, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 36, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 30, - "AbilitySpeedBoost2": 17, - "AbilityDamageBoostPercent": 175, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 30, - "AbilityDamageBoostOffset": 770, - "AbilityHealthIncrease": 3400, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 33, - "StrengthWeight2": 22, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 14, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 12 - }, - "67": { - "VisualLevel": 67, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 7378, - "UpgradeTimeH": 156, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 185000, - "RequiredTownHallLevel": 13, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 400, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 36, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 30, - "AbilitySpeedBoost2": 17, - "AbilityDamageBoostPercent": 175, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 30, - "AbilityDamageBoostOffset": 770, - "AbilityHealthIncrease": 3400, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 33, - "StrengthWeight2": 22, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 14, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 12 - }, - "68": { - "VisualLevel": 68, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 7557, - "UpgradeTimeH": 156, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 190000, - "RequiredTownHallLevel": 13, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 408, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 36, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 30, - "AbilitySpeedBoost2": 17, - "AbilityDamageBoostPercent": 175, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 30, - "AbilityDamageBoostOffset": 770, - "AbilityHealthIncrease": 3400, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 33, - "StrengthWeight2": 22, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 14, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 12 - }, - "69": { - "VisualLevel": 69, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 7735, - "UpgradeTimeH": 156, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 195000, - "RequiredTownHallLevel": 13, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 417, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 36, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 30, - "AbilitySpeedBoost2": 17, - "AbilityDamageBoostPercent": 175, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 30, - "AbilityDamageBoostOffset": 770, - "AbilityHealthIncrease": 3400, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 33, - "StrengthWeight2": 22, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 14, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 12 - }, - "70": { - "VisualLevel": 70, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 7905, - "UpgradeTimeH": 168, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 200000, - "RequiredTownHallLevel": 13, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 425, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 38, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 31, - "AbilitySpeedBoost2": 18, - "AbilityDamageBoostPercent": 180, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 32, - "AbilityDamageBoostOffset": 846, - "AbilityHealthIncrease": 3850, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 34, - "StrengthWeight2": 22, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 15, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 12 - }, - "71": { - "VisualLevel": 71, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 8075, - "UpgradeTimeH": 168, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 205000, - "RequiredTownHallLevel": 13, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 434, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 38, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 31, - "AbilitySpeedBoost2": 18, - "AbilityDamageBoostPercent": 180, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 32, - "AbilityDamageBoostOffset": 846, - "AbilityHealthIncrease": 3850, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 34, - "StrengthWeight2": 22, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 15, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 13 - }, - "72": { - "VisualLevel": 72, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 8245, - "UpgradeTimeH": 168, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 210000, - "RequiredTownHallLevel": 13, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 442, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 38, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 31, - "AbilitySpeedBoost2": 18, - "AbilityDamageBoostPercent": 180, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 32, - "AbilityDamageBoostOffset": 846, - "AbilityHealthIncrease": 3850, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 34, - "StrengthWeight2": 22, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 15, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 13 - }, - "73": { - "VisualLevel": 73, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 8415, - "UpgradeTimeH": 168, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 215000, - "RequiredTownHallLevel": 13, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 451, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 38, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 31, - "AbilitySpeedBoost2": 18, - "AbilityDamageBoostPercent": 180, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 32, - "AbilityDamageBoostOffset": 846, - "AbilityHealthIncrease": 3850, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 34, - "StrengthWeight2": 22, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 15, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 13 - }, - "74": { - "VisualLevel": 74, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 8585, - "UpgradeTimeH": 168, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 220000, - "RequiredTownHallLevel": 13, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 459, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 38, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 31, - "AbilitySpeedBoost2": 18, - "AbilityDamageBoostPercent": 180, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 32, - "AbilityDamageBoostOffset": 846, - "AbilityHealthIncrease": 3850, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 34, - "StrengthWeight2": 22, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 15, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 13 - }, - "75": { - "VisualLevel": 75, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 8755, - "UpgradeTimeH": 180, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 225000, - "RequiredTownHallLevel": 13, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 468, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 40, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 32, - "AbilitySpeedBoost2": 19, - "AbilityDamageBoostPercent": 185, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 34, - "AbilityDamageBoostOffset": 922, - "AbilityHealthIncrease": 4300, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 35, - "StrengthWeight2": 23, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 16, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 13 - }, - "76": { - "VisualLevel": 76, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 8917, - "UpgradeTimeH": 180, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 230000, - "RequiredTownHallLevel": 14, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 475, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 40, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 32, - "AbilitySpeedBoost2": 19, - "AbilityDamageBoostPercent": 185, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 34, - "AbilityDamageBoostOffset": 922, - "AbilityHealthIncrease": 4300, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 35, - "StrengthWeight2": 23, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 16, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 14 - }, - "77": { - "VisualLevel": 77, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 9078, - "UpgradeTimeH": 180, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 235000, - "RequiredTownHallLevel": 14, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 483, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 40, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 32, - "AbilitySpeedBoost2": 19, - "AbilityDamageBoostPercent": 185, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 34, - "AbilityDamageBoostOffset": 922, - "AbilityHealthIncrease": 4300, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 35, - "StrengthWeight2": 23, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 16, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 14 - }, - "78": { - "VisualLevel": 78, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 9240, - "UpgradeTimeH": 180, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 240000, - "RequiredTownHallLevel": 14, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 490, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 40, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 32, - "AbilitySpeedBoost2": 19, - "AbilityDamageBoostPercent": 185, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 34, - "AbilityDamageBoostOffset": 922, - "AbilityHealthIncrease": 4300, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 35, - "StrengthWeight2": 23, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 16, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 14 - }, - "79": { - "VisualLevel": 79, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 9401, - "UpgradeTimeH": 180, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 245000, - "RequiredTownHallLevel": 14, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 498, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 40, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 32, - "AbilitySpeedBoost2": 19, - "AbilityDamageBoostPercent": 185, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 34, - "AbilityDamageBoostOffset": 922, - "AbilityHealthIncrease": 4300, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 35, - "StrengthWeight2": 23, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 16, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 14 - }, - "80": { - "VisualLevel": 80, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 9563, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 250000, - "RequiredTownHallLevel": 14, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 506, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 42, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 33, - "AbilitySpeedBoost2": 20, - "AbilityDamageBoostPercent": 190, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 36, - "AbilityDamageBoostOffset": 990, - "AbilityHealthIncrease": 4700, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 36, - "StrengthWeight2": 23, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 17, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 14 - }, - "81": { - "VisualLevel": 81, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 9690, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 255000, - "RequiredTownHallLevel": 15, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 513, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 42, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 33, - "AbilitySpeedBoost2": 20, - "AbilityDamageBoostPercent": 190, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 36, - "AbilityDamageBoostOffset": 990, - "AbilityHealthIncrease": 4700, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 36, - "StrengthWeight2": 23, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 17, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 15 - }, - "82": { - "VisualLevel": 82, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 9818, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 260000, - "RequiredTownHallLevel": 15, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 519, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 42, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 33, - "AbilitySpeedBoost2": 20, - "AbilityDamageBoostPercent": 190, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 36, - "AbilityDamageBoostOffset": 990, - "AbilityHealthIncrease": 4700, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 36, - "StrengthWeight2": 23, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 17, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 15 - }, - "83": { - "VisualLevel": 83, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 9945, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 265000, - "RequiredTownHallLevel": 15, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 526, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 42, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 33, - "AbilitySpeedBoost2": 20, - "AbilityDamageBoostPercent": 190, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 36, - "AbilityDamageBoostOffset": 990, - "AbilityHealthIncrease": 4700, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 36, - "StrengthWeight2": 23, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 17, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 15 - }, - "84": { - "VisualLevel": 84, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 10073, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 270000, - "RequiredTownHallLevel": 15, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 533, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 42, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 33, - "AbilitySpeedBoost2": 20, - "AbilityDamageBoostPercent": 190, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 36, - "AbilityDamageBoostOffset": 990, - "AbilityHealthIncrease": 4700, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 36, - "StrengthWeight2": 23, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 17, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 15 - }, - "85": { - "VisualLevel": 85, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 10200, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 275000, - "RequiredTownHallLevel": 15, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 540, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 44, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 34, - "AbilitySpeedBoost2": 21, - "AbilityDamageBoostPercent": 195, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 38, - "AbilityDamageBoostOffset": 1050, - "AbilityHealthIncrease": 5000, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 37, - "StrengthWeight2": 23, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 18, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 15 - }, - "86": { - "VisualLevel": 86, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 10328, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 278000, - "RequiredTownHallLevel": 15, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 547, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 44, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 34, - "AbilitySpeedBoost2": 21, - "AbilityDamageBoostPercent": 195, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 38, - "AbilityDamageBoostOffset": 1050, - "AbilityHealthIncrease": 5000, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 37, - "StrengthWeight2": 23, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 18, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 15 - }, - "87": { - "VisualLevel": 87, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 10455, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 280000, - "RequiredTownHallLevel": 15, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 553, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 44, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 34, - "AbilitySpeedBoost2": 21, - "AbilityDamageBoostPercent": 195, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 38, - "AbilityDamageBoostOffset": 1050, - "AbilityHealthIncrease": 5000, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 37, - "StrengthWeight2": 23, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 18, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 15 - }, - "88": { - "VisualLevel": 88, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 10583, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 282000, - "RequiredTownHallLevel": 15, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 560, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 44, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 34, - "AbilitySpeedBoost2": 21, - "AbilityDamageBoostPercent": 195, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 38, - "AbilityDamageBoostOffset": 1050, - "AbilityHealthIncrease": 5000, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 37, - "StrengthWeight2": 23, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 18, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 15 - }, - "89": { - "VisualLevel": 89, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 10710, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 285000, - "RequiredTownHallLevel": 15, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 567, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 44, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 34, - "AbilitySpeedBoost2": 21, - "AbilityDamageBoostPercent": 195, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 38, - "AbilityDamageBoostOffset": 1050, - "AbilityHealthIncrease": 5000, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 37, - "StrengthWeight2": 23, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 18, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 15 - }, - "90": { - "VisualLevel": 90, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 10838, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 290000, - "RequiredTownHallLevel": 15, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 574, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 46, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 35, - "AbilitySpeedBoost2": 22, - "AbilityDamageBoostPercent": 200, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 40, - "AbilityDamageBoostOffset": 1100, - "AbilityHealthIncrease": 5300, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 38, - "StrengthWeight2": 23, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 19, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 15 - }, - "91": { - "VisualLevel": 91, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 10965, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 300000, - "RequiredTownHallLevel": 16, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 581, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 46, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 35, - "AbilitySpeedBoost2": 22, - "AbilityDamageBoostPercent": 200, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 40, - "AbilityDamageBoostOffset": 1100, - "AbilityHealthIncrease": 5300, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 38, - "StrengthWeight2": 23, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 19, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 15 - }, - "92": { - "VisualLevel": 92, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 11093, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 310000, - "RequiredTownHallLevel": 16, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 587, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 46, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 35, - "AbilitySpeedBoost2": 22, - "AbilityDamageBoostPercent": 200, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 40, - "AbilityDamageBoostOffset": 1100, - "AbilityHealthIncrease": 5300, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 38, - "StrengthWeight2": 23, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 19, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 15 - }, - "93": { - "VisualLevel": 93, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 11220, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 320000, - "RequiredTownHallLevel": 16, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 594, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 46, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 35, - "AbilitySpeedBoost2": 22, - "AbilityDamageBoostPercent": 200, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 40, - "AbilityDamageBoostOffset": 1100, - "AbilityHealthIncrease": 5300, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 38, - "StrengthWeight2": 23, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 19, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 15 - }, - "94": { - "VisualLevel": 94, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 11348, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 330000, - "RequiredTownHallLevel": 16, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 601, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 46, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 35, - "AbilitySpeedBoost2": 22, - "AbilityDamageBoostPercent": 200, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 40, - "AbilityDamageBoostOffset": 1100, - "AbilityHealthIncrease": 5300, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 38, - "StrengthWeight2": 23, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 19, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 15 - }, - "95": { - "VisualLevel": 95, - "TID": "TID_BARBARIAN_KING", - "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", - "Speed": 200, - "Hitpoints": 11475, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 330000, - "RequiredTownHallLevel": 16, - "AttackRange": 100, - "AttackSpeed": 1200, - "DPS": 608, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_barbarianKing", - "BigPicture": "unit_barbarianKing_big", - "BigPictureSWF": "sc/info_barbarian.sc", - "SmallPicture": "unit_barbarianKing_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Barbarian King Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 21, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 48, - "TrainingResource": "Elixir", - "CelebrateEffect": "Barbarian King Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 10000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySpeedBoost": 36, - "AbilitySpeedBoost2": 23, - "AbilityDamageBoostPercent": 205, - "AbilitySummonTroop": "Barbarian", - "AbilitySummonTroopCount": 42, - "AbilityDamageBoostOffset": 1150, - "AbilityHealthIncrease": 5600, - "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", - "AbilityIcon": "icon_hero_barbarianKing_ability1", - "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 39, - "StrengthWeight2": 23, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "AbilityAffectsSummonedUnits": true, - "DefaultSkin": "BarbarianKingDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "BarbarianKingAbilityHeal", - "SpecialAbilitiesLevel": 20, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroKingLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Barbarian Crown; Iron Fist;", - "MigrationGearLevel": 15 - } - }, - "Archer Queen": { - "1": { - "VisualLevel": 1, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 580, - "UpgradeTimeH": 4, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 10000, - "RequiredTownHallLevel": 9, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 136, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl1", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 10, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 0, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 0, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 50, - "StrengthWeight2": 28, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 1, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueen", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 1 - }, - "2": { - "VisualLevel": 2, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 592, - "UpgradeTimeH": 6, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 11000, - "RequiredTownHallLevel": 9, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 139, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl1", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 10, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 0, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 0, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 50, - "StrengthWeight2": 28, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 1, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueen", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 1 - }, - "3": { - "VisualLevel": 3, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 604, - "UpgradeTimeH": 8, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 12000, - "RequiredTownHallLevel": 9, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 143, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl1", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 10, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 0, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 0, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 50, - "StrengthWeight2": 28, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 1, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueen", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 1 - }, - "4": { - "VisualLevel": 4, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 617, - "UpgradeTimeH": 10, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 13000, - "RequiredTownHallLevel": 9, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 146, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl1", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 10, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 0, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 0, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 50, - "StrengthWeight2": 28, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 1, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueen", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 1 - }, - "5": { - "VisualLevel": 5, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 630, - "UpgradeTimeH": 12, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 14000, - "RequiredTownHallLevel": 9, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 150, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl1", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 12, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 3600, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 5, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 300, - "AbilityHealthIncrease": 150, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 51, - "StrengthWeight2": 29, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 2, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 1 - }, - "6": { - "VisualLevel": 6, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 643, - "UpgradeTimeH": 14, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 15000, - "RequiredTownHallLevel": 9, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 154, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl1", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 12, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 3600, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 5, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 300, - "AbilityHealthIncrease": 150, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 51, - "StrengthWeight2": 29, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 2, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 1 - }, - "7": { - "VisualLevel": 7, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 657, - "UpgradeTimeH": 16, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 16000, - "RequiredTownHallLevel": 9, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 157, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl1", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 12, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 3600, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 5, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 300, - "AbilityHealthIncrease": 150, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 51, - "StrengthWeight2": 29, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 2, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 1 - }, - "8": { - "VisualLevel": 8, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 670, - "UpgradeTimeH": 18, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 17000, - "RequiredTownHallLevel": 9, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 162, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl1", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 12, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 3600, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 5, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 300, - "AbilityHealthIncrease": 150, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 51, - "StrengthWeight2": 29, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 2, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 1 - }, - "9": { - "VisualLevel": 9, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 685, - "UpgradeTimeH": 20, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 18000, - "RequiredTownHallLevel": 9, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 165, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl1", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 12, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 3600, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 5, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 300, - "AbilityHealthIncrease": 150, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 51, - "StrengthWeight2": 29, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 2, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 1 - }, - "10": { - "VisualLevel": 10, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 699, - "UpgradeTimeH": 22, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 19000, - "RequiredTownHallLevel": 9, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 169, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl1", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 14, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 3800, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 6, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 355, - "AbilityHealthIncrease": 175, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 52, - "StrengthWeight2": 30, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 3, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 1 - }, - "11": { - "VisualLevel": 11, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 714, - "UpgradeTimeH": 24, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 20000, - "RequiredTownHallLevel": 9, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 173, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl1", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 14, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 3800, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 6, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 355, - "AbilityHealthIncrease": 175, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 52, - "StrengthWeight2": 30, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 3, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 2 - }, - "12": { - "VisualLevel": 12, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 729, - "UpgradeTimeH": 24, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 21000, - "RequiredTownHallLevel": 9, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 178, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl1", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 14, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 3800, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 6, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 355, - "AbilityHealthIncrease": 175, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 52, - "StrengthWeight2": 30, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 3, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 2 - }, - "13": { - "VisualLevel": 13, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 744, - "UpgradeTimeH": 24, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 22000, - "RequiredTownHallLevel": 9, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 183, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl1", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 14, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 3800, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 6, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 355, - "AbilityHealthIncrease": 175, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 52, - "StrengthWeight2": 30, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 3, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 2 - }, - "14": { - "VisualLevel": 14, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 759, - "UpgradeTimeH": 24, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 23000, - "RequiredTownHallLevel": 9, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 187, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl1", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 14, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 3800, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 6, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 355, - "AbilityHealthIncrease": 175, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 52, - "StrengthWeight2": 30, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 3, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 2 - }, - "15": { - "VisualLevel": 15, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 775, - "UpgradeTimeH": 24, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 24000, - "RequiredTownHallLevel": 9, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 192, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl1", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 16, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 7, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 416, - "AbilityHealthIncrease": 200, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 53, - "StrengthWeight2": 31, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 4, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 2 - }, - "16": { - "VisualLevel": 16, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 792, - "UpgradeTimeH": 36, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 25000, - "RequiredTownHallLevel": 9, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 196, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl1", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 16, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 7, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 416, - "AbilityHealthIncrease": 200, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 53, - "StrengthWeight2": 31, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 4, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 2 - }, - "17": { - "VisualLevel": 17, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 808, - "UpgradeTimeH": 36, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 27000, - "RequiredTownHallLevel": 9, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 201, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl1", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 16, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 7, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 416, - "AbilityHealthIncrease": 200, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 53, - "StrengthWeight2": 31, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 4, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 2 - }, - "18": { - "VisualLevel": 18, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 826, - "UpgradeTimeH": 36, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 28000, - "RequiredTownHallLevel": 9, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 207, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl1", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 16, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 7, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 416, - "AbilityHealthIncrease": 200, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 53, - "StrengthWeight2": 31, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 4, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 2 - }, - "19": { - "VisualLevel": 19, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 842, - "UpgradeTimeH": 48, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 30000, - "RequiredTownHallLevel": 9, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 212, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl1", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 16, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 7, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 416, - "AbilityHealthIncrease": 200, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 53, - "StrengthWeight2": 31, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 4, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 2 - }, - "20": { - "VisualLevel": 20, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 861, - "UpgradeTimeH": 48, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 31000, - "RequiredTownHallLevel": 9, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 217, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl2", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 18, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 4200, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 8, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 483, - "AbilityHealthIncrease": 225, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 54, - "StrengthWeight2": 32, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 5, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 2 - }, - "21": { - "VisualLevel": 21, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 878, - "UpgradeTimeH": 48, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 33000, - "RequiredTownHallLevel": 9, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 223, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl2", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 18, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 4200, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 8, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 483, - "AbilityHealthIncrease": 225, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 54, - "StrengthWeight2": 32, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 5, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 3 - }, - "22": { - "VisualLevel": 22, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 897, - "UpgradeTimeH": 48, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 34000, - "RequiredTownHallLevel": 9, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 228, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl2", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 18, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 4200, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 8, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 483, - "AbilityHealthIncrease": 225, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 54, - "StrengthWeight2": 32, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 5, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 3 - }, - "23": { - "VisualLevel": 23, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 916, - "UpgradeTimeH": 48, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 36000, - "RequiredTownHallLevel": 9, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 234, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl2", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 18, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 4200, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 8, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 483, - "AbilityHealthIncrease": 225, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 54, - "StrengthWeight2": 32, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 5, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 3 - }, - "24": { - "VisualLevel": 24, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 935, - "UpgradeTimeH": 60, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 37000, - "RequiredTownHallLevel": 9, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 240, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl2", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 18, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 4200, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 8, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 483, - "AbilityHealthIncrease": 225, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 54, - "StrengthWeight2": 32, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 5, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 3 - }, - "25": { - "VisualLevel": 25, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 954, - "UpgradeTimeH": 60, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 39000, - "RequiredTownHallLevel": 9, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 246, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl2", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 20, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 4400, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 9, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 557, - "AbilityHealthIncrease": 250, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 55, - "StrengthWeight2": 33, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 6, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 3 - }, - "26": { - "VisualLevel": 26, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 974, - "UpgradeTimeH": 60, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 40000, - "RequiredTownHallLevel": 9, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 252, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl2", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 20, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 4400, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 9, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 557, - "AbilityHealthIncrease": 250, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 55, - "StrengthWeight2": 33, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 6, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 4 - }, - "27": { - "VisualLevel": 27, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 995, - "UpgradeTimeH": 60, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 42000, - "RequiredTownHallLevel": 9, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 258, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl2", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 20, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 4400, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 9, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 557, - "AbilityHealthIncrease": 250, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 55, - "StrengthWeight2": 33, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 6, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 4 - }, - "28": { - "VisualLevel": 28, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 1016, - "UpgradeTimeH": 60, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 43000, - "RequiredTownHallLevel": 9, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 264, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl2", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 20, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 4400, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 9, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 557, - "AbilityHealthIncrease": 250, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 55, - "StrengthWeight2": 33, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 6, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 4 - }, - "29": { - "VisualLevel": 29, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 1038, - "UpgradeTimeH": 72, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 45000, - "RequiredTownHallLevel": 9, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 271, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl2", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 20, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 4400, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 9, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 557, - "AbilityHealthIncrease": 250, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 55, - "StrengthWeight2": 33, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 6, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 4 - }, - "30": { - "VisualLevel": 30, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 1059, - "UpgradeTimeH": 72, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 47000, - "RequiredTownHallLevel": 9, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 278, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl2", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 22, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 4600, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 10, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 638, - "AbilityHealthIncrease": 275, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 56, - "StrengthWeight2": 34, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 7, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 4 - }, - "31": { - "VisualLevel": 31, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 1082, - "UpgradeTimeH": 72, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 49000, - "RequiredTownHallLevel": 10, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 285, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl2", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 22, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 4600, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 10, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 638, - "AbilityHealthIncrease": 275, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 56, - "StrengthWeight2": 34, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 7, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 5 - }, - "32": { - "VisualLevel": 32, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 1104, - "UpgradeTimeH": 72, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 51000, - "RequiredTownHallLevel": 10, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 292, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl2", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 22, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 4600, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 10, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 638, - "AbilityHealthIncrease": 275, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 56, - "StrengthWeight2": 34, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 7, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 5 - }, - "33": { - "VisualLevel": 33, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 1127, - "UpgradeTimeH": 72, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 53000, - "RequiredTownHallLevel": 10, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 299, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl2", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 22, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 4600, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 10, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 638, - "AbilityHealthIncrease": 275, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 56, - "StrengthWeight2": 34, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 7, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 5 - }, - "34": { - "VisualLevel": 34, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 1151, - "UpgradeTimeH": 84, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 55000, - "RequiredTownHallLevel": 10, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 307, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl2", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 22, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 4600, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 10, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 638, - "AbilityHealthIncrease": 275, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 56, - "StrengthWeight2": 34, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 7, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 5 - }, - "35": { - "VisualLevel": 35, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 1175, - "UpgradeTimeH": 84, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 57000, - "RequiredTownHallLevel": 10, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 315, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl2", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 24, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 4800, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 11, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 725, - "AbilityHealthIncrease": 300, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 57, - "StrengthWeight2": 35, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 8, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 5 - }, - "36": { - "VisualLevel": 36, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 1200, - "UpgradeTimeH": 84, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 59000, - "RequiredTownHallLevel": 10, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 322, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl2", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 24, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 4800, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 11, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 725, - "AbilityHealthIncrease": 300, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 57, - "StrengthWeight2": 35, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 8, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 6 - }, - "37": { - "VisualLevel": 37, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 1226, - "UpgradeTimeH": 84, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 61000, - "RequiredTownHallLevel": 10, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 331, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl2", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 24, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 4800, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 11, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 725, - "AbilityHealthIncrease": 300, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 57, - "StrengthWeight2": 35, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 8, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 6 - }, - "38": { - "VisualLevel": 38, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 1251, - "UpgradeTimeH": 84, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 63000, - "RequiredTownHallLevel": 10, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 338, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl2", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 24, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 4800, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 11, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 725, - "AbilityHealthIncrease": 300, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 57, - "StrengthWeight2": 35, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 8, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 6 - }, - "39": { - "VisualLevel": 39, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 1278, - "UpgradeTimeH": 96, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 65000, - "RequiredTownHallLevel": 10, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 347, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl2", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 24, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 4800, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 11, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 725, - "AbilityHealthIncrease": 300, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 57, - "StrengthWeight2": 35, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 8, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 6 - }, - "40": { - "VisualLevel": 40, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 1304, - "UpgradeTimeH": 96, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 68000, - "RequiredTownHallLevel": 10, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 356, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl2", - "RageProjectile": "ArcherQueen arrow rage", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 26, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 5000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 12, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 819, - "AbilityHealthIncrease": 325, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 58, - "StrengthWeight2": 36, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 9, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 6 - }, - "41": { - "VisualLevel": 41, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 1331, - "UpgradeTimeH": 96, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 72000, - "RequiredTownHallLevel": 11, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 365, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 26, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 5000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 12, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 819, - "AbilityHealthIncrease": 325, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 58, - "StrengthWeight2": 36, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 9, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 7 - }, - "42": { - "VisualLevel": 42, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 1359, - "UpgradeTimeH": 96, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 75000, - "RequiredTownHallLevel": 11, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 374, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 26, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 5000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 12, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 819, - "AbilityHealthIncrease": 325, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 58, - "StrengthWeight2": 36, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 9, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 7 - }, - "43": { - "VisualLevel": 43, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 1388, - "UpgradeTimeH": 96, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 79000, - "RequiredTownHallLevel": 11, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 383, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 26, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 5000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 12, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 819, - "AbilityHealthIncrease": 325, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 58, - "StrengthWeight2": 36, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 9, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 7 - }, - "44": { - "VisualLevel": 44, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 1417, - "UpgradeTimeH": 120, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 82000, - "RequiredTownHallLevel": 11, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 393, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 26, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 5000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 12, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 819, - "AbilityHealthIncrease": 325, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 58, - "StrengthWeight2": 36, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 9, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 7 - }, - "45": { - "VisualLevel": 45, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 1447, - "UpgradeTimeH": 120, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 86000, - "RequiredTownHallLevel": 11, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 403, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 28, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 5200, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 13, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 920, - "AbilityHealthIncrease": 350, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 59, - "StrengthWeight2": 37, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 10, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 7 - }, - "46": { - "VisualLevel": 46, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 1478, - "UpgradeTimeH": 120, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 89000, - "RequiredTownHallLevel": 11, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 413, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 28, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 5200, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 13, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 920, - "AbilityHealthIncrease": 350, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 59, - "StrengthWeight2": 37, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 10, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 8 - }, - "47": { - "VisualLevel": 47, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 1508, - "UpgradeTimeH": 120, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 93000, - "RequiredTownHallLevel": 11, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 423, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 28, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 5200, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 13, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 920, - "AbilityHealthIncrease": 350, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 59, - "StrengthWeight2": 37, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 10, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 8 - }, - "48": { - "VisualLevel": 48, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 1540, - "UpgradeTimeH": 120, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 98000, - "RequiredTownHallLevel": 11, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 434, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 28, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 5200, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 13, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 920, - "AbilityHealthIncrease": 350, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 59, - "StrengthWeight2": 37, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 10, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 8 - }, - "49": { - "VisualLevel": 49, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 1572, - "UpgradeTimeH": 120, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 103000, - "RequiredTownHallLevel": 11, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 445, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 28, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 5200, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 13, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 920, - "AbilityHealthIncrease": 350, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 59, - "StrengthWeight2": 37, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 10, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 8 - }, - "50": { - "VisualLevel": 50, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 1606, - "UpgradeTimeH": 132, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 108000, - "RequiredTownHallLevel": 11, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 456, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 30, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 5400, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 14, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1020, - "AbilityHealthIncrease": 375, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 60, - "StrengthWeight2": 38, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 11, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 8 - }, - "51": { - "VisualLevel": 51, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 1646, - "UpgradeTimeH": 132, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 113000, - "RequiredTownHallLevel": 12, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 465, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 30, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 5400, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 14, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1020, - "AbilityHealthIncrease": 375, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 60, - "StrengthWeight2": 38, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 11, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 9 - }, - "52": { - "VisualLevel": 52, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 1688, - "UpgradeTimeH": 132, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 118000, - "RequiredTownHallLevel": 12, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 474, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 30, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 5400, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 14, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1020, - "AbilityHealthIncrease": 375, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 60, - "StrengthWeight2": 38, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 11, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 9 - }, - "53": { - "VisualLevel": 53, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 1730, - "UpgradeTimeH": 132, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 123000, - "RequiredTownHallLevel": 12, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 485, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 30, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 5400, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 14, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1020, - "AbilityHealthIncrease": 375, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 60, - "StrengthWeight2": 38, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 11, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 9 - }, - "54": { - "VisualLevel": 54, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 1774, - "UpgradeTimeH": 132, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 128000, - "RequiredTownHallLevel": 12, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 495, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 30, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 5400, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 14, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1020, - "AbilityHealthIncrease": 375, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 60, - "StrengthWeight2": 38, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 11, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 9 - }, - "55": { - "VisualLevel": 55, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 1819, - "UpgradeTimeH": 138, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 133000, - "RequiredTownHallLevel": 12, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 505, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 32, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 5600, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 15, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1120, - "AbilityHealthIncrease": 400, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 62, - "StrengthWeight2": 39, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 12, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 9 - }, - "56": { - "VisualLevel": 56, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 1865, - "UpgradeTimeH": 138, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 138000, - "RequiredTownHallLevel": 12, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 515, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 32, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 5600, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 15, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1120, - "AbilityHealthIncrease": 400, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 62, - "StrengthWeight2": 39, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 12, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 10 - }, - "57": { - "VisualLevel": 57, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 1912, - "UpgradeTimeH": 138, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 143000, - "RequiredTownHallLevel": 12, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 526, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 32, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 5600, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 15, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1120, - "AbilityHealthIncrease": 400, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 62, - "StrengthWeight2": 39, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 12, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 10 - }, - "58": { - "VisualLevel": 58, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 1960, - "UpgradeTimeH": 138, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 148000, - "RequiredTownHallLevel": 12, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 537, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 32, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 5600, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 15, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1120, - "AbilityHealthIncrease": 400, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 62, - "StrengthWeight2": 39, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 12, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 10 - }, - "59": { - "VisualLevel": 59, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 2010, - "UpgradeTimeH": 138, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 153000, - "RequiredTownHallLevel": 12, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 548, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 32, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 5600, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 15, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1120, - "AbilityHealthIncrease": 400, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 62, - "StrengthWeight2": 39, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 12, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 10 - }, - "60": { - "VisualLevel": 60, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 2060, - "UpgradeTimeH": 144, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 158000, - "RequiredTownHallLevel": 12, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 559, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 34, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 5800, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 16, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1220, - "AbilityHealthIncrease": 425, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 64, - "StrengthWeight2": 40, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 13, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 10 - }, - "61": { - "VisualLevel": 61, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 2111, - "UpgradeTimeH": 144, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 163000, - "RequiredTownHallLevel": 12, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 570, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 34, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 5800, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 16, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1220, - "AbilityHealthIncrease": 425, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 64, - "StrengthWeight2": 40, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 13, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 11 - }, - "62": { - "VisualLevel": 62, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 2164, - "UpgradeTimeH": 144, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 168000, - "RequiredTownHallLevel": 12, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 581, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 34, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 5800, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 16, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1220, - "AbilityHealthIncrease": 425, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 64, - "StrengthWeight2": 40, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 13, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 11 - }, - "63": { - "VisualLevel": 63, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 2218, - "UpgradeTimeH": 144, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 173000, - "RequiredTownHallLevel": 12, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 593, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 34, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 5800, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 16, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1220, - "AbilityHealthIncrease": 425, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 64, - "StrengthWeight2": 40, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 13, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 11 - }, - "64": { - "VisualLevel": 64, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 2274, - "UpgradeTimeH": 144, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 178000, - "RequiredTownHallLevel": 12, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 605, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 34, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 5800, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 16, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1220, - "AbilityHealthIncrease": 425, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 64, - "StrengthWeight2": 40, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 13, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 11 - }, - "65": { - "VisualLevel": 65, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 2330, - "UpgradeTimeH": 156, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 183000, - "RequiredTownHallLevel": 12, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 617, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 36, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 6000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 17, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1300, - "AbilityHealthIncrease": 450, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 66, - "StrengthWeight2": 41, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 14, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 11 - }, - "66": { - "VisualLevel": 66, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 2384, - "UpgradeTimeH": 156, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 188000, - "RequiredTownHallLevel": 13, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 628, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 36, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 6000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 17, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1300, - "AbilityHealthIncrease": 450, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 66, - "StrengthWeight2": 41, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 14, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 12 - }, - "67": { - "VisualLevel": 67, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 2432, - "UpgradeTimeH": 156, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 193000, - "RequiredTownHallLevel": 13, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 638, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 36, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 6000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 17, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1300, - "AbilityHealthIncrease": 450, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 66, - "StrengthWeight2": 41, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 14, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 12 - }, - "68": { - "VisualLevel": 68, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 2476, - "UpgradeTimeH": 156, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 198000, - "RequiredTownHallLevel": 13, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 648, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 36, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 6000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 17, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1300, - "AbilityHealthIncrease": 450, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 66, - "StrengthWeight2": 41, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 14, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 12 - }, - "69": { - "VisualLevel": 69, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 2516, - "UpgradeTimeH": 156, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 203000, - "RequiredTownHallLevel": 13, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 656, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 36, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 6000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 17, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1300, - "AbilityHealthIncrease": 450, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 66, - "StrengthWeight2": 41, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 14, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 12 - }, - "70": { - "VisualLevel": 70, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 2552, - "UpgradeTimeH": 168, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 208000, - "RequiredTownHallLevel": 13, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 664, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 38, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 6200, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 18, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1370, - "AbilityHealthIncrease": 475, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 68, - "StrengthWeight2": 42, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 15, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 12 - }, - "71": { - "VisualLevel": 71, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 2584, - "UpgradeTimeH": 168, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 214000, - "RequiredTownHallLevel": 13, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 671, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 38, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 6200, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 18, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1370, - "AbilityHealthIncrease": 475, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 68, - "StrengthWeight2": 42, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 15, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 13 - }, - "72": { - "VisualLevel": 72, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 2616, - "UpgradeTimeH": 168, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 221000, - "RequiredTownHallLevel": 13, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 677, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 38, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 6200, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 18, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1370, - "AbilityHealthIncrease": 475, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 68, - "StrengthWeight2": 42, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 15, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 13 - }, - "73": { - "VisualLevel": 73, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 2648, - "UpgradeTimeH": 168, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 229000, - "RequiredTownHallLevel": 13, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 682, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 38, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 6200, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 18, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1370, - "AbilityHealthIncrease": 475, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 68, - "StrengthWeight2": 42, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 15, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 13 - }, - "74": { - "VisualLevel": 74, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 2680, - "UpgradeTimeH": 168, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 234000, - "RequiredTownHallLevel": 13, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 687, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 38, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 6200, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 18, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1370, - "AbilityHealthIncrease": 475, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 68, - "StrengthWeight2": 42, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 15, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 13 - }, - "75": { - "VisualLevel": 75, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 2712, - "UpgradeTimeH": 180, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 239000, - "RequiredTownHallLevel": 13, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 692, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 40, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 6400, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 19, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1430, - "AbilityHealthIncrease": 500, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 70, - "StrengthWeight2": 43, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 16, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 13 - }, - "76": { - "VisualLevel": 76, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 2740, - "UpgradeTimeH": 180, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 244000, - "RequiredTownHallLevel": 14, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 697, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 40, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 6400, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 19, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1430, - "AbilityHealthIncrease": 500, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 70, - "StrengthWeight2": 43, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 16, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 14 - }, - "77": { - "VisualLevel": 77, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 2768, - "UpgradeTimeH": 180, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 249000, - "RequiredTownHallLevel": 14, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 701, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 40, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 6400, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 19, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1430, - "AbilityHealthIncrease": 500, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 70, - "StrengthWeight2": 43, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 16, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 14 - }, - "78": { - "VisualLevel": 78, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 2796, - "UpgradeTimeH": 180, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 254000, - "RequiredTownHallLevel": 14, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 706, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 40, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 6400, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 19, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1430, - "AbilityHealthIncrease": 500, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 70, - "StrengthWeight2": 43, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 16, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 14 - }, - "79": { - "VisualLevel": 79, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 2824, - "UpgradeTimeH": 180, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 259000, - "RequiredTownHallLevel": 14, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 710, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 40, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 6400, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 19, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1430, - "AbilityHealthIncrease": 500, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 70, - "StrengthWeight2": 43, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 16, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 14 - }, - "80": { - "VisualLevel": 80, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 2852, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 264000, - "RequiredTownHallLevel": 14, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 714, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 42, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 6600, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 20, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1480, - "AbilityHealthIncrease": 525, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 72, - "StrengthWeight2": 44, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 17, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 14 - }, - "81": { - "VisualLevel": 81, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 2880, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 268000, - "RequiredTownHallLevel": 15, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 717, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 42, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 6600, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 20, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1480, - "AbilityHealthIncrease": 525, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 72, - "StrengthWeight2": 44, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 17, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 15 - }, - "82": { - "VisualLevel": 82, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 2904, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 272000, - "RequiredTownHallLevel": 15, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 721, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 42, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 6600, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 20, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1480, - "AbilityHealthIncrease": 525, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 72, - "StrengthWeight2": 44, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 17, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 15 - }, - "83": { - "VisualLevel": 83, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 2928, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 276000, - "RequiredTownHallLevel": 15, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 724, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 42, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 6600, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 20, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1480, - "AbilityHealthIncrease": 525, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 72, - "StrengthWeight2": 44, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 17, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 15 - }, - "84": { - "VisualLevel": 84, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 2952, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 280000, - "RequiredTownHallLevel": 15, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 728, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 42, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 6600, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 20, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1480, - "AbilityHealthIncrease": 525, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 72, - "StrengthWeight2": 44, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 17, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 15 - }, - "85": { - "VisualLevel": 85, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 2976, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 282000, - "RequiredTownHallLevel": 15, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 731, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 44, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 6800, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 21, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1520, - "AbilityHealthIncrease": 550, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 74, - "StrengthWeight2": 45, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 18, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 15 - }, - "86": { - "VisualLevel": 86, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 3000, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 284000, - "RequiredTownHallLevel": 15, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 734, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 44, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 6800, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 21, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1520, - "AbilityHealthIncrease": 550, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 74, - "StrengthWeight2": 45, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 18, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 15 - }, - "87": { - "VisualLevel": 87, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 3024, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 286000, - "RequiredTownHallLevel": 15, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 738, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 44, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 6800, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 21, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1520, - "AbilityHealthIncrease": 550, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 74, - "StrengthWeight2": 45, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 18, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 15 - }, - "88": { - "VisualLevel": 88, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 3048, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 288000, - "RequiredTownHallLevel": 15, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 741, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 44, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 6800, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 21, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1520, - "AbilityHealthIncrease": 550, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 74, - "StrengthWeight2": 45, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 18, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 15 - }, - "89": { - "VisualLevel": 89, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 3072, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 290000, - "RequiredTownHallLevel": 15, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 745, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 44, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 6800, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 21, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1520, - "AbilityHealthIncrease": 550, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 74, - "StrengthWeight2": 45, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 18, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 15 - }, - "90": { - "VisualLevel": 90, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 3096, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 300000, - "RequiredTownHallLevel": 15, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 748, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 46, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 7000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 22, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1560, - "AbilityHealthIncrease": 575, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 76, - "StrengthWeight2": 46, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 19, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 15 - }, - "91": { - "VisualLevel": 91, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 3120, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 310000, - "RequiredTownHallLevel": 16, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 751, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 46, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 7000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 22, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1560, - "AbilityHealthIncrease": 575, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 76, - "StrengthWeight2": 46, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 19, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 15 - }, - "92": { - "VisualLevel": 92, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 3144, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 320000, - "RequiredTownHallLevel": 16, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 755, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 46, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 7000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 22, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1560, - "AbilityHealthIncrease": 575, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 76, - "StrengthWeight2": 46, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 19, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 15 - }, - "93": { - "VisualLevel": 93, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 3168, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 330000, - "RequiredTownHallLevel": 16, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 758, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 46, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 7000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 22, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1560, - "AbilityHealthIncrease": 575, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 76, - "StrengthWeight2": 46, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 19, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 15 - }, - "94": { - "VisualLevel": 94, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 3192, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 340000, - "RequiredTownHallLevel": 16, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 762, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 46, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 7000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 22, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1560, - "AbilityHealthIncrease": 575, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 76, - "StrengthWeight2": 46, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 19, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 15 - }, - "95": { - "VisualLevel": 95, - "TID": "TID_ARCHER_QUEEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", - "Speed": 300, - "Hitpoints": 3216, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 340000, - "RequiredTownHallLevel": 16, - "AttackRange": 500, - "AttackSpeed": 750, - "DPS": 765, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_archerQueen", - "BigPicture": "unit_archerQueen_big", - "BigPictureSWF": "sc/info_archer.sc", - "SmallPicture": "unit_archerQueen_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "ArcherQueen arrow lvl3", - "RageProjectile": "ArcherQueen arrow rage2", - "DeployEffect": "Hero Deploy", - "HitEffect": "Archer Queen Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 1000, - "HousingSpace": 25, - "HealerWeight": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 48, - "TrainingResource": "Elixir", - "CelebrateEffect": "Archer Queen Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityRadius": 2500, - "AbilityTime": 7200, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroop": "Archer", - "AbilitySummonTroopCount": 23, - "AbilityStealth": true, - "AbilityDamageBoostOffset": 1600, - "AbilityHealthIncrease": 600, - "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", - "AbilityIcon": "icon_hero_archerQueen_ability1", - "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", - "AbilityDelay": 0, - "StrengthWeight": 78, - "StrengthWeight2": 47, - "AlertRadius": 1300, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "ArcherQueenDefault", - "UseAutoHeroAbility": true, - "Gender": "F", - "SpecialAbilities": "ArcherQueenAbilityHeal", - "SpecialAbilitiesLevel": 20, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroQueenLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Archer Crown; Royal Cloak;", - "MigrationGearLevel": 15 - } - }, - "Grand Warden": { - "1": { - "VisualLevel": 1, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 850, - "UpgradeTimeH": 2, - "UpgradeResource": "Elixir", - "UpgradeCost": 1000000, - "RequiredTownHallLevel": 11, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 43, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 20, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 140, - "StrengthWeight2": 70, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 1, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWarden", - "AltPreviewScenario": "HeroGrandWardenAir", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 1 - }, - "2": { - "VisualLevel": 2, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 868, - "UpgradeTimeH": 4, - "UpgradeResource": "Elixir", - "UpgradeCost": 1100000, - "RequiredTownHallLevel": 11, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 44, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 20, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 140, - "StrengthWeight2": 70, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 1, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWarden", - "AltPreviewScenario": "HeroGrandWardenAir", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 1 - }, - "3": { - "VisualLevel": 3, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 886, - "UpgradeTimeH": 8, - "UpgradeResource": "Elixir", - "UpgradeCost": 1200000, - "RequiredTownHallLevel": 11, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 46, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 20, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 140, - "StrengthWeight2": 70, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 1, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWarden", - "AltPreviewScenario": "HeroGrandWardenAir", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 1 - }, - "4": { - "VisualLevel": 4, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 904, - "UpgradeTimeH": 12, - "UpgradeResource": "Elixir", - "UpgradeCost": 1400000, - "RequiredTownHallLevel": 11, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 48, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 20, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 140, - "StrengthWeight2": 70, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 1, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWarden", - "AltPreviewScenario": "HeroGrandWardenAir", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 2 - }, - "5": { - "VisualLevel": 5, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 923, - "UpgradeTimeH": 16, - "UpgradeResource": "Elixir", - "UpgradeCost": 1500000, - "RequiredTownHallLevel": 11, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 49, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 22, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 145, - "StrengthWeight2": 71, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 2, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 2 - }, - "6": { - "VisualLevel": 6, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 942, - "UpgradeTimeH": 22, - "UpgradeResource": "Elixir", - "UpgradeCost": 1700000, - "RequiredTownHallLevel": 11, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 51, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 22, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 145, - "StrengthWeight2": 71, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 2, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 3 - }, - "7": { - "VisualLevel": 7, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 961, - "UpgradeTimeH": 24, - "UpgradeResource": "Elixir", - "UpgradeCost": 1800000, - "RequiredTownHallLevel": 11, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 54, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 22, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 145, - "StrengthWeight2": 71, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 2, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 3 - }, - "8": { - "VisualLevel": 8, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 982, - "UpgradeTimeH": 24, - "UpgradeResource": "Elixir", - "UpgradeCost": 2000000, - "RequiredTownHallLevel": 11, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 56, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 22, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 145, - "StrengthWeight2": 71, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 2, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 4 - }, - "9": { - "VisualLevel": 9, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1003, - "UpgradeTimeH": 36, - "UpgradeResource": "Elixir", - "UpgradeCost": 2300000, - "RequiredTownHallLevel": 11, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 59, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 22, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 145, - "StrengthWeight2": 71, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 2, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 4 - }, - "10": { - "VisualLevel": 10, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1025, - "UpgradeTimeH": 36, - "UpgradeResource": "Elixir", - "UpgradeCost": 2700000, - "RequiredTownHallLevel": 11, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 61, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 24, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 150, - "StrengthWeight2": 72, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 3, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 5 - }, - "11": { - "VisualLevel": 11, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1048, - "UpgradeTimeH": 48, - "UpgradeResource": "Elixir", - "UpgradeCost": 3000000, - "RequiredTownHallLevel": 11, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 64, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 24, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 150, - "StrengthWeight2": 72, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 3, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 5 - }, - "12": { - "VisualLevel": 12, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1072, - "UpgradeTimeH": 48, - "UpgradeResource": "Elixir", - "UpgradeCost": 3400000, - "RequiredTownHallLevel": 11, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 66, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 24, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 150, - "StrengthWeight2": 72, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 3, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 6 - }, - "13": { - "VisualLevel": 13, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1097, - "UpgradeTimeH": 48, - "UpgradeResource": "Elixir", - "UpgradeCost": 3700000, - "RequiredTownHallLevel": 11, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 70, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 24, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 150, - "StrengthWeight2": 72, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 3, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 6 - }, - "14": { - "VisualLevel": 14, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1122, - "UpgradeTimeH": 48, - "UpgradeResource": "Elixir", - "UpgradeCost": 4100000, - "RequiredTownHallLevel": 11, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 73, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 24, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 150, - "StrengthWeight2": 72, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 3, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 7 - }, - "15": { - "VisualLevel": 15, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1148, - "UpgradeTimeH": 66, - "UpgradeResource": "Elixir", - "UpgradeCost": 4400000, - "RequiredTownHallLevel": 11, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 77, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 26, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 155, - "StrengthWeight2": 73, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 4, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 7 - }, - "16": { - "VisualLevel": 16, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1173, - "UpgradeTimeH": 66, - "UpgradeResource": "Elixir", - "UpgradeCost": 4800000, - "RequiredTownHallLevel": 11, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 80, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 26, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 155, - "StrengthWeight2": 73, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 4, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 8 - }, - "17": { - "VisualLevel": 17, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1199, - "UpgradeTimeH": 66, - "UpgradeResource": "Elixir", - "UpgradeCost": 5100000, - "RequiredTownHallLevel": 11, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 83, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 26, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 155, - "StrengthWeight2": 73, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 4, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 8 - }, - "18": { - "VisualLevel": 18, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1224, - "UpgradeTimeH": 66, - "UpgradeResource": "Elixir", - "UpgradeCost": 5500000, - "RequiredTownHallLevel": 11, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 87, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 26, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 155, - "StrengthWeight2": 73, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 4, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 8 - }, - "19": { - "VisualLevel": 19, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1250, - "UpgradeTimeH": 66, - "UpgradeResource": "Elixir", - "UpgradeCost": 6000000, - "RequiredTownHallLevel": 11, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 90, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 26, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 155, - "StrengthWeight2": 73, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 4, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 8 - }, - "20": { - "VisualLevel": 20, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1275, - "UpgradeTimeH": 72, - "UpgradeResource": "Elixir", - "UpgradeCost": 6500000, - "RequiredTownHallLevel": 11, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 94, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 28, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 160, - "StrengthWeight2": 74, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 5, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 8 - }, - "21": { - "VisualLevel": 21, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1301, - "UpgradeTimeH": 72, - "UpgradeResource": "Elixir", - "UpgradeCost": 6600000, - "RequiredTownHallLevel": 12, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 98, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 28, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 160, - "StrengthWeight2": 74, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 5, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 9 - }, - "22": { - "VisualLevel": 22, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1327, - "UpgradeTimeH": 72, - "UpgradeResource": "Elixir", - "UpgradeCost": 6700000, - "RequiredTownHallLevel": 12, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 102, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 28, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 160, - "StrengthWeight2": 74, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 5, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 9 - }, - "23": { - "VisualLevel": 23, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1354, - "UpgradeTimeH": 72, - "UpgradeResource": "Elixir", - "UpgradeCost": 6800000, - "RequiredTownHallLevel": 12, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 106, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 28, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 160, - "StrengthWeight2": 74, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 5, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 9 - }, - "24": { - "VisualLevel": 24, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1381, - "UpgradeTimeH": 72, - "UpgradeResource": "Elixir", - "UpgradeCost": 6900000, - "RequiredTownHallLevel": 12, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 111, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 28, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 160, - "StrengthWeight2": 74, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 5, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 9 - }, - "25": { - "VisualLevel": 25, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1409, - "UpgradeTimeH": 96, - "UpgradeResource": "Elixir", - "UpgradeCost": 7000000, - "RequiredTownHallLevel": 12, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 116, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 30, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 165, - "StrengthWeight2": 75, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 6, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 9 - }, - "26": { - "VisualLevel": 26, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1438, - "UpgradeTimeH": 96, - "UpgradeResource": "Elixir", - "UpgradeCost": 7100000, - "RequiredTownHallLevel": 12, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 121, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 30, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 165, - "StrengthWeight2": 75, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 6, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 9 - }, - "27": { - "VisualLevel": 27, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1467, - "UpgradeTimeH": 96, - "UpgradeResource": "Elixir", - "UpgradeCost": 7200000, - "RequiredTownHallLevel": 12, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 126, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 30, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 165, - "StrengthWeight2": 75, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 6, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 9 - }, - "28": { - "VisualLevel": 28, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1497, - "UpgradeTimeH": 96, - "UpgradeResource": "Elixir", - "UpgradeCost": 7300000, - "RequiredTownHallLevel": 12, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 131, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 30, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 165, - "StrengthWeight2": 75, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 6, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 9 - }, - "29": { - "VisualLevel": 29, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1527, - "UpgradeTimeH": 96, - "UpgradeResource": "Elixir", - "UpgradeCost": 7400000, - "RequiredTownHallLevel": 12, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 137, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 30, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 165, - "StrengthWeight2": 75, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 6, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 9 - }, - "30": { - "VisualLevel": 30, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1558, - "UpgradeTimeH": 120, - "UpgradeResource": "Elixir", - "UpgradeCost": 7500000, - "RequiredTownHallLevel": 12, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 143, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 32, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 170, - "StrengthWeight2": 76, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 7, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 9 - }, - "31": { - "VisualLevel": 31, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1590, - "UpgradeTimeH": 120, - "UpgradeResource": "Elixir", - "UpgradeCost": 7600000, - "RequiredTownHallLevel": 12, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 149, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 32, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 170, - "StrengthWeight2": 76, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 7, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 10 - }, - "32": { - "VisualLevel": 32, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1622, - "UpgradeTimeH": 120, - "UpgradeResource": "Elixir", - "UpgradeCost": 7700000, - "RequiredTownHallLevel": 12, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 155, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 32, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 170, - "StrengthWeight2": 76, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 7, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 10 - }, - "33": { - "VisualLevel": 33, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1655, - "UpgradeTimeH": 120, - "UpgradeResource": "Elixir", - "UpgradeCost": 7800000, - "RequiredTownHallLevel": 12, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 162, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 32, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 170, - "StrengthWeight2": 76, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 7, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 10 - }, - "34": { - "VisualLevel": 34, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1688, - "UpgradeTimeH": 120, - "UpgradeResource": "Elixir", - "UpgradeCost": 7900000, - "RequiredTownHallLevel": 12, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 168, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 32, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 170, - "StrengthWeight2": 76, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 7, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 10 - }, - "35": { - "VisualLevel": 35, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1722, - "UpgradeTimeH": 144, - "UpgradeResource": "Elixir", - "UpgradeCost": 8000000, - "RequiredTownHallLevel": 12, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 175, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 34, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 175, - "StrengthWeight2": 77, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 8, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 10 - }, - "36": { - "VisualLevel": 36, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1757, - "UpgradeTimeH": 144, - "UpgradeResource": "Elixir", - "UpgradeCost": 8100000, - "RequiredTownHallLevel": 12, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 183, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 34, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 175, - "StrengthWeight2": 77, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 8, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 11 - }, - "37": { - "VisualLevel": 37, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1793, - "UpgradeTimeH": 144, - "UpgradeResource": "Elixir", - "UpgradeCost": 8200000, - "RequiredTownHallLevel": 12, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 190, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 34, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 175, - "StrengthWeight2": 77, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 8, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 11 - }, - "38": { - "VisualLevel": 38, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1829, - "UpgradeTimeH": 144, - "UpgradeResource": "Elixir", - "UpgradeCost": 8300000, - "RequiredTownHallLevel": 12, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 198, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 34, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 175, - "StrengthWeight2": 77, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 8, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 11 - }, - "39": { - "VisualLevel": 39, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1867, - "UpgradeTimeH": 144, - "UpgradeResource": "Elixir", - "UpgradeCost": 8400000, - "RequiredTownHallLevel": 12, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 207, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 34, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 175, - "StrengthWeight2": 77, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 8, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 11 - }, - "40": { - "VisualLevel": 40, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1904, - "UpgradeTimeH": 150, - "UpgradeResource": "Elixir", - "UpgradeCost": 8500000, - "RequiredTownHallLevel": 12, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 215, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 36, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 180, - "StrengthWeight2": 78, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 9, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 11 - }, - "41": { - "VisualLevel": 41, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1921, - "UpgradeTimeH": 150, - "UpgradeResource": "Elixir", - "UpgradeCost": 8800000, - "RequiredTownHallLevel": 13, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 221, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 36, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 180, - "StrengthWeight2": 78, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 9, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 12 - }, - "42": { - "VisualLevel": 42, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1938, - "UpgradeTimeH": 150, - "UpgradeResource": "Elixir", - "UpgradeCost": 9100000, - "RequiredTownHallLevel": 13, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 226, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 36, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 180, - "StrengthWeight2": 78, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 9, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 12 - }, - "43": { - "VisualLevel": 43, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1955, - "UpgradeTimeH": 150, - "UpgradeResource": "Elixir", - "UpgradeCost": 9400000, - "RequiredTownHallLevel": 13, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 230, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 36, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 180, - "StrengthWeight2": 78, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 9, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 12 - }, - "44": { - "VisualLevel": 44, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1972, - "UpgradeTimeH": 150, - "UpgradeResource": "Elixir", - "UpgradeCost": 9700000, - "RequiredTownHallLevel": 13, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 234, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 36, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 180, - "StrengthWeight2": 78, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 9, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 12 - }, - "45": { - "VisualLevel": 45, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 1989, - "UpgradeTimeH": 162, - "UpgradeResource": "Elixir", - "UpgradeCost": 10000000, - "RequiredTownHallLevel": 13, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 237, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 38, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 185, - "StrengthWeight2": 79, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 10, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 12 - }, - "46": { - "VisualLevel": 46, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 2006, - "UpgradeTimeH": 162, - "UpgradeResource": "Elixir", - "UpgradeCost": 10300000, - "RequiredTownHallLevel": 13, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 241, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 38, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 185, - "StrengthWeight2": 79, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 10, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 13 - }, - "47": { - "VisualLevel": 47, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 2023, - "UpgradeTimeH": 162, - "UpgradeResource": "Elixir", - "UpgradeCost": 10600000, - "RequiredTownHallLevel": 13, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 244, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 38, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 185, - "StrengthWeight2": 79, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 10, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 13 - }, - "48": { - "VisualLevel": 48, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 2040, - "UpgradeTimeH": 162, - "UpgradeResource": "Elixir", - "UpgradeCost": 11000000, - "RequiredTownHallLevel": 13, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 247, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 38, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 185, - "StrengthWeight2": 79, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 10, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 13 - }, - "49": { - "VisualLevel": 49, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 2057, - "UpgradeTimeH": 162, - "UpgradeResource": "Elixir", - "UpgradeCost": 11500000, - "RequiredTownHallLevel": 13, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 251, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 38, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 185, - "StrengthWeight2": 79, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 10, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 13 - }, - "50": { - "VisualLevel": 50, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 2074, - "UpgradeTimeH": 174, - "UpgradeResource": "Elixir", - "UpgradeCost": 12000000, - "RequiredTownHallLevel": 13, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 254, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 40, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 190, - "StrengthWeight2": 80, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 11, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 13 - }, - "51": { - "VisualLevel": 51, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 2091, - "UpgradeTimeH": 174, - "UpgradeResource": "Elixir", - "UpgradeCost": 12500000, - "RequiredTownHallLevel": 14, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 258, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 40, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 190, - "StrengthWeight2": 80, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 11, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 14 - }, - "52": { - "VisualLevel": 52, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 2108, - "UpgradeTimeH": 174, - "UpgradeResource": "Elixir", - "UpgradeCost": 13000000, - "RequiredTownHallLevel": 14, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 261, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 40, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 190, - "StrengthWeight2": 80, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 11, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 14 - }, - "53": { - "VisualLevel": 53, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 2125, - "UpgradeTimeH": 174, - "UpgradeResource": "Elixir", - "UpgradeCost": 13500000, - "RequiredTownHallLevel": 14, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 264, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 40, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 190, - "StrengthWeight2": 80, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 11, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 14 - }, - "54": { - "VisualLevel": 54, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 2142, - "UpgradeTimeH": 174, - "UpgradeResource": "Elixir", - "UpgradeCost": 14000000, - "RequiredTownHallLevel": 14, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 268, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 40, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 190, - "StrengthWeight2": 80, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 11, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 14 - }, - "55": { - "VisualLevel": 55, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 2159, - "UpgradeTimeH": 192, - "UpgradeResource": "Elixir", - "UpgradeCost": 14500000, - "RequiredTownHallLevel": 14, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 271, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 42, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 195, - "StrengthWeight2": 81, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 12, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 14 - }, - "56": { - "VisualLevel": 56, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 2176, - "UpgradeTimeH": 192, - "UpgradeResource": "Elixir", - "UpgradeCost": 15000000, - "RequiredTownHallLevel": 15, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 274, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 42, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 195, - "StrengthWeight2": 81, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 12, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 15 - }, - "57": { - "VisualLevel": 57, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 2193, - "UpgradeTimeH": 192, - "UpgradeResource": "Elixir", - "UpgradeCost": 15500000, - "RequiredTownHallLevel": 15, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 276, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 42, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 195, - "StrengthWeight2": 81, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 12, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 15 - }, - "58": { - "VisualLevel": 58, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 2210, - "UpgradeTimeH": 192, - "UpgradeResource": "Elixir", - "UpgradeCost": 16000000, - "RequiredTownHallLevel": 15, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 279, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 42, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 195, - "StrengthWeight2": 81, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 12, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 15 - }, - "59": { - "VisualLevel": 59, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 2227, - "UpgradeTimeH": 192, - "UpgradeResource": "Elixir", - "UpgradeCost": 16200000, - "RequiredTownHallLevel": 15, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 281, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 42, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 195, - "StrengthWeight2": 81, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 12, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 15 - }, - "60": { - "VisualLevel": 60, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 2244, - "UpgradeTimeH": 192, - "UpgradeResource": "Elixir", - "UpgradeCost": 16700000, - "RequiredTownHallLevel": 15, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 284, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 44, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 200, - "StrengthWeight2": 82, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 13, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 15 - }, - "61": { - "VisualLevel": 61, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 2261, - "UpgradeTimeH": 192, - "UpgradeResource": "Elixir", - "UpgradeCost": 16900000, - "RequiredTownHallLevel": 15, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 286, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 44, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 200, - "StrengthWeight2": 82, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 13, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 15 - }, - "62": { - "VisualLevel": 62, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 2278, - "UpgradeTimeH": 192, - "UpgradeResource": "Elixir", - "UpgradeCost": 17100000, - "RequiredTownHallLevel": 15, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 289, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 44, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 200, - "StrengthWeight2": 82, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 13, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 15 - }, - "63": { - "VisualLevel": 63, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 2295, - "UpgradeTimeH": 192, - "UpgradeResource": "Elixir", - "UpgradeCost": 17300000, - "RequiredTownHallLevel": 15, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 292, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 44, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 200, - "StrengthWeight2": 82, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 13, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 15 - }, - "64": { - "VisualLevel": 64, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 2312, - "UpgradeTimeH": 192, - "UpgradeResource": "Elixir", - "UpgradeCost": 17500000, - "RequiredTownHallLevel": 15, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 294, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 44, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 200, - "StrengthWeight2": 82, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 13, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 15 - }, - "65": { - "VisualLevel": 65, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 2329, - "UpgradeTimeH": 192, - "UpgradeResource": "Elixir", - "UpgradeCost": 18000000, - "RequiredTownHallLevel": 15, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 297, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 46, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 205, - "StrengthWeight2": 83, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 14, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 15 - }, - "66": { - "VisualLevel": 66, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 2346, - "UpgradeTimeH": 192, - "UpgradeResource": "Elixir", - "UpgradeCost": 18500000, - "RequiredTownHallLevel": 16, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 299, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 46, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 205, - "StrengthWeight2": 83, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 14, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 15 - }, - "67": { - "VisualLevel": 67, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 2363, - "UpgradeTimeH": 192, - "UpgradeResource": "Elixir", - "UpgradeCost": 19000000, - "RequiredTownHallLevel": 16, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 302, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 46, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 205, - "StrengthWeight2": 83, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 14, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 15 - }, - "68": { - "VisualLevel": 68, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 2380, - "UpgradeTimeH": 192, - "UpgradeResource": "Elixir", - "UpgradeCost": 19500000, - "RequiredTownHallLevel": 16, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 304, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 46, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 205, - "StrengthWeight2": 83, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 14, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 15 - }, - "69": { - "VisualLevel": 69, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 2397, - "UpgradeTimeH": 192, - "UpgradeResource": "Elixir", - "UpgradeCost": 20000000, - "RequiredTownHallLevel": 16, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 307, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 46, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 205, - "StrengthWeight2": 83, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 14, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 15 - }, - "70": { - "VisualLevel": 70, - "TID": "TID_GRAND_WARDEN", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", - "Speed": 200, - "Hitpoints": 2414, - "UpgradeTimeH": 192, - "UpgradeResource": "Elixir", - "UpgradeCost": 20000000, - "RequiredTownHallLevel": 16, - "AttackRange": 700, - "AltAttackRange": 650, - "AttackSpeed": 1800, - "CoolDownOverride": 1050, - "DPS": 309, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_grandwarden", - "BigPicture": "unit_elder_big", - "BigPictureSWF": "sc/info_ancientelder.sc", - "SmallPicture": "unit_grandwarden_small", - "SmallPictureSWF": "sc/ui.sc", - "DeployEffect": "Hero Deploy", - "HitEffect": "Grand Warden Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 15, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 47, - "TrainingResource": "Elixir", - "CelebrateEffect": "Grand Warden Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-50", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilitySummonTroopCount": 0, - "AbilityStealth": false, - "AbilityDamageBoostOffset": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", - "AbilityIcon": "icon_hero_grandwarden_ability1", - "AbilityBigPictureExportName": "unit_elder_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 210, - "StrengthWeight2": 84, - "AlertRadius": 1300, - "AuraSpell": "GrandWardenRangeRing", - "AuraSpellLevel": 0, - "HasAltMode": true, - "AltModeFlying": true, - "FightWithGroups": true, - "TargetGroupsRadius": 500, - "TargetGroupsRange": 1300, - "TargetGroupsMinWeight": 2000, - "SmoothJump": true, - "WakeUpSpeed": 792, - "WakeUpSpace": 1, - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 500, - "AttackEffectShared": "Grand Warden Statue Attack", - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "GrandWardenDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "GrandWardenAbilityHeal", - "SpecialAbilitiesLevel": 15, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroGrandWardenLVL5", - "AltPreviewScenario": "HeroGrandWardenLVL5Air", - "ItemSlotCount": 2, - "DefaultItems": "Eternal Tome; Life Gem;", - "MigrationGearLevel": 15 - } - }, - "Battle Machine": { - "1": { - "VisualLevel": 1, - "TID": "TID_WARMACHINE", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", - "Speed": 200, - "Hitpoints": 3000, - "UpgradeTimeH": 12, - "UpgradeResource": "Elixir2", - "UpgradeCost": 1000000, - "RequiredTownHallLevel": 5, - "AttackRange": 125, - "AttackSpeed": 1200, - "DPS": 125, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warmachine", - "BigPicture": "unit_warmachine_big", - "BigPictureSWF": "sc/info_warmachine.sc", - "SmallPicture": "unit_warmachine_small", - "SmallPictureSWF": "sc/ui.sc", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", - "AbilityIcon": "icon_hero_warmachine_ability1", - "AbilityBigPictureExportName": "unit_warmachine_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 38, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "WarmachineDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", - "SpecialAbilitiesLevel": "1;1;1", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "2": { - "VisualLevel": 2, - "TID": "TID_WARMACHINE", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", - "Speed": 200, - "Hitpoints": 3070, - "UpgradeTimeH": 12, - "UpgradeResource": "Elixir2", - "UpgradeCost": 1100000, - "RequiredTownHallLevel": 5, - "AttackRange": 125, - "AttackSpeed": 1200, - "DPS": 127, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warmachine", - "BigPicture": "unit_warmachine_big", - "BigPictureSWF": "sc/info_warmachine.sc", - "SmallPicture": "unit_warmachine_small", - "SmallPictureSWF": "sc/ui.sc", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", - "AbilityIcon": "icon_hero_warmachine_ability1", - "AbilityBigPictureExportName": "unit_warmachine_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 40, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "WarmachineDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", - "SpecialAbilitiesLevel": "1;1;1", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "3": { - "VisualLevel": 3, - "TID": "TID_WARMACHINE", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", - "Speed": 200, - "Hitpoints": 3140, - "UpgradeTimeH": 24, - "UpgradeResource": "Elixir2", - "UpgradeCost": 1200000, - "RequiredTownHallLevel": 5, - "AttackRange": 125, - "AttackSpeed": 1200, - "DPS": 130, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warmachine", - "BigPicture": "unit_warmachine_big", - "BigPictureSWF": "sc/info_warmachine.sc", - "SmallPicture": "unit_warmachine_small", - "SmallPictureSWF": "sc/ui.sc", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", - "AbilityIcon": "icon_hero_warmachine_ability1", - "AbilityBigPictureExportName": "unit_warmachine_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 41, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "WarmachineDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", - "SpecialAbilitiesLevel": "1;1;1", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "4": { - "VisualLevel": 4, - "TID": "TID_WARMACHINE", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", - "Speed": 200, - "Hitpoints": 3210, - "UpgradeTimeH": 24, - "UpgradeResource": "Elixir2", - "UpgradeCost": 1300000, - "RequiredTownHallLevel": 5, - "AttackRange": 125, - "AttackSpeed": 1200, - "DPS": 132, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warmachine", - "BigPicture": "unit_warmachine_big", - "BigPictureSWF": "sc/info_warmachine.sc", - "SmallPicture": "unit_warmachine_small", - "SmallPictureSWF": "sc/ui.sc", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", - "AbilityIcon": "icon_hero_warmachine_ability1", - "AbilityBigPictureExportName": "unit_warmachine_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 42, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "WarmachineDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", - "SpecialAbilitiesLevel": "1;1;1", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "5": { - "VisualLevel": 5, - "TID": "TID_WARMACHINE", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", - "Speed": 200, - "Hitpoints": 3280, - "UpgradeTimeH": 36, - "UpgradeResource": "Elixir2", - "UpgradeCost": 1500000, - "RequiredTownHallLevel": 5, - "AttackRange": 125, - "AttackSpeed": 1200, - "DPS": 135, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warmachine", - "BigPicture": "unit_warmachine_big", - "BigPictureSWF": "sc/info_warmachine.sc", - "SmallPicture": "unit_warmachine_small", - "SmallPictureSWF": "sc/ui.sc", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", - "AbilityIcon": "icon_hero_warmachine_ability1", - "AbilityBigPictureExportName": "unit_warmachine_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 47, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "WarmachineDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", - "SpecialAbilitiesLevel": "1;1;1", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "6": { - "VisualLevel": 6, - "TID": "TID_WARMACHINE", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", - "Speed": 200, - "Hitpoints": 3350, - "UpgradeTimeH": 36, - "UpgradeResource": "Elixir2", - "UpgradeCost": 1600000, - "RequiredTownHallLevel": 6, - "AttackRange": 125, - "AttackSpeed": 1200, - "DPS": 137, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warmachine", - "BigPicture": "unit_warmachine_big", - "BigPictureSWF": "sc/info_warmachine.sc", - "SmallPicture": "unit_warmachine_small", - "SmallPictureSWF": "sc/ui.sc", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", - "AbilityIcon": "icon_hero_warmachine_ability1", - "AbilityBigPictureExportName": "unit_warmachine_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 48, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "WarmachineDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", - "SpecialAbilitiesLevel": "2;2;2", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "7": { - "VisualLevel": 7, - "TID": "TID_WARMACHINE", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", - "Speed": 200, - "Hitpoints": 3420, - "UpgradeTimeH": 48, - "UpgradeResource": "Elixir2", - "UpgradeCost": 1700000, - "RequiredTownHallLevel": 6, - "AttackRange": 125, - "AttackSpeed": 1200, - "DPS": 140, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warmachine", - "BigPicture": "unit_warmachine_big", - "BigPictureSWF": "sc/info_warmachine.sc", - "SmallPicture": "unit_warmachine_small", - "SmallPictureSWF": "sc/ui.sc", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", - "AbilityIcon": "icon_hero_warmachine_ability1", - "AbilityBigPictureExportName": "unit_warmachine_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 50, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "WarmachineDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", - "SpecialAbilitiesLevel": "2;2;2", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "8": { - "VisualLevel": 8, - "TID": "TID_WARMACHINE", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", - "Speed": 200, - "Hitpoints": 3490, - "UpgradeTimeH": 48, - "UpgradeResource": "Elixir2", - "UpgradeCost": 1800000, - "RequiredTownHallLevel": 6, - "AttackRange": 125, - "AttackSpeed": 1200, - "DPS": 142, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warmachine", - "BigPicture": "unit_warmachine_big", - "BigPictureSWF": "sc/info_warmachine.sc", - "SmallPicture": "unit_warmachine_small", - "SmallPictureSWF": "sc/ui.sc", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", - "AbilityIcon": "icon_hero_warmachine_ability1", - "AbilityBigPictureExportName": "unit_warmachine_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 51, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "WarmachineDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", - "SpecialAbilitiesLevel": "2;2;2", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "9": { - "VisualLevel": 9, - "TID": "TID_WARMACHINE", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", - "Speed": 200, - "Hitpoints": 3560, - "UpgradeTimeH": 60, - "UpgradeResource": "Elixir2", - "UpgradeCost": 1900000, - "RequiredTownHallLevel": 6, - "AttackRange": 125, - "AttackSpeed": 1200, - "DPS": 145, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warmachine", - "BigPicture": "unit_warmachine_big", - "BigPictureSWF": "sc/info_warmachine.sc", - "SmallPicture": "unit_warmachine_small", - "SmallPictureSWF": "sc/ui.sc", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", - "AbilityIcon": "icon_hero_warmachine_ability1", - "AbilityBigPictureExportName": "unit_warmachine_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 53, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "WarmachineDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", - "SpecialAbilitiesLevel": "2;2;2", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "10": { - "VisualLevel": 10, - "TID": "TID_WARMACHINE", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", - "Speed": 200, - "Hitpoints": 3630, - "UpgradeTimeH": 60, - "UpgradeResource": "Elixir2", - "UpgradeCost": 2100000, - "RequiredTownHallLevel": 6, - "AttackRange": 125, - "AttackSpeed": 1200, - "DPS": 147, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warmachine", - "BigPicture": "unit_warmachine_big", - "BigPictureSWF": "sc/info_warmachine.sc", - "SmallPicture": "unit_warmachine_small", - "SmallPictureSWF": "sc/ui.sc", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", - "AbilityIcon": "icon_hero_warmachine_ability1", - "AbilityBigPictureExportName": "unit_warmachine_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 59, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "WarmachineDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", - "SpecialAbilitiesLevel": "2;2;2", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "11": { - "VisualLevel": 11, - "TID": "TID_WARMACHINE", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", - "Speed": 200, - "Hitpoints": 3700, - "UpgradeTimeH": 72, - "UpgradeResource": "Elixir2", - "UpgradeCost": 2200000, - "RequiredTownHallLevel": 7, - "AttackRange": 125, - "AttackSpeed": 1200, - "DPS": 150, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warmachine", - "BigPicture": "unit_warmachine_big", - "BigPictureSWF": "sc/info_warmachine.sc", - "SmallPicture": "unit_warmachine_small", - "SmallPictureSWF": "sc/ui.sc", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", - "AbilityIcon": "icon_hero_warmachine_ability1", - "AbilityBigPictureExportName": "unit_warmachine_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 61, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "WarmachineDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", - "SpecialAbilitiesLevel": "3;3;3", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "12": { - "VisualLevel": 12, - "TID": "TID_WARMACHINE", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", - "Speed": 200, - "Hitpoints": 3770, - "UpgradeTimeH": 72, - "UpgradeResource": "Elixir2", - "UpgradeCost": 2300000, - "RequiredTownHallLevel": 7, - "AttackRange": 125, - "AttackSpeed": 1200, - "DPS": 154, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warmachine", - "BigPicture": "unit_warmachine_big", - "BigPictureSWF": "sc/info_warmachine.sc", - "SmallPicture": "unit_warmachine_small", - "SmallPictureSWF": "sc/ui.sc", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", - "AbilityIcon": "icon_hero_warmachine_ability1", - "AbilityBigPictureExportName": "unit_warmachine_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 62, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "WarmachineDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", - "SpecialAbilitiesLevel": "3;3;3", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "13": { - "VisualLevel": 13, - "TID": "TID_WARMACHINE", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", - "Speed": 200, - "Hitpoints": 3840, - "UpgradeTimeH": 84, - "UpgradeResource": "Elixir2", - "UpgradeCost": 2400000, - "RequiredTownHallLevel": 7, - "AttackRange": 125, - "AttackSpeed": 1200, - "DPS": 157, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warmachine", - "BigPicture": "unit_warmachine_big", - "BigPictureSWF": "sc/info_warmachine.sc", - "SmallPicture": "unit_warmachine_small", - "SmallPictureSWF": "sc/ui.sc", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", - "AbilityIcon": "icon_hero_warmachine_ability1", - "AbilityBigPictureExportName": "unit_warmachine_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 64, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "WarmachineDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", - "SpecialAbilitiesLevel": "3;3;3", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "14": { - "VisualLevel": 14, - "TID": "TID_WARMACHINE", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", - "Speed": 200, - "Hitpoints": 3910, - "UpgradeTimeH": 84, - "UpgradeResource": "Elixir2", - "UpgradeCost": 2500000, - "RequiredTownHallLevel": 7, - "AttackRange": 125, - "AttackSpeed": 1200, - "DPS": 160, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warmachine", - "BigPicture": "unit_warmachine_big", - "BigPictureSWF": "sc/info_warmachine.sc", - "SmallPicture": "unit_warmachine_small", - "SmallPictureSWF": "sc/ui.sc", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", - "AbilityIcon": "icon_hero_warmachine_ability1", - "AbilityBigPictureExportName": "unit_warmachine_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 66, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "WarmachineDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", - "SpecialAbilitiesLevel": "3;3;3", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "15": { - "VisualLevel": 15, - "TID": "TID_WARMACHINE", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", - "Speed": 200, - "Hitpoints": 3980, - "UpgradeTimeH": 96, - "UpgradeResource": "Elixir2", - "UpgradeCost": 2600000, - "RequiredTownHallLevel": 7, - "AttackRange": 125, - "AttackSpeed": 1200, - "DPS": 164, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warmachine", - "BigPicture": "unit_warmachine_big", - "BigPictureSWF": "sc/info_warmachine.sc", - "SmallPicture": "unit_warmachine_small", - "SmallPictureSWF": "sc/ui.sc", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", - "AbilityIcon": "icon_hero_warmachine_ability1", - "AbilityBigPictureExportName": "unit_warmachine_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 73, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "WarmachineDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", - "SpecialAbilitiesLevel": "3;3;3", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "16": { - "VisualLevel": 16, - "TID": "TID_WARMACHINE", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", - "Speed": 200, - "Hitpoints": 4050, - "UpgradeTimeH": 96, - "UpgradeResource": "Elixir2", - "UpgradeCost": 2700000, - "RequiredTownHallLevel": 7, - "AttackRange": 125, - "AttackSpeed": 1200, - "DPS": 167, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warmachine", - "BigPicture": "unit_warmachine_big", - "BigPictureSWF": "sc/info_warmachine.sc", - "SmallPicture": "unit_warmachine_small", - "SmallPictureSWF": "sc/ui.sc", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", - "AbilityIcon": "icon_hero_warmachine_ability1", - "AbilityBigPictureExportName": "unit_warmachine_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 75, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "WarmachineDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", - "SpecialAbilitiesLevel": "4;4;4", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "17": { - "VisualLevel": 17, - "TID": "TID_WARMACHINE", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", - "Speed": 200, - "Hitpoints": 4120, - "UpgradeTimeH": 96, - "UpgradeResource": "Elixir2", - "UpgradeCost": 2800000, - "RequiredTownHallLevel": 7, - "AttackRange": 125, - "AttackSpeed": 1200, - "DPS": 170, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warmachine", - "BigPicture": "unit_warmachine_big", - "BigPictureSWF": "sc/info_warmachine.sc", - "SmallPicture": "unit_warmachine_small", - "SmallPictureSWF": "sc/ui.sc", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", - "AbilityIcon": "icon_hero_warmachine_ability1", - "AbilityBigPictureExportName": "unit_warmachine_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 77, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "WarmachineDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", - "SpecialAbilitiesLevel": "4;4;4", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "18": { - "VisualLevel": 18, - "TID": "TID_WARMACHINE", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", - "Speed": 200, - "Hitpoints": 4190, - "UpgradeTimeH": 96, - "UpgradeResource": "Elixir2", - "UpgradeCost": 2900000, - "RequiredTownHallLevel": 7, - "AttackRange": 125, - "AttackSpeed": 1200, - "DPS": 174, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warmachine", - "BigPicture": "unit_warmachine_big", - "BigPictureSWF": "sc/info_warmachine.sc", - "SmallPicture": "unit_warmachine_small", - "SmallPictureSWF": "sc/ui.sc", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", - "AbilityIcon": "icon_hero_warmachine_ability1", - "AbilityBigPictureExportName": "unit_warmachine_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 80, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "WarmachineDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", - "SpecialAbilitiesLevel": "4;4;4", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "19": { - "VisualLevel": 19, - "TID": "TID_WARMACHINE", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", - "Speed": 200, - "Hitpoints": 4260, - "UpgradeTimeH": 96, - "UpgradeResource": "Elixir2", - "UpgradeCost": 3000000, - "RequiredTownHallLevel": 7, - "AttackRange": 125, - "AttackSpeed": 1200, - "DPS": 177, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warmachine", - "BigPicture": "unit_warmachine_big", - "BigPictureSWF": "sc/info_warmachine.sc", - "SmallPicture": "unit_warmachine_small", - "SmallPictureSWF": "sc/ui.sc", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", - "AbilityIcon": "icon_hero_warmachine_ability1", - "AbilityBigPictureExportName": "unit_warmachine_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 83, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "WarmachineDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", - "SpecialAbilitiesLevel": "4;4;4", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "20": { - "VisualLevel": 20, - "TID": "TID_WARMACHINE", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", - "Speed": 200, - "Hitpoints": 4330, - "UpgradeTimeH": 120, - "UpgradeResource": "Elixir2", - "UpgradeCost": 3100000, - "RequiredTownHallLevel": 7, - "AttackRange": 125, - "AttackSpeed": 1200, - "DPS": 180, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warmachine", - "BigPicture": "unit_warmachine_big", - "BigPictureSWF": "sc/info_warmachine.sc", - "SmallPicture": "unit_warmachine_small", - "SmallPictureSWF": "sc/ui.sc", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", - "AbilityIcon": "icon_hero_warmachine_ability1", - "AbilityBigPictureExportName": "unit_warmachine_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 91, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "WarmachineDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", - "SpecialAbilitiesLevel": "4;4;4", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "21": { - "VisualLevel": 21, - "TID": "TID_WARMACHINE", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", - "Speed": 200, - "Hitpoints": 4400, - "UpgradeTimeH": 120, - "UpgradeResource": "Elixir2", - "UpgradeCost": 3200000, - "RequiredTownHallLevel": 8, - "AttackRange": 125, - "AttackSpeed": 1200, - "DPS": 186, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warmachine", - "BigPicture": "unit_warmachine_big", - "BigPictureSWF": "sc/info_warmachine.sc", - "SmallPicture": "unit_warmachine_small", - "SmallPictureSWF": "sc/ui.sc", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", - "AbilityIcon": "icon_hero_warmachine_ability1", - "AbilityBigPictureExportName": "unit_warmachine_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 94, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "WarmachineDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", - "SpecialAbilitiesLevel": "5;5;5", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "22": { - "VisualLevel": 22, - "TID": "TID_WARMACHINE", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", - "Speed": 200, - "Hitpoints": 4470, - "UpgradeTimeH": 120, - "UpgradeResource": "Elixir2", - "UpgradeCost": 3300000, - "RequiredTownHallLevel": 8, - "AttackRange": 125, - "AttackSpeed": 1200, - "DPS": 192, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warmachine", - "BigPicture": "unit_warmachine_big", - "BigPictureSWF": "sc/info_warmachine.sc", - "SmallPicture": "unit_warmachine_small", - "SmallPictureSWF": "sc/ui.sc", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", - "AbilityIcon": "icon_hero_warmachine_ability1", - "AbilityBigPictureExportName": "unit_warmachine_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 96, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "WarmachineDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", - "SpecialAbilitiesLevel": "5;5;5", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "23": { - "VisualLevel": 23, - "TID": "TID_WARMACHINE", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", - "Speed": 200, - "Hitpoints": 4540, - "UpgradeTimeH": 120, - "UpgradeResource": "Elixir2", - "UpgradeCost": 3400000, - "RequiredTownHallLevel": 8, - "AttackRange": 125, - "AttackSpeed": 1200, - "DPS": 198, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warmachine", - "BigPicture": "unit_warmachine_big", - "BigPictureSWF": "sc/info_warmachine.sc", - "SmallPicture": "unit_warmachine_small", - "SmallPictureSWF": "sc/ui.sc", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", - "AbilityIcon": "icon_hero_warmachine_ability1", - "AbilityBigPictureExportName": "unit_warmachine_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 100, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "WarmachineDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", - "SpecialAbilitiesLevel": "5;5;5", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "24": { - "VisualLevel": 24, - "TID": "TID_WARMACHINE", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", - "Speed": 200, - "Hitpoints": 4610, - "UpgradeTimeH": 120, - "UpgradeResource": "Elixir2", - "UpgradeCost": 3500000, - "RequiredTownHallLevel": 8, - "AttackRange": 125, - "AttackSpeed": 1200, - "DPS": 204, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warmachine", - "BigPicture": "unit_warmachine_big", - "BigPictureSWF": "sc/info_warmachine.sc", - "SmallPicture": "unit_warmachine_small", - "SmallPictureSWF": "sc/ui.sc", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", - "AbilityIcon": "icon_hero_warmachine_ability1", - "AbilityBigPictureExportName": "unit_warmachine_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 104, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "WarmachineDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", - "SpecialAbilitiesLevel": "5;5;5", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "25": { - "VisualLevel": 25, - "TID": "TID_WARMACHINE", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", - "Speed": 200, - "Hitpoints": 4680, - "UpgradeTimeH": 144, - "UpgradeResource": "Elixir2", - "UpgradeCost": 3600000, - "RequiredTownHallLevel": 8, - "AttackRange": 125, - "AttackSpeed": 1200, - "DPS": 210, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warmachine", - "BigPicture": "unit_warmachine_big", - "BigPictureSWF": "sc/info_warmachine.sc", - "SmallPicture": "unit_warmachine_small", - "SmallPictureSWF": "sc/ui.sc", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", - "AbilityIcon": "icon_hero_warmachine_ability1", - "AbilityBigPictureExportName": "unit_warmachine_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 113, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "WarmachineDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", - "SpecialAbilitiesLevel": "5;5;5", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "26": { - "VisualLevel": 26, - "TID": "TID_WARMACHINE", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", - "Speed": 200, - "Hitpoints": 4750, - "UpgradeTimeH": 144, - "UpgradeResource": "Elixir2", - "UpgradeCost": 3700000, - "RequiredTownHallLevel": 9, - "AttackRange": 125, - "AttackSpeed": 1200, - "DPS": 218, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warmachine", - "BigPicture": "unit_warmachine_big", - "BigPictureSWF": "sc/info_warmachine.sc", - "SmallPicture": "unit_warmachine_small", - "SmallPictureSWF": "sc/ui.sc", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", - "AbilityIcon": "icon_hero_warmachine_ability1", - "AbilityBigPictureExportName": "unit_warmachine_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 116, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "WarmachineDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", - "SpecialAbilitiesLevel": "6;6;6", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "27": { - "VisualLevel": 27, - "TID": "TID_WARMACHINE", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", - "Speed": 200, - "Hitpoints": 4820, - "UpgradeTimeH": 144, - "UpgradeResource": "Elixir2", - "UpgradeCost": 3800000, - "RequiredTownHallLevel": 9, - "AttackRange": 125, - "AttackSpeed": 1200, - "DPS": 226, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warmachine", - "BigPicture": "unit_warmachine_big", - "BigPictureSWF": "sc/info_warmachine.sc", - "SmallPicture": "unit_warmachine_small", - "SmallPictureSWF": "sc/ui.sc", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", - "AbilityIcon": "icon_hero_warmachine_ability1", - "AbilityBigPictureExportName": "unit_warmachine_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 120, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "WarmachineDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", - "SpecialAbilitiesLevel": "6;6;6", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "28": { - "VisualLevel": 28, - "TID": "TID_WARMACHINE", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", - "Speed": 200, - "Hitpoints": 4890, - "UpgradeTimeH": 144, - "UpgradeResource": "Elixir2", - "UpgradeCost": 3900000, - "RequiredTownHallLevel": 9, - "AttackRange": 125, - "AttackSpeed": 1200, - "DPS": 234, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warmachine", - "BigPicture": "unit_warmachine_big", - "BigPictureSWF": "sc/info_warmachine.sc", - "SmallPicture": "unit_warmachine_small", - "SmallPictureSWF": "sc/ui.sc", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", - "AbilityIcon": "icon_hero_warmachine_ability1", - "AbilityBigPictureExportName": "unit_warmachine_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 124, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "WarmachineDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", - "SpecialAbilitiesLevel": "6;6;6", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "29": { - "VisualLevel": 29, - "TID": "TID_WARMACHINE", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", - "Speed": 200, - "Hitpoints": 4960, - "UpgradeTimeH": 144, - "UpgradeResource": "Elixir2", - "UpgradeCost": 4000000, - "RequiredTownHallLevel": 9, - "AttackRange": 125, - "AttackSpeed": 1200, - "DPS": 242, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warmachine", - "BigPicture": "unit_warmachine_big", - "BigPictureSWF": "sc/info_warmachine.sc", - "SmallPicture": "unit_warmachine_small", - "SmallPictureSWF": "sc/ui.sc", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", - "AbilityIcon": "icon_hero_warmachine_ability1", - "AbilityBigPictureExportName": "unit_warmachine_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 127, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "WarmachineDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", - "SpecialAbilitiesLevel": "6;6;6", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "30": { - "VisualLevel": 30, - "TID": "TID_WARMACHINE", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", - "Speed": 200, - "Hitpoints": 5030, - "UpgradeTimeH": 168, - "UpgradeResource": "Elixir2", - "UpgradeCost": 4100000, - "RequiredTownHallLevel": 9, - "AttackRange": 125, - "AttackSpeed": 1200, - "DPS": 250, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warmachine", - "BigPicture": "unit_warmachine_big", - "BigPictureSWF": "sc/info_warmachine.sc", - "SmallPicture": "unit_warmachine_small", - "SmallPictureSWF": "sc/ui.sc", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", - "AbilityIcon": "icon_hero_warmachine_ability1", - "AbilityBigPictureExportName": "unit_warmachine_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 137, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "WarmachineDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", - "SpecialAbilitiesLevel": "6;6;6", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "31": { - "VisualLevel": 31, - "TID": "TID_WARMACHINE", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", - "Speed": 200, - "Hitpoints": 5100, - "UpgradeTimeH": 168, - "UpgradeResource": "Elixir2", - "UpgradeCost": 4200000, - "RequiredTownHallLevel": 10, - "AttackRange": 125, - "AttackSpeed": 1200, - "DPS": 258, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warmachine", - "BigPicture": "unit_warmachine_big", - "BigPictureSWF": "sc/info_warmachine.sc", - "SmallPicture": "unit_warmachine_small", - "SmallPictureSWF": "sc/ui.sc", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", - "AbilityIcon": "icon_hero_warmachine_ability1", - "AbilityBigPictureExportName": "unit_warmachine_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 140, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "WarmachineDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", - "SpecialAbilitiesLevel": "7;7;7", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "32": { - "VisualLevel": 32, - "TID": "TID_WARMACHINE", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", - "Speed": 200, - "Hitpoints": 5170, - "UpgradeTimeH": 168, - "UpgradeResource": "Elixir2", - "UpgradeCost": 4300000, - "RequiredTownHallLevel": 10, - "AttackRange": 125, - "AttackSpeed": 1200, - "DPS": 266, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warmachine", - "BigPicture": "unit_warmachine_big", - "BigPictureSWF": "sc/info_warmachine.sc", - "SmallPicture": "unit_warmachine_small", - "SmallPictureSWF": "sc/ui.sc", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", - "AbilityIcon": "icon_hero_warmachine_ability1", - "AbilityBigPictureExportName": "unit_warmachine_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 143, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "WarmachineDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "33": { - "VisualLevel": 33, - "TID": "TID_WARMACHINE", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", - "Speed": 200, - "Hitpoints": 5240, - "UpgradeTimeH": 168, - "UpgradeResource": "Elixir2", - "UpgradeCost": 4400000, - "RequiredTownHallLevel": 10, - "AttackRange": 125, - "AttackSpeed": 1200, - "DPS": 274, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warmachine", - "BigPicture": "unit_warmachine_big", - "BigPictureSWF": "sc/info_warmachine.sc", - "SmallPicture": "unit_warmachine_small", - "SmallPictureSWF": "sc/ui.sc", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", - "AbilityIcon": "icon_hero_warmachine_ability1", - "AbilityBigPictureExportName": "unit_warmachine_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 146, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "WarmachineDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "34": { - "VisualLevel": 34, - "TID": "TID_WARMACHINE", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", - "Speed": 200, - "Hitpoints": 5310, - "UpgradeTimeH": 168, - "UpgradeResource": "Elixir2", - "UpgradeCost": 4500000, - "RequiredTownHallLevel": 10, - "AttackRange": 125, - "AttackSpeed": 1200, - "DPS": 282, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warmachine", - "BigPicture": "unit_warmachine_big", - "BigPictureSWF": "sc/info_warmachine.sc", - "SmallPicture": "unit_warmachine_small", - "SmallPictureSWF": "sc/ui.sc", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", - "AbilityIcon": "icon_hero_warmachine_ability1", - "AbilityBigPictureExportName": "unit_warmachine_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 149, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "WarmachineDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "35": { - "VisualLevel": 35, - "TID": "TID_WARMACHINE", - "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", - "Speed": 200, - "Hitpoints": 5380, - "UpgradeTimeH": 168, - "UpgradeResource": "Elixir2", - "UpgradeCost": 4500000, - "RequiredTownHallLevel": 10, - "AttackRange": 125, - "AttackSpeed": 1200, - "DPS": 290, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warmachine", - "BigPicture": "unit_warmachine_big", - "BigPictureSWF": "sc/info_warmachine.sc", - "SmallPicture": "unit_warmachine_small", - "SmallPictureSWF": "sc/ui.sc", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", - "AbilityIcon": "icon_hero_warmachine_ability1", - "AbilityBigPictureExportName": "unit_warmachine_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 160, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "WarmachineDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - } - }, - "Royal Champion": { - "1": { - "VisualLevel": 1, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 2508, - "UpgradeTimeH": 8, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 70000, - "RequiredTownHallLevel": 13, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 340, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 30, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 110, - "StrengthWeight2": 31, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 1, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampion", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 1 - }, - "2": { - "VisualLevel": 2, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 2550, - "UpgradeTimeH": 12, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 75000, - "RequiredTownHallLevel": 13, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 350, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 30, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 110, - "StrengthWeight2": 31, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 1, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampion", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 1 - }, - "3": { - "VisualLevel": 3, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 2593, - "UpgradeTimeH": 16, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 80000, - "RequiredTownHallLevel": 13, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 360, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 30, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 110, - "StrengthWeight2": 31, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 1, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampion", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 2 - }, - "4": { - "VisualLevel": 4, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 2635, - "UpgradeTimeH": 20, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 90000, - "RequiredTownHallLevel": 13, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 370, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 30, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 0, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 110, - "StrengthWeight2": 31, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 1, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampion", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 3 - }, - "5": { - "VisualLevel": 5, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 2678, - "UpgradeTimeH": 44, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 100000, - "RequiredTownHallLevel": 13, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 375, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 32, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 1700, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 150, - "StrengthWeight2": 33, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 2, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 4 - }, - "6": { - "VisualLevel": 6, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 2720, - "UpgradeTimeH": 66, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 110000, - "RequiredTownHallLevel": 13, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 380, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 32, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 1700, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 150, - "StrengthWeight2": 33, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 2, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 5 - }, - "7": { - "VisualLevel": 7, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 2763, - "UpgradeTimeH": 78, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 120000, - "RequiredTownHallLevel": 13, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 385, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 32, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 1700, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 150, - "StrengthWeight2": 33, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 2, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 5 - }, - "8": { - "VisualLevel": 8, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 2805, - "UpgradeTimeH": 90, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 130000, - "RequiredTownHallLevel": 13, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 390, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 32, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 1700, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 150, - "StrengthWeight2": 33, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 2, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 6 - }, - "9": { - "VisualLevel": 9, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 2848, - "UpgradeTimeH": 102, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 140000, - "RequiredTownHallLevel": 13, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 396, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 32, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 1700, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 150, - "StrengthWeight2": 33, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 2, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 6 - }, - "10": { - "VisualLevel": 10, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 2890, - "UpgradeTimeH": 108, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 150000, - "RequiredTownHallLevel": 13, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 402, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 34, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 2000, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 160, - "StrengthWeight2": 35, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 3, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 7 - }, - "11": { - "VisualLevel": 11, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 2933, - "UpgradeTimeH": 120, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 160000, - "RequiredTownHallLevel": 13, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 408, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 34, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 2000, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 160, - "StrengthWeight2": 35, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 3, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 7 - }, - "12": { - "VisualLevel": 12, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 2975, - "UpgradeTimeH": 120, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 165000, - "RequiredTownHallLevel": 13, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 414, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 34, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 2000, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 160, - "StrengthWeight2": 35, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 3, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 8 - }, - "13": { - "VisualLevel": 13, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 3018, - "UpgradeTimeH": 120, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 170000, - "RequiredTownHallLevel": 13, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 420, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 34, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 2000, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 160, - "StrengthWeight2": 35, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 3, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 8 - }, - "14": { - "VisualLevel": 14, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 3060, - "UpgradeTimeH": 132, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 175000, - "RequiredTownHallLevel": 13, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 426, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 34, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 2000, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 160, - "StrengthWeight2": 35, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 3, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 8 - }, - "15": { - "VisualLevel": 15, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 3103, - "UpgradeTimeH": 132, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 180000, - "RequiredTownHallLevel": 13, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 432, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 36, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 2300, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 170, - "StrengthWeight2": 37, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 4, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 9 - }, - "16": { - "VisualLevel": 16, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 3145, - "UpgradeTimeH": 132, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 185000, - "RequiredTownHallLevel": 13, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 438, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 36, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 2300, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 170, - "StrengthWeight2": 37, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 4, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 9 - }, - "17": { - "VisualLevel": 17, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 3188, - "UpgradeTimeH": 144, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 190000, - "RequiredTownHallLevel": 13, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 444, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 36, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 2300, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 170, - "StrengthWeight2": 37, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 4, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 9 - }, - "18": { - "VisualLevel": 18, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 3230, - "UpgradeTimeH": 144, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 195000, - "RequiredTownHallLevel": 13, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 448, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 36, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 2300, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 170, - "StrengthWeight2": 37, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 4, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 10 - }, - "19": { - "VisualLevel": 19, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 3273, - "UpgradeTimeH": 144, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 200000, - "RequiredTownHallLevel": 13, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 452, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 36, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 2300, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 170, - "StrengthWeight2": 37, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 4, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 11 - }, - "20": { - "VisualLevel": 20, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 3315, - "UpgradeTimeH": 156, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 205000, - "RequiredTownHallLevel": 13, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 456, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 38, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 2600, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 180, - "StrengthWeight2": 39, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 5, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 12 - }, - "21": { - "VisualLevel": 21, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 3349, - "UpgradeTimeH": 156, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 210000, - "RequiredTownHallLevel": 13, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 460, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 38, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 2600, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 180, - "StrengthWeight2": 39, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 5, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 12 - }, - "22": { - "VisualLevel": 22, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 3383, - "UpgradeTimeH": 156, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 215000, - "RequiredTownHallLevel": 13, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 465, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 38, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 2600, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 180, - "StrengthWeight2": 39, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 5, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 12 - }, - "23": { - "VisualLevel": 23, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 3417, - "UpgradeTimeH": 156, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 220000, - "RequiredTownHallLevel": 13, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 470, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 38, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 2600, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 180, - "StrengthWeight2": 39, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 5, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 12 - }, - "24": { - "VisualLevel": 24, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 3451, - "UpgradeTimeH": 156, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 225000, - "RequiredTownHallLevel": 13, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 474, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 38, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 2600, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 180, - "StrengthWeight2": 39, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 5, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 12 - }, - "25": { - "VisualLevel": 25, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 3485, - "UpgradeTimeH": 174, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 230000, - "RequiredTownHallLevel": 13, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 477, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 40, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 2800, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 190, - "StrengthWeight2": 41, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 6, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 13 - }, - "26": { - "VisualLevel": 26, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 3519, - "UpgradeTimeH": 174, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 235000, - "RequiredTownHallLevel": 14, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 480, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 40, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 2800, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 190, - "StrengthWeight2": 41, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 6, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 13 - }, - "27": { - "VisualLevel": 27, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 3553, - "UpgradeTimeH": 174, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 240000, - "RequiredTownHallLevel": 14, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 483, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 40, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 2800, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 190, - "StrengthWeight2": 41, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 6, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 14 - }, - "28": { - "VisualLevel": 28, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 3587, - "UpgradeTimeH": 174, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 245000, - "RequiredTownHallLevel": 14, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 486, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 40, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 2800, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 190, - "StrengthWeight2": 41, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 6, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 14 - }, - "29": { - "VisualLevel": 29, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 3621, - "UpgradeTimeH": 174, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 250000, - "RequiredTownHallLevel": 14, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 489, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 40, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 2800, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 190, - "StrengthWeight2": 41, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 6, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 14 - }, - "30": { - "VisualLevel": 30, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 3655, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 260000, - "RequiredTownHallLevel": 14, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 492, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 42, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 3000, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 200, - "StrengthWeight2": 43, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 7, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 15 - }, - "31": { - "VisualLevel": 31, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 3681, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 265000, - "RequiredTownHallLevel": 15, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 495, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 42, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 3000, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 200, - "StrengthWeight2": 43, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 7, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 15 - }, - "32": { - "VisualLevel": 32, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 3706, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 270000, - "RequiredTownHallLevel": 15, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 498, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 42, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 3000, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 200, - "StrengthWeight2": 43, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 7, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 15 - }, - "33": { - "VisualLevel": 33, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 3732, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 275000, - "RequiredTownHallLevel": 15, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 502, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 42, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 3000, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 200, - "StrengthWeight2": 43, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 7, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 15 - }, - "34": { - "VisualLevel": 34, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 3757, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 280000, - "RequiredTownHallLevel": 15, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 506, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 42, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 3000, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 200, - "StrengthWeight2": 43, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 7, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 15 - }, - "35": { - "VisualLevel": 35, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 3783, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 285000, - "RequiredTownHallLevel": 15, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 510, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 44, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 3200, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 200, - "StrengthWeight2": 45, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 8, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 15 - }, - "36": { - "VisualLevel": 36, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 3808, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 290000, - "RequiredTownHallLevel": 15, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 514, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 44, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 3200, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 200, - "StrengthWeight2": 45, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 8, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 15 - }, - "37": { - "VisualLevel": 37, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 3834, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 295000, - "RequiredTownHallLevel": 15, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 518, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 44, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 3200, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 200, - "StrengthWeight2": 45, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 8, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 15 - }, - "38": { - "VisualLevel": 38, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 3859, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 300000, - "RequiredTownHallLevel": 15, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 522, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 44, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 3200, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 200, - "StrengthWeight2": 45, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 8, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 15 - }, - "39": { - "VisualLevel": 39, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 3885, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 305000, - "RequiredTownHallLevel": 15, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 526, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 44, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 3200, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 200, - "StrengthWeight2": 45, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 8, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 15 - }, - "40": { - "VisualLevel": 40, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 3910, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 315000, - "RequiredTownHallLevel": 15, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 530, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 46, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 3400, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 200, - "StrengthWeight2": 47, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 9, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 15 - }, - "41": { - "VisualLevel": 41, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 3936, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 325000, - "RequiredTownHallLevel": 16, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 533, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 46, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityTime": 4000, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 3400, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 200, - "StrengthWeight2": 47, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 9, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 15 - }, - "42": { - "VisualLevel": 42, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 3961, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 335000, - "RequiredTownHallLevel": 16, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 536, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 46, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 3400, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 200, - "StrengthWeight2": 47, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 9, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 15 - }, - "43": { - "VisualLevel": 43, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 3987, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 345000, - "RequiredTownHallLevel": 16, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 539, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 46, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 3400, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 200, - "StrengthWeight2": 47, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 9, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 15 - }, - "44": { - "VisualLevel": 44, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 4012, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 355000, - "RequiredTownHallLevel": 16, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 542, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 46, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 3400, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 200, - "StrengthWeight2": 47, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 9, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 15 - }, - "45": { - "VisualLevel": 45, - "TID": "TID_HERO_ROYAL_CHAMPION", - "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", - "Speed": 300, - "Hitpoints": 4038, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 355000, - "RequiredTownHallLevel": 16, - "AttackRange": 300, - "AttackSpeed": 1200, - "DPS": 545, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_warriorPrincess", - "BigPicture": "unit_royal_champion_big", - "BigPictureSWF": "sc/info_royal_champion.sc", - "SmallPicture": "unit_royal_champion_smalll", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "AmazonQueen_javelin", - "DeployEffect": "Hero Deploy", - "HitEffect": "AmazonQ ability hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": true, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "HealerWeight": 23, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 48, - "TrainingResource": "Elixir", - "CelebrateEffect": "Warrior Princess Scream", - "SleepOffsetX": 70, - "SleepOffsetY": "-40", - "PatrolRadius": 300, - "AbilityAffectsHero": true, - "AbilityOnce": true, - "AbilityCooldown": 0, - "AbilityHealthIncrease": 3600, - "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", - "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", - "AbilityIcon": "icon_hero_warriorPrincess_ability1", - "AbilityBigPictureExportName": "unit_royal_champion_ability_big", - "StrengthWeight": 200, - "StrengthWeight2": 49, - "AlertRadius": 1200, - "PreferedTargetBuildingClass": "Defense", - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 1000, - "TargetedEffectOffset": "-50", - "TriggersTraps": true, - "DefaultSkin": "WarriorPrincessDefault", - "UseAutoHeroAbility": true, - "NewTargetAttackDelay": 400, - "Gender": "F", - "SpecialAbilities": "RoyalChampionAbilityHeal", - "SpecialAbilitiesLevel": 10, - "AvoidNoiseInAttackPositionSelection": true, - "PreviewScenario": "HeroRoyalChampionLVL5", - "ItemSlotCount": 2, - "DefaultItems": "Seeking Shield; Protective Cloak;", - "MigrationGearLevel": 15 - } - }, - "Battle Copter": { - "1": { - "VisualLevel": 15, - "TID": "TID_HERO_BATTLE_COPTER", - "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", - "Speed": 180, - "Hitpoints": 2857, - "UpgradeTimeH": 120, - "UpgradeResource": "Elixir2", - "UpgradeCost": 2600000, - "RequiredTownHallLevel": 8, - "AttackRange": 600, - "AttackSpeed": 650, - "DPS": 112, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_battlecopter", - "BigPicture": "unit_battlecopter_big", - "BigPictureSWF": "sc/info_battlecopter.sc", - "SmallPicture": "icon_hero_battlecopter_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "BattleCopterProjectile", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 0, - "SleepOffsetY": "-100", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", - "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", - "AbilityIcon": "icon_hero_battlecopter_ability1", - "AbilityBigPictureExportName": "unit_battlecopter_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 66, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": 100, - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "BattleCopterDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", - "SpecialAbilitiesLevel": "1;1;1", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "2": { - "VisualLevel": 15, - "TID": "TID_HERO_BATTLE_COPTER", - "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", - "Speed": 180, - "Hitpoints": 2857, - "UpgradeTimeH": 120, - "UpgradeResource": "Elixir2", - "UpgradeCost": 2600000, - "RequiredTownHallLevel": 8, - "AttackRange": 600, - "AttackSpeed": 650, - "DPS": 112, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_battlecopter", - "BigPicture": "unit_battlecopter_big", - "BigPictureSWF": "sc/info_battlecopter.sc", - "SmallPicture": "icon_hero_battlecopter_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "BattleCopterProjectile", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 0, - "SleepOffsetY": "-100", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", - "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", - "AbilityIcon": "icon_hero_battlecopter_ability1", - "AbilityBigPictureExportName": "unit_battlecopter_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 66, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": 100, - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "BattleCopterDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", - "SpecialAbilitiesLevel": "1;1;1", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "3": { - "VisualLevel": 15, - "TID": "TID_HERO_BATTLE_COPTER", - "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", - "Speed": 180, - "Hitpoints": 2857, - "UpgradeTimeH": 120, - "UpgradeResource": "Elixir2", - "UpgradeCost": 2600000, - "RequiredTownHallLevel": 8, - "AttackRange": 600, - "AttackSpeed": 650, - "DPS": 112, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_battlecopter", - "BigPicture": "unit_battlecopter_big", - "BigPictureSWF": "sc/info_battlecopter.sc", - "SmallPicture": "icon_hero_battlecopter_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "BattleCopterProjectile", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 0, - "SleepOffsetY": "-100", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", - "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", - "AbilityIcon": "icon_hero_battlecopter_ability1", - "AbilityBigPictureExportName": "unit_battlecopter_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 66, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": 100, - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "BattleCopterDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", - "SpecialAbilitiesLevel": "1;1;1", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "4": { - "VisualLevel": 15, - "TID": "TID_HERO_BATTLE_COPTER", - "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", - "Speed": 180, - "Hitpoints": 2857, - "UpgradeTimeH": 120, - "UpgradeResource": "Elixir2", - "UpgradeCost": 2600000, - "RequiredTownHallLevel": 8, - "AttackRange": 600, - "AttackSpeed": 650, - "DPS": 112, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_battlecopter", - "BigPicture": "unit_battlecopter_big", - "BigPictureSWF": "sc/info_battlecopter.sc", - "SmallPicture": "icon_hero_battlecopter_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "BattleCopterProjectile", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 0, - "SleepOffsetY": "-100", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", - "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", - "AbilityIcon": "icon_hero_battlecopter_ability1", - "AbilityBigPictureExportName": "unit_battlecopter_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 66, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": 100, - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "BattleCopterDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", - "SpecialAbilitiesLevel": "1;1;1", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "5": { - "VisualLevel": 15, - "TID": "TID_HERO_BATTLE_COPTER", - "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", - "Speed": 180, - "Hitpoints": 2857, - "UpgradeTimeH": 120, - "UpgradeResource": "Elixir2", - "UpgradeCost": 2600000, - "RequiredTownHallLevel": 8, - "AttackRange": 600, - "AttackSpeed": 650, - "DPS": 112, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_battlecopter", - "BigPicture": "unit_battlecopter_big", - "BigPictureSWF": "sc/info_battlecopter.sc", - "SmallPicture": "icon_hero_battlecopter_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "BattleCopterProjectile", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 0, - "SleepOffsetY": "-100", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", - "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", - "AbilityIcon": "icon_hero_battlecopter_ability1", - "AbilityBigPictureExportName": "unit_battlecopter_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 66, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": 100, - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "BattleCopterDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", - "SpecialAbilitiesLevel": "1;1;1", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "6": { - "VisualLevel": 15, - "TID": "TID_HERO_BATTLE_COPTER", - "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", - "Speed": 180, - "Hitpoints": 2857, - "UpgradeTimeH": 120, - "UpgradeResource": "Elixir2", - "UpgradeCost": 2600000, - "RequiredTownHallLevel": 8, - "AttackRange": 600, - "AttackSpeed": 650, - "DPS": 112, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_battlecopter", - "BigPicture": "unit_battlecopter_big", - "BigPictureSWF": "sc/info_battlecopter.sc", - "SmallPicture": "icon_hero_battlecopter_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "BattleCopterProjectile", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 0, - "SleepOffsetY": "-100", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", - "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", - "AbilityIcon": "icon_hero_battlecopter_ability1", - "AbilityBigPictureExportName": "unit_battlecopter_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 66, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": 100, - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "BattleCopterDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", - "SpecialAbilitiesLevel": "1;1;1", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "7": { - "VisualLevel": 15, - "TID": "TID_HERO_BATTLE_COPTER", - "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", - "Speed": 180, - "Hitpoints": 2857, - "UpgradeTimeH": 120, - "UpgradeResource": "Elixir2", - "UpgradeCost": 2600000, - "RequiredTownHallLevel": 8, - "AttackRange": 600, - "AttackSpeed": 650, - "DPS": 112, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_battlecopter", - "BigPicture": "unit_battlecopter_big", - "BigPictureSWF": "sc/info_battlecopter.sc", - "SmallPicture": "icon_hero_battlecopter_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "BattleCopterProjectile", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 0, - "SleepOffsetY": "-100", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", - "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", - "AbilityIcon": "icon_hero_battlecopter_ability1", - "AbilityBigPictureExportName": "unit_battlecopter_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 66, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": 100, - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "BattleCopterDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", - "SpecialAbilitiesLevel": "1;1;1", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "8": { - "VisualLevel": 15, - "TID": "TID_HERO_BATTLE_COPTER", - "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", - "Speed": 180, - "Hitpoints": 2857, - "UpgradeTimeH": 120, - "UpgradeResource": "Elixir2", - "UpgradeCost": 2600000, - "RequiredTownHallLevel": 8, - "AttackRange": 600, - "AttackSpeed": 650, - "DPS": 112, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_battlecopter", - "BigPicture": "unit_battlecopter_big", - "BigPictureSWF": "sc/info_battlecopter.sc", - "SmallPicture": "icon_hero_battlecopter_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "BattleCopterProjectile", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 0, - "SleepOffsetY": "-100", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", - "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", - "AbilityIcon": "icon_hero_battlecopter_ability1", - "AbilityBigPictureExportName": "unit_battlecopter_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 66, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": 100, - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "BattleCopterDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", - "SpecialAbilitiesLevel": "1;1;1", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "9": { - "VisualLevel": 15, - "TID": "TID_HERO_BATTLE_COPTER", - "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", - "Speed": 180, - "Hitpoints": 2857, - "UpgradeTimeH": 120, - "UpgradeResource": "Elixir2", - "UpgradeCost": 2600000, - "RequiredTownHallLevel": 8, - "AttackRange": 600, - "AttackSpeed": 650, - "DPS": 112, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_battlecopter", - "BigPicture": "unit_battlecopter_big", - "BigPictureSWF": "sc/info_battlecopter.sc", - "SmallPicture": "icon_hero_battlecopter_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "BattleCopterProjectile", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 0, - "SleepOffsetY": "-100", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", - "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", - "AbilityIcon": "icon_hero_battlecopter_ability1", - "AbilityBigPictureExportName": "unit_battlecopter_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 66, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": 100, - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "BattleCopterDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", - "SpecialAbilitiesLevel": "1;1;1", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "10": { - "VisualLevel": 15, - "TID": "TID_HERO_BATTLE_COPTER", - "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", - "Speed": 180, - "Hitpoints": 2857, - "UpgradeTimeH": 120, - "UpgradeResource": "Elixir2", - "UpgradeCost": 2600000, - "RequiredTownHallLevel": 8, - "AttackRange": 600, - "AttackSpeed": 650, - "DPS": 112, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_battlecopter", - "BigPicture": "unit_battlecopter_big", - "BigPictureSWF": "sc/info_battlecopter.sc", - "SmallPicture": "icon_hero_battlecopter_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "BattleCopterProjectile", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 0, - "SleepOffsetY": "-100", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", - "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", - "AbilityIcon": "icon_hero_battlecopter_ability1", - "AbilityBigPictureExportName": "unit_battlecopter_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 66, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": 100, - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "BattleCopterDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", - "SpecialAbilitiesLevel": "1;1;1", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "11": { - "VisualLevel": 15, - "TID": "TID_HERO_BATTLE_COPTER", - "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", - "Speed": 180, - "Hitpoints": 2857, - "UpgradeTimeH": 120, - "UpgradeResource": "Elixir2", - "UpgradeCost": 2600000, - "RequiredTownHallLevel": 8, - "AttackRange": 600, - "AttackSpeed": 650, - "DPS": 112, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_battlecopter", - "BigPicture": "unit_battlecopter_big", - "BigPictureSWF": "sc/info_battlecopter.sc", - "SmallPicture": "icon_hero_battlecopter_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "BattleCopterProjectile", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 0, - "SleepOffsetY": "-100", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", - "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", - "AbilityIcon": "icon_hero_battlecopter_ability1", - "AbilityBigPictureExportName": "unit_battlecopter_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 66, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": 100, - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "BattleCopterDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", - "SpecialAbilitiesLevel": "1;1;1", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "12": { - "VisualLevel": 15, - "TID": "TID_HERO_BATTLE_COPTER", - "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", - "Speed": 180, - "Hitpoints": 2857, - "UpgradeTimeH": 120, - "UpgradeResource": "Elixir2", - "UpgradeCost": 2600000, - "RequiredTownHallLevel": 8, - "AttackRange": 600, - "AttackSpeed": 650, - "DPS": 112, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_battlecopter", - "BigPicture": "unit_battlecopter_big", - "BigPictureSWF": "sc/info_battlecopter.sc", - "SmallPicture": "icon_hero_battlecopter_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "BattleCopterProjectile", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 0, - "SleepOffsetY": "-100", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", - "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", - "AbilityIcon": "icon_hero_battlecopter_ability1", - "AbilityBigPictureExportName": "unit_battlecopter_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 66, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": 100, - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "BattleCopterDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", - "SpecialAbilitiesLevel": "1;1;1", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "13": { - "VisualLevel": 15, - "TID": "TID_HERO_BATTLE_COPTER", - "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", - "Speed": 180, - "Hitpoints": 2857, - "UpgradeTimeH": 120, - "UpgradeResource": "Elixir2", - "UpgradeCost": 2600000, - "RequiredTownHallLevel": 8, - "AttackRange": 600, - "AttackSpeed": 650, - "DPS": 112, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_battlecopter", - "BigPicture": "unit_battlecopter_big", - "BigPictureSWF": "sc/info_battlecopter.sc", - "SmallPicture": "icon_hero_battlecopter_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "BattleCopterProjectile", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 0, - "SleepOffsetY": "-100", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", - "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", - "AbilityIcon": "icon_hero_battlecopter_ability1", - "AbilityBigPictureExportName": "unit_battlecopter_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 66, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": 100, - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "BattleCopterDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", - "SpecialAbilitiesLevel": "1;1;1", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "14": { - "VisualLevel": 15, - "TID": "TID_HERO_BATTLE_COPTER", - "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", - "Speed": 180, - "Hitpoints": 2857, - "UpgradeTimeH": 120, - "UpgradeResource": "Elixir2", - "UpgradeCost": 2600000, - "RequiredTownHallLevel": 8, - "AttackRange": 600, - "AttackSpeed": 650, - "DPS": 112, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_battlecopter", - "BigPicture": "unit_battlecopter_big", - "BigPictureSWF": "sc/info_battlecopter.sc", - "SmallPicture": "icon_hero_battlecopter_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "BattleCopterProjectile", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 0, - "SleepOffsetY": "-100", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", - "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", - "AbilityIcon": "icon_hero_battlecopter_ability1", - "AbilityBigPictureExportName": "unit_battlecopter_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 66, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": 100, - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "BattleCopterDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", - "SpecialAbilitiesLevel": "1;1;1", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "15": { - "VisualLevel": 15, - "TID": "TID_HERO_BATTLE_COPTER", - "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", - "Speed": 180, - "Hitpoints": 2857, - "UpgradeTimeH": 120, - "UpgradeResource": "Elixir2", - "UpgradeCost": 2600000, - "RequiredTownHallLevel": 8, - "AttackRange": 600, - "AttackSpeed": 650, - "DPS": 112, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_battlecopter", - "BigPicture": "unit_battlecopter_big", - "BigPictureSWF": "sc/info_battlecopter.sc", - "SmallPicture": "icon_hero_battlecopter_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "BattleCopterProjectile", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 0, - "SleepOffsetY": "-100", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", - "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", - "AbilityIcon": "icon_hero_battlecopter_ability1", - "AbilityBigPictureExportName": "unit_battlecopter_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 66, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": 100, - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "BattleCopterDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", - "SpecialAbilitiesLevel": "1;1;1", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "16": { - "VisualLevel": 16, - "TID": "TID_HERO_BATTLE_COPTER", - "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", - "Speed": 180, - "Hitpoints": 2885, - "UpgradeTimeH": 120, - "UpgradeResource": "Elixir2", - "UpgradeCost": 2700000, - "RequiredTownHallLevel": 8, - "AttackRange": 600, - "AttackSpeed": 650, - "DPS": 116, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_battlecopter", - "BigPicture": "unit_battlecopter_big", - "BigPictureSWF": "sc/info_battlecopter.sc", - "SmallPicture": "icon_hero_battlecopter_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "BattleCopterProjectile", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 0, - "SleepOffsetY": "-100", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", - "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", - "AbilityIcon": "icon_hero_battlecopter_ability1", - "AbilityBigPictureExportName": "unit_battlecopter_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 69, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": 100, - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "BattleCopterDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", - "SpecialAbilitiesLevel": "1;1;1", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "17": { - "VisualLevel": 17, - "TID": "TID_HERO_BATTLE_COPTER", - "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", - "Speed": 180, - "Hitpoints": 2915, - "UpgradeTimeH": 120, - "UpgradeResource": "Elixir2", - "UpgradeCost": 2800000, - "RequiredTownHallLevel": 8, - "AttackRange": 600, - "AttackSpeed": 650, - "DPS": 119, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_battlecopter", - "BigPicture": "unit_battlecopter_big", - "BigPictureSWF": "sc/info_battlecopter.sc", - "SmallPicture": "icon_hero_battlecopter_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "BattleCopterProjectile", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 0, - "SleepOffsetY": "-100", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", - "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", - "AbilityIcon": "icon_hero_battlecopter_ability1", - "AbilityBigPictureExportName": "unit_battlecopter_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 71, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": 100, - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "BattleCopterDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", - "SpecialAbilitiesLevel": "1;1;1", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "18": { - "VisualLevel": 18, - "TID": "TID_HERO_BATTLE_COPTER", - "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", - "Speed": 180, - "Hitpoints": 2943, - "UpgradeTimeH": 120, - "UpgradeResource": "Elixir2", - "UpgradeCost": 2900000, - "RequiredTownHallLevel": 8, - "AttackRange": 600, - "AttackSpeed": 650, - "DPS": 123, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_battlecopter", - "BigPicture": "unit_battlecopter_big", - "BigPictureSWF": "sc/info_battlecopter.sc", - "SmallPicture": "icon_hero_battlecopter_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "BattleCopterProjectile", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 0, - "SleepOffsetY": "-100", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", - "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", - "AbilityIcon": "icon_hero_battlecopter_ability1", - "AbilityBigPictureExportName": "unit_battlecopter_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 74, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": 100, - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "BattleCopterDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", - "SpecialAbilitiesLevel": "1;1;1", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "19": { - "VisualLevel": 19, - "TID": "TID_HERO_BATTLE_COPTER", - "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", - "Speed": 180, - "Hitpoints": 2972, - "UpgradeTimeH": 120, - "UpgradeResource": "Elixir2", - "UpgradeCost": 3000000, - "RequiredTownHallLevel": 8, - "AttackRange": 600, - "AttackSpeed": 650, - "DPS": 126, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_battlecopter", - "BigPicture": "unit_battlecopter_big", - "BigPictureSWF": "sc/info_battlecopter.sc", - "SmallPicture": "icon_hero_battlecopter_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "BattleCopterProjectile", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 0, - "SleepOffsetY": "-100", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", - "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", - "AbilityIcon": "icon_hero_battlecopter_ability1", - "AbilityBigPictureExportName": "unit_battlecopter_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 76, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": 100, - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "BattleCopterDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", - "SpecialAbilitiesLevel": "1;1;1", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "20": { - "VisualLevel": 20, - "TID": "TID_HERO_BATTLE_COPTER", - "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", - "Speed": 180, - "Hitpoints": 3003, - "UpgradeTimeH": 120, - "UpgradeResource": "Elixir2", - "UpgradeCost": 3100000, - "RequiredTownHallLevel": 8, - "AttackRange": 600, - "AttackSpeed": 650, - "DPS": 130, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_battlecopter", - "BigPicture": "unit_battlecopter_big", - "BigPictureSWF": "sc/info_battlecopter.sc", - "SmallPicture": "icon_hero_battlecopter_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "BattleCopterProjectile", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 0, - "SleepOffsetY": "-100", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", - "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", - "AbilityIcon": "icon_hero_battlecopter_ability1", - "AbilityBigPictureExportName": "unit_battlecopter_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 86, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": 100, - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "BattleCopterDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", - "SpecialAbilitiesLevel": "2;2;2", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "21": { - "VisualLevel": 21, - "TID": "TID_HERO_BATTLE_COPTER", - "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", - "Speed": 180, - "Hitpoints": 3032, - "UpgradeTimeH": 120, - "UpgradeResource": "Elixir2", - "UpgradeCost": 3200000, - "RequiredTownHallLevel": 8, - "AttackRange": 600, - "AttackSpeed": 650, - "DPS": 134, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_battlecopter", - "BigPicture": "unit_battlecopter_big", - "BigPictureSWF": "sc/info_battlecopter.sc", - "SmallPicture": "icon_hero_battlecopter_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "BattleCopterProjectile", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 0, - "SleepOffsetY": "-100", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", - "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", - "AbilityIcon": "icon_hero_battlecopter_ability1", - "AbilityBigPictureExportName": "unit_battlecopter_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 88, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": 100, - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "BattleCopterDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", - "SpecialAbilitiesLevel": "2;2;2", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "22": { - "VisualLevel": 22, - "TID": "TID_HERO_BATTLE_COPTER", - "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", - "Speed": 180, - "Hitpoints": 3062, - "UpgradeTimeH": 120, - "UpgradeResource": "Elixir2", - "UpgradeCost": 3300000, - "RequiredTownHallLevel": 8, - "AttackRange": 600, - "AttackSpeed": 650, - "DPS": 137, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_battlecopter", - "BigPicture": "unit_battlecopter_big", - "BigPictureSWF": "sc/info_battlecopter.sc", - "SmallPicture": "icon_hero_battlecopter_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "BattleCopterProjectile", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 0, - "SleepOffsetY": "-100", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", - "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", - "AbilityIcon": "icon_hero_battlecopter_ability1", - "AbilityBigPictureExportName": "unit_battlecopter_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 91, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": 100, - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "BattleCopterDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", - "SpecialAbilitiesLevel": "2;2;2", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "23": { - "VisualLevel": 23, - "TID": "TID_HERO_BATTLE_COPTER", - "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", - "Speed": 180, - "Hitpoints": 3094, - "UpgradeTimeH": 120, - "UpgradeResource": "Elixir2", - "UpgradeCost": 3400000, - "RequiredTownHallLevel": 8, - "AttackRange": 600, - "AttackSpeed": 650, - "DPS": 141, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_battlecopter", - "BigPicture": "unit_battlecopter_big", - "BigPictureSWF": "sc/info_battlecopter.sc", - "SmallPicture": "icon_hero_battlecopter_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "BattleCopterProjectile", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 0, - "SleepOffsetY": "-100", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", - "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", - "AbilityIcon": "icon_hero_battlecopter_ability1", - "AbilityBigPictureExportName": "unit_battlecopter_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 95, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": 100, - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "BattleCopterDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", - "SpecialAbilitiesLevel": "2;2;2", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "24": { - "VisualLevel": 24, - "TID": "TID_HERO_BATTLE_COPTER", - "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", - "Speed": 180, - "Hitpoints": 3124, - "UpgradeTimeH": 120, - "UpgradeResource": "Elixir2", - "UpgradeCost": 3500000, - "RequiredTownHallLevel": 8, - "AttackRange": 600, - "AttackSpeed": 650, - "DPS": 144, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_battlecopter", - "BigPicture": "unit_battlecopter_big", - "BigPictureSWF": "sc/info_battlecopter.sc", - "SmallPicture": "icon_hero_battlecopter_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "BattleCopterProjectile", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 0, - "SleepOffsetY": "-100", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", - "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", - "AbilityIcon": "icon_hero_battlecopter_ability1", - "AbilityBigPictureExportName": "unit_battlecopter_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 98, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": 100, - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "BattleCopterDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", - "SpecialAbilitiesLevel": "2;2;2", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "25": { - "VisualLevel": 25, - "TID": "TID_HERO_BATTLE_COPTER", - "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", - "Speed": 180, - "Hitpoints": 3155, - "UpgradeTimeH": 144, - "UpgradeResource": "Elixir2", - "UpgradeCost": 3600000, - "RequiredTownHallLevel": 8, - "AttackRange": 600, - "AttackSpeed": 650, - "DPS": 148, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_battlecopter", - "BigPicture": "unit_battlecopter_big", - "BigPictureSWF": "sc/info_battlecopter.sc", - "SmallPicture": "icon_hero_battlecopter_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "BattleCopterProjectile", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 0, - "SleepOffsetY": "-100", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", - "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", - "AbilityIcon": "icon_hero_battlecopter_ability1", - "AbilityBigPictureExportName": "unit_battlecopter_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 108, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": 100, - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "BattleCopterDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", - "SpecialAbilitiesLevel": "3;3;3", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "26": { - "VisualLevel": 26, - "TID": "TID_HERO_BATTLE_COPTER", - "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", - "Speed": 180, - "Hitpoints": 3187, - "UpgradeTimeH": 144, - "UpgradeResource": "Elixir2", - "UpgradeCost": 3700000, - "RequiredTownHallLevel": 9, - "AttackRange": 600, - "AttackSpeed": 650, - "DPS": 153, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_battlecopter", - "BigPicture": "unit_battlecopter_big", - "BigPictureSWF": "sc/info_battlecopter.sc", - "SmallPicture": "icon_hero_battlecopter_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "BattleCopterProjectile", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 0, - "SleepOffsetY": "-100", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", - "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", - "AbilityIcon": "icon_hero_battlecopter_ability1", - "AbilityBigPictureExportName": "unit_battlecopter_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 112, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": 100, - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "BattleCopterDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", - "SpecialAbilitiesLevel": "3;3;3", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "27": { - "VisualLevel": 27, - "TID": "TID_HERO_BATTLE_COPTER", - "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", - "Speed": 180, - "Hitpoints": 3220, - "UpgradeTimeH": 144, - "UpgradeResource": "Elixir2", - "UpgradeCost": 3800000, - "RequiredTownHallLevel": 9, - "AttackRange": 600, - "AttackSpeed": 650, - "DPS": 157, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_battlecopter", - "BigPicture": "unit_battlecopter_big", - "BigPictureSWF": "sc/info_battlecopter.sc", - "SmallPicture": "icon_hero_battlecopter_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "BattleCopterProjectile", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 0, - "SleepOffsetY": "-100", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", - "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", - "AbilityIcon": "icon_hero_battlecopter_ability1", - "AbilityBigPictureExportName": "unit_battlecopter_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 116, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": 100, - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "BattleCopterDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", - "SpecialAbilitiesLevel": "3;3;3", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "28": { - "VisualLevel": 28, - "TID": "TID_HERO_BATTLE_COPTER", - "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", - "Speed": 180, - "Hitpoints": 3252, - "UpgradeTimeH": 144, - "UpgradeResource": "Elixir2", - "UpgradeCost": 3900000, - "RequiredTownHallLevel": 9, - "AttackRange": 600, - "AttackSpeed": 650, - "DPS": 162, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_battlecopter", - "BigPicture": "unit_battlecopter_big", - "BigPictureSWF": "sc/info_battlecopter.sc", - "SmallPicture": "icon_hero_battlecopter_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "BattleCopterProjectile", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 0, - "SleepOffsetY": "-100", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", - "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", - "AbilityIcon": "icon_hero_battlecopter_ability1", - "AbilityBigPictureExportName": "unit_battlecopter_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 120, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": 100, - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "BattleCopterDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", - "SpecialAbilitiesLevel": "3;3;3", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "29": { - "VisualLevel": 29, - "TID": "TID_HERO_BATTLE_COPTER", - "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", - "Speed": 180, - "Hitpoints": 3285, - "UpgradeTimeH": 144, - "UpgradeResource": "Elixir2", - "UpgradeCost": 4000000, - "RequiredTownHallLevel": 9, - "AttackRange": 600, - "AttackSpeed": 650, - "DPS": 166, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_battlecopter", - "BigPicture": "unit_battlecopter_big", - "BigPictureSWF": "sc/info_battlecopter.sc", - "SmallPicture": "icon_hero_battlecopter_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "BattleCopterProjectile", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 0, - "SleepOffsetY": "-100", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", - "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", - "AbilityIcon": "icon_hero_battlecopter_ability1", - "AbilityBigPictureExportName": "unit_battlecopter_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 125, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": 100, - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "BattleCopterDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", - "SpecialAbilitiesLevel": "3;3;3", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "30": { - "VisualLevel": 30, - "TID": "TID_HERO_BATTLE_COPTER", - "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", - "Speed": 180, - "Hitpoints": 3318, - "UpgradeTimeH": 168, - "UpgradeResource": "Elixir2", - "UpgradeCost": 4100000, - "RequiredTownHallLevel": 9, - "AttackRange": 600, - "AttackSpeed": 650, - "DPS": 171, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_battlecopter", - "BigPicture": "unit_battlecopter_big", - "BigPictureSWF": "sc/info_battlecopter.sc", - "SmallPicture": "icon_hero_battlecopter_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "BattleCopterProjectile", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 0, - "SleepOffsetY": "-100", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", - "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", - "AbilityIcon": "icon_hero_battlecopter_ability1", - "AbilityBigPictureExportName": "unit_battlecopter_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 136, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": 100, - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "BattleCopterDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", - "SpecialAbilitiesLevel": "4;4;4", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "31": { - "VisualLevel": 31, - "TID": "TID_HERO_BATTLE_COPTER", - "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", - "Speed": 180, - "Hitpoints": 3348, - "UpgradeTimeH": 168, - "UpgradeResource": "Elixir2", - "UpgradeCost": 4200000, - "RequiredTownHallLevel": 10, - "AttackRange": 600, - "AttackSpeed": 650, - "DPS": 175, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_battlecopter", - "BigPicture": "unit_battlecopter_big", - "BigPictureSWF": "sc/info_battlecopter.sc", - "SmallPicture": "icon_hero_battlecopter_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "BattleCopterProjectile", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 0, - "SleepOffsetY": "-100", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", - "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", - "AbilityIcon": "icon_hero_battlecopter_ability1", - "AbilityBigPictureExportName": "unit_battlecopter_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 141, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": 100, - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "BattleCopterDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", - "SpecialAbilitiesLevel": "4;4;4", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "32": { - "VisualLevel": 32, - "TID": "TID_HERO_BATTLE_COPTER", - "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", - "Speed": 180, - "Hitpoints": 3375, - "UpgradeTimeH": 168, - "UpgradeResource": "Elixir2", - "UpgradeCost": 4300000, - "RequiredTownHallLevel": 10, - "AttackRange": 600, - "AttackSpeed": 650, - "DPS": 180, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_battlecopter", - "BigPicture": "unit_battlecopter_big", - "BigPictureSWF": "sc/info_battlecopter.sc", - "SmallPicture": "icon_hero_battlecopter_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "BattleCopterProjectile", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 0, - "SleepOffsetY": "-100", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", - "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", - "AbilityIcon": "icon_hero_battlecopter_ability1", - "AbilityBigPictureExportName": "unit_battlecopter_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 146, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": 100, - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "BattleCopterDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", - "SpecialAbilitiesLevel": "4;4;4", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "33": { - "VisualLevel": 33, - "TID": "TID_HERO_BATTLE_COPTER", - "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", - "Speed": 180, - "Hitpoints": 3402, - "UpgradeTimeH": 168, - "UpgradeResource": "Elixir2", - "UpgradeCost": 4400000, - "RequiredTownHallLevel": 10, - "AttackRange": 600, - "AttackSpeed": 650, - "DPS": 184, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_battlecopter", - "BigPicture": "unit_battlecopter_big", - "BigPictureSWF": "sc/info_battlecopter.sc", - "SmallPicture": "icon_hero_battlecopter_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "BattleCopterProjectile", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 0, - "SleepOffsetY": "-100", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", - "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", - "AbilityIcon": "icon_hero_battlecopter_ability1", - "AbilityBigPictureExportName": "unit_battlecopter_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 152, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": 100, - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "BattleCopterDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", - "SpecialAbilitiesLevel": "4;4;4", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "34": { - "VisualLevel": 34, - "TID": "TID_HERO_BATTLE_COPTER", - "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", - "Speed": 180, - "Hitpoints": 3429, - "UpgradeTimeH": 168, - "UpgradeResource": "Elixir2", - "UpgradeCost": 4500000, - "RequiredTownHallLevel": 10, - "AttackRange": 600, - "AttackSpeed": 650, - "DPS": 189, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_battlecopter", - "BigPicture": "unit_battlecopter_big", - "BigPictureSWF": "sc/info_battlecopter.sc", - "SmallPicture": "icon_hero_battlecopter_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "BattleCopterProjectile", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 0, - "SleepOffsetY": "-100", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", - "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", - "AbilityIcon": "icon_hero_battlecopter_ability1", - "AbilityBigPictureExportName": "unit_battlecopter_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 157, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": 100, - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "BattleCopterDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", - "SpecialAbilitiesLevel": "4;4;4", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - }, - "35": { - "VisualLevel": 35, - "TID": "TID_HERO_BATTLE_COPTER", - "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", - "Speed": 180, - "Hitpoints": 3456, - "UpgradeTimeH": 168, - "UpgradeResource": "Elixir2", - "UpgradeCost": 4500000, - "RequiredTownHallLevel": 10, - "AttackRange": 600, - "AttackSpeed": 650, - "DPS": 193, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_hero_battlecopter", - "BigPicture": "unit_battlecopter_big", - "BigPictureSWF": "sc/info_battlecopter.sc", - "SmallPicture": "icon_hero_battlecopter_small", - "SmallPictureSWF": "sc/ui.sc", - "Projectile": "BattleCopterProjectile", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "IsJumper": false, - "MaxSearchRadiusForDefender": 900, - "HousingSpace": 25, - "SpecialAbilityEffect": "Building Ready", - "RegenerationTimeMinutes": 0, - "TrainingResource": "Elixir2", - "CelebrateEffect": "Warmachine Scream", - "SleepOffsetX": 0, - "SleepOffsetY": "-100", - "PatrolRadius": 300, - "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", - "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", - "AbilityIcon": "icon_hero_battlecopter_ability1", - "AbilityBigPictureExportName": "unit_battlecopter_ability_big", - "AbilityDelay": 0, - "StrengthWeight": 171, - "StrengthWeight2": 0, - "AlertRadius": 1200, - "FriendlyGroupWeight": 2100, - "EnemyGroupWeight": 2500, - "TargetedEffectOffset": 100, - "TriggersTraps": true, - "VillageType": 1, - "NoDefence": true, - "DefaultSkin": "BattleCopterDefault", - "UseAutoHeroAbility": true, - "Gender": "M", - "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", - "SpecialAbilitiesLevel": "5;5;5", - "AvoidNoiseInAttackPositionSelection": true, - "AbilityExtraPowerMaxLevel": 2 - } - } +{ + "Barbarian King": { + "1": { + "VisualLevel": 1, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 1445, + "UpgradeTimeH": 4, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 5000, + "RequiredTownHallLevel": 7, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 102, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 10, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 0, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 0, + "AbilitySpeedBoost2": 0, + "AbilityDamageBoostPercent": 0, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 0, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 20, + "StrengthWeight2": 10, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 1, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKing", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 1 + }, + "2": { + "VisualLevel": 2, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 1481, + "UpgradeTimeH": 6, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 6000, + "RequiredTownHallLevel": 7, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 104, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 10, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 0, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 0, + "AbilitySpeedBoost2": 0, + "AbilityDamageBoostPercent": 0, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 0, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 20, + "StrengthWeight2": 10, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 1, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKing", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 1 + }, + "3": { + "VisualLevel": 3, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 1518, + "UpgradeTimeH": 8, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 7000, + "RequiredTownHallLevel": 7, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 105, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 10, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 0, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 0, + "AbilitySpeedBoost2": 0, + "AbilityDamageBoostPercent": 0, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 0, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 20, + "StrengthWeight2": 10, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 1, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKing", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 1 + }, + "4": { + "VisualLevel": 4, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 1556, + "UpgradeTimeH": 10, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 8000, + "RequiredTownHallLevel": 7, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 108, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 10, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 0, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 0, + "AbilitySpeedBoost2": 0, + "AbilityDamageBoostPercent": 0, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 0, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 20, + "StrengthWeight2": 10, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 1, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKing", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 1 + }, + "5": { + "VisualLevel": 5, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 1595, + "UpgradeTimeH": 12, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 9000, + "RequiredTownHallLevel": 7, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 110, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 12, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 18, + "AbilitySpeedBoost2": 9, + "AbilityDamageBoostPercent": 120, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 6, + "AbilityDamageBoostOffset": 56, + "AbilityHealthIncrease": 500, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 21, + "StrengthWeight2": 11, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 2, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 1 + }, + "6": { + "VisualLevel": 6, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 1635, + "UpgradeTimeH": 14, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 10000, + "RequiredTownHallLevel": 7, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 112, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 12, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 18, + "AbilitySpeedBoost2": 9, + "AbilityDamageBoostPercent": 120, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 6, + "AbilityDamageBoostOffset": 56, + "AbilityHealthIncrease": 500, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 21, + "StrengthWeight2": 11, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 2, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 1 + }, + "7": { + "VisualLevel": 7, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 1675, + "UpgradeTimeH": 16, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 11000, + "RequiredTownHallLevel": 7, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 115, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 12, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 18, + "AbilitySpeedBoost2": 9, + "AbilityDamageBoostPercent": 120, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 6, + "AbilityDamageBoostOffset": 56, + "AbilityHealthIncrease": 500, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 21, + "StrengthWeight2": 11, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 2, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 1 + }, + "8": { + "VisualLevel": 8, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 1717, + "UpgradeTimeH": 18, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 12000, + "RequiredTownHallLevel": 7, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 116, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 12, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 18, + "AbilitySpeedBoost2": 9, + "AbilityDamageBoostPercent": 120, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 6, + "AbilityDamageBoostOffset": 56, + "AbilityHealthIncrease": 500, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 21, + "StrengthWeight2": 11, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 2, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 1 + }, + "9": { + "VisualLevel": 9, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 1760, + "UpgradeTimeH": 20, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 13000, + "RequiredTownHallLevel": 7, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 119, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 12, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 18, + "AbilitySpeedBoost2": 9, + "AbilityDamageBoostPercent": 120, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 6, + "AbilityDamageBoostOffset": 56, + "AbilityHealthIncrease": 500, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 21, + "StrengthWeight2": 11, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 2, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 1 + }, + "10": { + "VisualLevel": 10, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 1805, + "UpgradeTimeH": 22, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 14000, + "RequiredTownHallLevel": 7, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 122, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 14, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 19, + "AbilitySpeedBoost2": 9, + "AbilityDamageBoostPercent": 124, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 8, + "AbilityDamageBoostOffset": 101, + "AbilityHealthIncrease": 620, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 22, + "StrengthWeight2": 12, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 3, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 1 + }, + "11": { + "VisualLevel": 11, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 1850, + "UpgradeTimeH": 24, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 15000, + "RequiredTownHallLevel": 8, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 124, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 14, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 19, + "AbilitySpeedBoost2": 9, + "AbilityDamageBoostPercent": 124, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 8, + "AbilityDamageBoostOffset": 101, + "AbilityHealthIncrease": 620, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 22, + "StrengthWeight2": 12, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 3, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 2 + }, + "12": { + "VisualLevel": 12, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 1896, + "UpgradeTimeH": 24, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 16000, + "RequiredTownHallLevel": 8, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 127, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 14, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 19, + "AbilitySpeedBoost2": 9, + "AbilityDamageBoostPercent": 124, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 8, + "AbilityDamageBoostOffset": 101, + "AbilityHealthIncrease": 620, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 22, + "StrengthWeight2": 12, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 3, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 2 + }, + "13": { + "VisualLevel": 13, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 1943, + "UpgradeTimeH": 24, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 17000, + "RequiredTownHallLevel": 8, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 129, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 14, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 19, + "AbilitySpeedBoost2": 9, + "AbilityDamageBoostPercent": 124, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 8, + "AbilityDamageBoostOffset": 101, + "AbilityHealthIncrease": 620, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 22, + "StrengthWeight2": 12, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 3, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 2 + }, + "14": { + "VisualLevel": 14, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 1992, + "UpgradeTimeH": 24, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 18500, + "RequiredTownHallLevel": 8, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 132, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 14, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 19, + "AbilitySpeedBoost2": 9, + "AbilityDamageBoostPercent": 124, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 8, + "AbilityDamageBoostOffset": 101, + "AbilityHealthIncrease": 620, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 22, + "StrengthWeight2": 12, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 3, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 2 + }, + "15": { + "VisualLevel": 15, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 2042, + "UpgradeTimeH": 24, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 20000, + "RequiredTownHallLevel": 8, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 134, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 16, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 20, + "AbilitySpeedBoost2": 10, + "AbilityDamageBoostPercent": 128, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 10, + "AbilityDamageBoostOffset": 147, + "AbilityHealthIncrease": 752, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 23, + "StrengthWeight2": 13, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 4, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 2 + }, + "16": { + "VisualLevel": 16, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 2093, + "UpgradeTimeH": 36, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 21500, + "RequiredTownHallLevel": 8, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 137, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 16, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 20, + "AbilitySpeedBoost2": 10, + "AbilityDamageBoostPercent": 128, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 10, + "AbilityDamageBoostOffset": 147, + "AbilityHealthIncrease": 752, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 23, + "StrengthWeight2": 13, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 4, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 2 + }, + "17": { + "VisualLevel": 17, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 2145, + "UpgradeTimeH": 36, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 23000, + "RequiredTownHallLevel": 8, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 139, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 16, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 20, + "AbilitySpeedBoost2": 10, + "AbilityDamageBoostPercent": 128, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 10, + "AbilityDamageBoostOffset": 147, + "AbilityHealthIncrease": 752, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 23, + "StrengthWeight2": 13, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 4, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 2 + }, + "18": { + "VisualLevel": 18, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 2198, + "UpgradeTimeH": 36, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 24500, + "RequiredTownHallLevel": 8, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 143, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 16, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 20, + "AbilitySpeedBoost2": 10, + "AbilityDamageBoostPercent": 128, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 10, + "AbilityDamageBoostOffset": 147, + "AbilityHealthIncrease": 752, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 23, + "StrengthWeight2": 13, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 4, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 2 + }, + "19": { + "VisualLevel": 19, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 2253, + "UpgradeTimeH": 48, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 26000, + "RequiredTownHallLevel": 8, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 145, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 16, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 20, + "AbilitySpeedBoost2": 10, + "AbilityDamageBoostPercent": 128, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 10, + "AbilityDamageBoostOffset": 147, + "AbilityHealthIncrease": 752, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 23, + "StrengthWeight2": 13, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 4, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 2 + }, + "20": { + "VisualLevel": 20, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 2309, + "UpgradeTimeH": 48, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 28000, + "RequiredTownHallLevel": 8, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 148, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 18, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 21, + "AbilitySpeedBoost2": 10, + "AbilityDamageBoostPercent": 132, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 12, + "AbilityDamageBoostOffset": 195, + "AbilityHealthIncrease": 899, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 24, + "StrengthWeight2": 14, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 5, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 2 + }, + "21": { + "VisualLevel": 21, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 2367, + "UpgradeTimeH": 48, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 29000, + "RequiredTownHallLevel": 9, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 151, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 18, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 21, + "AbilitySpeedBoost2": 10, + "AbilityDamageBoostPercent": 132, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 12, + "AbilityDamageBoostOffset": 195, + "AbilityHealthIncrease": 899, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 24, + "StrengthWeight2": 14, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 5, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 3 + }, + "22": { + "VisualLevel": 22, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 2427, + "UpgradeTimeH": 48, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 31000, + "RequiredTownHallLevel": 9, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 154, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 18, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 21, + "AbilitySpeedBoost2": 10, + "AbilityDamageBoostPercent": 132, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 12, + "AbilityDamageBoostOffset": 195, + "AbilityHealthIncrease": 899, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 24, + "StrengthWeight2": 14, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 5, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 3 + }, + "23": { + "VisualLevel": 23, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 2487, + "UpgradeTimeH": 48, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 32000, + "RequiredTownHallLevel": 9, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 157, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 18, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 21, + "AbilitySpeedBoost2": 10, + "AbilityDamageBoostPercent": 132, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 12, + "AbilityDamageBoostOffset": 195, + "AbilityHealthIncrease": 899, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 24, + "StrengthWeight2": 14, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 5, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 3 + }, + "24": { + "VisualLevel": 24, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 2549, + "UpgradeTimeH": 60, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 34000, + "RequiredTownHallLevel": 9, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 161, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 18, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 21, + "AbilitySpeedBoost2": 10, + "AbilityDamageBoostPercent": 132, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 12, + "AbilityDamageBoostOffset": 195, + "AbilityHealthIncrease": 899, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 24, + "StrengthWeight2": 14, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 5, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 3 + }, + "25": { + "VisualLevel": 25, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 2613, + "UpgradeTimeH": 60, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 35000, + "RequiredTownHallLevel": 9, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 164, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 20, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 22, + "AbilitySpeedBoost2": 11, + "AbilityDamageBoostPercent": 136, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 14, + "AbilityDamageBoostOffset": 245, + "AbilityHealthIncrease": 1063, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 25, + "StrengthWeight2": 15, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 6, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 3 + }, + "26": { + "VisualLevel": 26, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 2678, + "UpgradeTimeH": 60, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 37000, + "RequiredTownHallLevel": 9, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 167, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 20, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 22, + "AbilitySpeedBoost2": 11, + "AbilityDamageBoostPercent": 136, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 14, + "AbilityDamageBoostOffset": 245, + "AbilityHealthIncrease": 1063, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 25, + "StrengthWeight2": 15, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 6, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 4 + }, + "27": { + "VisualLevel": 27, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 2746, + "UpgradeTimeH": 60, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 38000, + "RequiredTownHallLevel": 9, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 170, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 20, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 22, + "AbilitySpeedBoost2": 11, + "AbilityDamageBoostPercent": 136, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 14, + "AbilityDamageBoostOffset": 245, + "AbilityHealthIncrease": 1063, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 25, + "StrengthWeight2": 15, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 6, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 4 + }, + "28": { + "VisualLevel": 28, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 2814, + "UpgradeTimeH": 60, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 40000, + "RequiredTownHallLevel": 9, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 173, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 20, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 22, + "AbilitySpeedBoost2": 11, + "AbilityDamageBoostPercent": 136, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 14, + "AbilityDamageBoostOffset": 245, + "AbilityHealthIncrease": 1063, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 25, + "StrengthWeight2": 15, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 6, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 4 + }, + "29": { + "VisualLevel": 29, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 2885, + "UpgradeTimeH": 72, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 41000, + "RequiredTownHallLevel": 9, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 177, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 20, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 22, + "AbilitySpeedBoost2": 11, + "AbilityDamageBoostPercent": 136, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 14, + "AbilityDamageBoostOffset": 245, + "AbilityHealthIncrease": 1063, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 25, + "StrengthWeight2": 15, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 6, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 4 + }, + "30": { + "VisualLevel": 30, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 2956, + "UpgradeTimeH": 72, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 43000, + "RequiredTownHallLevel": 9, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 181, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 22, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 23, + "AbilitySpeedBoost2": 11, + "AbilityDamageBoostPercent": 140, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 16, + "AbilityDamageBoostOffset": 298, + "AbilityHealthIncrease": 1247, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 26, + "StrengthWeight2": 16, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 7, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 4 + }, + "31": { + "VisualLevel": 31, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 3030, + "UpgradeTimeH": 72, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 44000, + "RequiredTownHallLevel": 10, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 184, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 22, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 23, + "AbilitySpeedBoost2": 11, + "AbilityDamageBoostPercent": 140, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 16, + "AbilityDamageBoostOffset": 298, + "AbilityHealthIncrease": 1247, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 26, + "StrengthWeight2": 16, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 7, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 5 + }, + "32": { + "VisualLevel": 32, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 3107, + "UpgradeTimeH": 72, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 46000, + "RequiredTownHallLevel": 10, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 188, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 22, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 23, + "AbilitySpeedBoost2": 11, + "AbilityDamageBoostPercent": 140, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 16, + "AbilityDamageBoostOffset": 298, + "AbilityHealthIncrease": 1247, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 26, + "StrengthWeight2": 16, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 7, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 5 + }, + "33": { + "VisualLevel": 33, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 3184, + "UpgradeTimeH": 72, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 47000, + "RequiredTownHallLevel": 10, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 192, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 22, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 23, + "AbilitySpeedBoost2": 11, + "AbilityDamageBoostPercent": 140, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 16, + "AbilityDamageBoostOffset": 298, + "AbilityHealthIncrease": 1247, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 26, + "StrengthWeight2": 16, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 7, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 5 + }, + "34": { + "VisualLevel": 34, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 3264, + "UpgradeTimeH": 84, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 49000, + "RequiredTownHallLevel": 10, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 196, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 22, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 23, + "AbilitySpeedBoost2": 11, + "AbilityDamageBoostPercent": 140, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 16, + "AbilityDamageBoostOffset": 298, + "AbilityHealthIncrease": 1247, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 26, + "StrengthWeight2": 16, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 7, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 5 + }, + "35": { + "VisualLevel": 35, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 3346, + "UpgradeTimeH": 84, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 50000, + "RequiredTownHallLevel": 10, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 200, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 24, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 24, + "AbilitySpeedBoost2": 12, + "AbilityDamageBoostPercent": 144, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 18, + "AbilityDamageBoostOffset": 354, + "AbilityHealthIncrease": 1455, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 27, + "StrengthWeight2": 17, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 8, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 5 + }, + "36": { + "VisualLevel": 36, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 3429, + "UpgradeTimeH": 84, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 52000, + "RequiredTownHallLevel": 10, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 203, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 24, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 24, + "AbilitySpeedBoost2": 12, + "AbilityDamageBoostPercent": 144, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 18, + "AbilityDamageBoostOffset": 354, + "AbilityHealthIncrease": 1455, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 27, + "StrengthWeight2": 17, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 8, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 6 + }, + "37": { + "VisualLevel": 37, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 3515, + "UpgradeTimeH": 84, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 53000, + "RequiredTownHallLevel": 10, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 207, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 24, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 24, + "AbilitySpeedBoost2": 12, + "AbilityDamageBoostPercent": 144, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 18, + "AbilityDamageBoostOffset": 354, + "AbilityHealthIncrease": 1455, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 27, + "StrengthWeight2": 17, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 8, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 6 + }, + "38": { + "VisualLevel": 38, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 3602, + "UpgradeTimeH": 84, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 55000, + "RequiredTownHallLevel": 10, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 212, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 24, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 24, + "AbilitySpeedBoost2": 12, + "AbilityDamageBoostPercent": 144, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 18, + "AbilityDamageBoostOffset": 354, + "AbilityHealthIncrease": 1455, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 27, + "StrengthWeight2": 17, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 8, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 6 + }, + "39": { + "VisualLevel": 39, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 3692, + "UpgradeTimeH": 96, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 56000, + "RequiredTownHallLevel": 10, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 216, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 24, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 24, + "AbilitySpeedBoost2": 12, + "AbilityDamageBoostPercent": 144, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 18, + "AbilityDamageBoostOffset": 354, + "AbilityHealthIncrease": 1455, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 27, + "StrengthWeight2": 17, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 8, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 6 + }, + "40": { + "VisualLevel": 40, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 3785, + "UpgradeTimeH": 96, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 60000, + "RequiredTownHallLevel": 10, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 220, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 26, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 25, + "AbilitySpeedBoost2": 12, + "AbilityDamageBoostPercent": 150, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 20, + "AbilityDamageBoostOffset": 414, + "AbilityHealthIncrease": 1692, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 28, + "StrengthWeight2": 18, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 9, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 6 + }, + "41": { + "VisualLevel": 41, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 3879, + "UpgradeTimeH": 96, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 64000, + "RequiredTownHallLevel": 11, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 234, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 26, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 25, + "AbilitySpeedBoost2": 12, + "AbilityDamageBoostPercent": 150, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 20, + "AbilityDamageBoostOffset": 414, + "AbilityHealthIncrease": 1692, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 28, + "StrengthWeight2": 18, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 9, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 7 + }, + "42": { + "VisualLevel": 42, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 3976, + "UpgradeTimeH": 96, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 68000, + "RequiredTownHallLevel": 11, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 239, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 26, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 25, + "AbilitySpeedBoost2": 12, + "AbilityDamageBoostPercent": 150, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 20, + "AbilityDamageBoostOffset": 414, + "AbilityHealthIncrease": 1692, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 28, + "StrengthWeight2": 18, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 9, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 7 + }, + "43": { + "VisualLevel": 43, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 4076, + "UpgradeTimeH": 96, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 72000, + "RequiredTownHallLevel": 11, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 244, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 26, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 25, + "AbilitySpeedBoost2": 12, + "AbilityDamageBoostPercent": 150, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 20, + "AbilityDamageBoostOffset": 414, + "AbilityHealthIncrease": 1692, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 28, + "StrengthWeight2": 18, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 9, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 7 + }, + "44": { + "VisualLevel": 44, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 4178, + "UpgradeTimeH": 120, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 76000, + "RequiredTownHallLevel": 11, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 249, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 26, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 25, + "AbilitySpeedBoost2": 12, + "AbilityDamageBoostPercent": 150, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 20, + "AbilityDamageBoostOffset": 414, + "AbilityHealthIncrease": 1692, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 28, + "StrengthWeight2": 18, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 9, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 7 + }, + "45": { + "VisualLevel": 45, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 4282, + "UpgradeTimeH": 120, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 80000, + "RequiredTownHallLevel": 11, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 254, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 28, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 26, + "AbilitySpeedBoost2": 13, + "AbilityDamageBoostPercent": 155, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 22, + "AbilityDamageBoostOffset": 478, + "AbilityHealthIncrease": 1963, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 29, + "StrengthWeight2": 19, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 10, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 7 + }, + "46": { + "VisualLevel": 46, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 4389, + "UpgradeTimeH": 120, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 84000, + "RequiredTownHallLevel": 11, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 259, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 28, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 26, + "AbilitySpeedBoost2": 13, + "AbilityDamageBoostPercent": 155, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 22, + "AbilityDamageBoostOffset": 478, + "AbilityHealthIncrease": 1963, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 29, + "StrengthWeight2": 19, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 10, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 8 + }, + "47": { + "VisualLevel": 47, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 4499, + "UpgradeTimeH": 120, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 88000, + "RequiredTownHallLevel": 11, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 265, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 28, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 26, + "AbilitySpeedBoost2": 13, + "AbilityDamageBoostPercent": 155, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 22, + "AbilityDamageBoostOffset": 478, + "AbilityHealthIncrease": 1963, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 29, + "StrengthWeight2": 19, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 10, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 8 + }, + "48": { + "VisualLevel": 48, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 4611, + "UpgradeTimeH": 120, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 92000, + "RequiredTownHallLevel": 11, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 270, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 28, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 26, + "AbilitySpeedBoost2": 13, + "AbilityDamageBoostPercent": 155, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 22, + "AbilityDamageBoostOffset": 478, + "AbilityHealthIncrease": 1963, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 29, + "StrengthWeight2": 19, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 10, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 8 + }, + "49": { + "VisualLevel": 49, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 4727, + "UpgradeTimeH": 120, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 96000, + "RequiredTownHallLevel": 11, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 276, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 28, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 26, + "AbilitySpeedBoost2": 13, + "AbilityDamageBoostPercent": 155, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 22, + "AbilityDamageBoostOffset": 478, + "AbilityHealthIncrease": 1963, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 29, + "StrengthWeight2": 19, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 10, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 8 + }, + "50": { + "VisualLevel": 50, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 4845, + "UpgradeTimeH": 132, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 100000, + "RequiredTownHallLevel": 11, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 282, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 30, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 27, + "AbilitySpeedBoost2": 14, + "AbilityDamageBoostPercent": 160, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 24, + "AbilityDamageBoostOffset": 546, + "AbilityHealthIncrease": 2263, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 30, + "StrengthWeight2": 20, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 11, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 8 + }, + "51": { + "VisualLevel": 51, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 4967, + "UpgradeTimeH": 132, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 105000, + "RequiredTownHallLevel": 12, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 288, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 30, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 27, + "AbilitySpeedBoost2": 14, + "AbilityDamageBoostPercent": 160, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 24, + "AbilityDamageBoostOffset": 546, + "AbilityHealthIncrease": 2263, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 30, + "StrengthWeight2": 20, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 11, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 9 + }, + "52": { + "VisualLevel": 52, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 5092, + "UpgradeTimeH": 132, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 110000, + "RequiredTownHallLevel": 12, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 294, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 30, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 27, + "AbilitySpeedBoost2": 14, + "AbilityDamageBoostPercent": 160, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 24, + "AbilityDamageBoostOffset": 546, + "AbilityHealthIncrease": 2263, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 30, + "StrengthWeight2": 20, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 11, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 9 + }, + "53": { + "VisualLevel": 53, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 5219, + "UpgradeTimeH": 132, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 115000, + "RequiredTownHallLevel": 12, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 300, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 30, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 27, + "AbilitySpeedBoost2": 14, + "AbilityDamageBoostPercent": 160, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 24, + "AbilityDamageBoostOffset": 546, + "AbilityHealthIncrease": 2263, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 30, + "StrengthWeight2": 20, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 11, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 9 + }, + "54": { + "VisualLevel": 54, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 5350, + "UpgradeTimeH": 132, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 120000, + "RequiredTownHallLevel": 12, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 307, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 30, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 27, + "AbilitySpeedBoost2": 14, + "AbilityDamageBoostPercent": 160, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 24, + "AbilityDamageBoostOffset": 546, + "AbilityHealthIncrease": 2263, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 30, + "StrengthWeight2": 20, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 11, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 9 + }, + "55": { + "VisualLevel": 55, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 5484, + "UpgradeTimeH": 138, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 125000, + "RequiredTownHallLevel": 12, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 314, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 32, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 28, + "AbilitySpeedBoost2": 15, + "AbilityDamageBoostPercent": 165, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 26, + "AbilityDamageBoostOffset": 618, + "AbilityHealthIncrease": 2592, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 31, + "StrengthWeight2": 21, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 12, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 9 + }, + "56": { + "VisualLevel": 56, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 5622, + "UpgradeTimeH": 138, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 130000, + "RequiredTownHallLevel": 12, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 320, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 32, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 28, + "AbilitySpeedBoost2": 15, + "AbilityDamageBoostPercent": 165, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 26, + "AbilityDamageBoostOffset": 618, + "AbilityHealthIncrease": 2592, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 31, + "StrengthWeight2": 21, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 12, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 10 + }, + "57": { + "VisualLevel": 57, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 5763, + "UpgradeTimeH": 138, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 135000, + "RequiredTownHallLevel": 12, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 327, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 32, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 28, + "AbilitySpeedBoost2": 15, + "AbilityDamageBoostPercent": 165, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 26, + "AbilityDamageBoostOffset": 618, + "AbilityHealthIncrease": 2592, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 31, + "StrengthWeight2": 21, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 12, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 10 + }, + "58": { + "VisualLevel": 58, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 5908, + "UpgradeTimeH": 138, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 140000, + "RequiredTownHallLevel": 12, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 334, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 32, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 28, + "AbilitySpeedBoost2": 15, + "AbilityDamageBoostPercent": 165, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 26, + "AbilityDamageBoostOffset": 618, + "AbilityHealthIncrease": 2592, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 31, + "StrengthWeight2": 21, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 12, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 10 + }, + "59": { + "VisualLevel": 59, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 6055, + "UpgradeTimeH": 138, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 145000, + "RequiredTownHallLevel": 12, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 341, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 32, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 28, + "AbilitySpeedBoost2": 15, + "AbilityDamageBoostPercent": 165, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 26, + "AbilityDamageBoostOffset": 618, + "AbilityHealthIncrease": 2592, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 31, + "StrengthWeight2": 21, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 12, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 10 + }, + "60": { + "VisualLevel": 60, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 6208, + "UpgradeTimeH": 144, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 150000, + "RequiredTownHallLevel": 12, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 349, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 34, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 29, + "AbilitySpeedBoost2": 16, + "AbilityDamageBoostPercent": 170, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 28, + "AbilityDamageBoostOffset": 694, + "AbilityHealthIncrease": 2980, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 32, + "StrengthWeight2": 22, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 13, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 10 + }, + "61": { + "VisualLevel": 61, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 6363, + "UpgradeTimeH": 144, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 155000, + "RequiredTownHallLevel": 12, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 355, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 34, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 29, + "AbilitySpeedBoost2": 16, + "AbilityDamageBoostPercent": 170, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 28, + "AbilityDamageBoostOffset": 694, + "AbilityHealthIncrease": 2980, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 32, + "StrengthWeight2": 22, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 13, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 11 + }, + "62": { + "VisualLevel": 62, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 6522, + "UpgradeTimeH": 144, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 160000, + "RequiredTownHallLevel": 12, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 362, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 34, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 29, + "AbilitySpeedBoost2": 16, + "AbilityDamageBoostPercent": 170, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 28, + "AbilityDamageBoostOffset": 694, + "AbilityHealthIncrease": 2980, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 32, + "StrengthWeight2": 22, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 13, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 11 + }, + "63": { + "VisualLevel": 63, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 6685, + "UpgradeTimeH": 144, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 165000, + "RequiredTownHallLevel": 12, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 370, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 34, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 29, + "AbilitySpeedBoost2": 16, + "AbilityDamageBoostPercent": 170, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 28, + "AbilityDamageBoostOffset": 694, + "AbilityHealthIncrease": 2980, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 32, + "StrengthWeight2": 22, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 13, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 11 + }, + "64": { + "VisualLevel": 64, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 6853, + "UpgradeTimeH": 144, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 170000, + "RequiredTownHallLevel": 12, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 377, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 34, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 29, + "AbilitySpeedBoost2": 16, + "AbilityDamageBoostPercent": 170, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 28, + "AbilityDamageBoostOffset": 694, + "AbilityHealthIncrease": 2980, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 32, + "StrengthWeight2": 22, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 13, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 11 + }, + "65": { + "VisualLevel": 65, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 7024, + "UpgradeTimeH": 156, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 175000, + "RequiredTownHallLevel": 12, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 385, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 36, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 30, + "AbilitySpeedBoost2": 17, + "AbilityDamageBoostPercent": 175, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 30, + "AbilityDamageBoostOffset": 770, + "AbilityHealthIncrease": 3400, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 33, + "StrengthWeight2": 22, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 14, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 11 + }, + "66": { + "VisualLevel": 66, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 7200, + "UpgradeTimeH": 156, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 180000, + "RequiredTownHallLevel": 13, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 393, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 36, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 30, + "AbilitySpeedBoost2": 17, + "AbilityDamageBoostPercent": 175, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 30, + "AbilityDamageBoostOffset": 770, + "AbilityHealthIncrease": 3400, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 33, + "StrengthWeight2": 22, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 14, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 12 + }, + "67": { + "VisualLevel": 67, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 7378, + "UpgradeTimeH": 156, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 185000, + "RequiredTownHallLevel": 13, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 400, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 36, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 30, + "AbilitySpeedBoost2": 17, + "AbilityDamageBoostPercent": 175, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 30, + "AbilityDamageBoostOffset": 770, + "AbilityHealthIncrease": 3400, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 33, + "StrengthWeight2": 22, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 14, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 12 + }, + "68": { + "VisualLevel": 68, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 7557, + "UpgradeTimeH": 156, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 190000, + "RequiredTownHallLevel": 13, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 408, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 36, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 30, + "AbilitySpeedBoost2": 17, + "AbilityDamageBoostPercent": 175, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 30, + "AbilityDamageBoostOffset": 770, + "AbilityHealthIncrease": 3400, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 33, + "StrengthWeight2": 22, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 14, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 12 + }, + "69": { + "VisualLevel": 69, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 7735, + "UpgradeTimeH": 156, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 195000, + "RequiredTownHallLevel": 13, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 417, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 36, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 30, + "AbilitySpeedBoost2": 17, + "AbilityDamageBoostPercent": 175, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 30, + "AbilityDamageBoostOffset": 770, + "AbilityHealthIncrease": 3400, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 33, + "StrengthWeight2": 22, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 14, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 12 + }, + "70": { + "VisualLevel": 70, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 7905, + "UpgradeTimeH": 168, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 200000, + "RequiredTownHallLevel": 13, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 425, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 38, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 31, + "AbilitySpeedBoost2": 18, + "AbilityDamageBoostPercent": 180, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 32, + "AbilityDamageBoostOffset": 846, + "AbilityHealthIncrease": 3850, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 34, + "StrengthWeight2": 22, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 15, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 12 + }, + "71": { + "VisualLevel": 71, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 8075, + "UpgradeTimeH": 168, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 205000, + "RequiredTownHallLevel": 13, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 434, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 38, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 31, + "AbilitySpeedBoost2": 18, + "AbilityDamageBoostPercent": 180, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 32, + "AbilityDamageBoostOffset": 846, + "AbilityHealthIncrease": 3850, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 34, + "StrengthWeight2": 22, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 15, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 13 + }, + "72": { + "VisualLevel": 72, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 8245, + "UpgradeTimeH": 168, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 210000, + "RequiredTownHallLevel": 13, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 442, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 38, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 31, + "AbilitySpeedBoost2": 18, + "AbilityDamageBoostPercent": 180, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 32, + "AbilityDamageBoostOffset": 846, + "AbilityHealthIncrease": 3850, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 34, + "StrengthWeight2": 22, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 15, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 13 + }, + "73": { + "VisualLevel": 73, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 8415, + "UpgradeTimeH": 168, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 215000, + "RequiredTownHallLevel": 13, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 451, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 38, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 31, + "AbilitySpeedBoost2": 18, + "AbilityDamageBoostPercent": 180, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 32, + "AbilityDamageBoostOffset": 846, + "AbilityHealthIncrease": 3850, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 34, + "StrengthWeight2": 22, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 15, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 13 + }, + "74": { + "VisualLevel": 74, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 8585, + "UpgradeTimeH": 168, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 220000, + "RequiredTownHallLevel": 13, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 459, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 38, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 31, + "AbilitySpeedBoost2": 18, + "AbilityDamageBoostPercent": 180, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 32, + "AbilityDamageBoostOffset": 846, + "AbilityHealthIncrease": 3850, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 34, + "StrengthWeight2": 22, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 15, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 13 + }, + "75": { + "VisualLevel": 75, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 8755, + "UpgradeTimeH": 180, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 225000, + "RequiredTownHallLevel": 13, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 468, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 40, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 32, + "AbilitySpeedBoost2": 19, + "AbilityDamageBoostPercent": 185, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 34, + "AbilityDamageBoostOffset": 922, + "AbilityHealthIncrease": 4300, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 35, + "StrengthWeight2": 23, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 16, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 13 + }, + "76": { + "VisualLevel": 76, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 8917, + "UpgradeTimeH": 180, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 230000, + "RequiredTownHallLevel": 14, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 475, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 40, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 32, + "AbilitySpeedBoost2": 19, + "AbilityDamageBoostPercent": 185, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 34, + "AbilityDamageBoostOffset": 922, + "AbilityHealthIncrease": 4300, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 35, + "StrengthWeight2": 23, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 16, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 14 + }, + "77": { + "VisualLevel": 77, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 9078, + "UpgradeTimeH": 180, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 235000, + "RequiredTownHallLevel": 14, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 483, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 40, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 32, + "AbilitySpeedBoost2": 19, + "AbilityDamageBoostPercent": 185, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 34, + "AbilityDamageBoostOffset": 922, + "AbilityHealthIncrease": 4300, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 35, + "StrengthWeight2": 23, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 16, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 14 + }, + "78": { + "VisualLevel": 78, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 9240, + "UpgradeTimeH": 180, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 240000, + "RequiredTownHallLevel": 14, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 490, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 40, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 32, + "AbilitySpeedBoost2": 19, + "AbilityDamageBoostPercent": 185, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 34, + "AbilityDamageBoostOffset": 922, + "AbilityHealthIncrease": 4300, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 35, + "StrengthWeight2": 23, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 16, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 14 + }, + "79": { + "VisualLevel": 79, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 9401, + "UpgradeTimeH": 180, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 245000, + "RequiredTownHallLevel": 14, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 498, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 40, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 32, + "AbilitySpeedBoost2": 19, + "AbilityDamageBoostPercent": 185, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 34, + "AbilityDamageBoostOffset": 922, + "AbilityHealthIncrease": 4300, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 35, + "StrengthWeight2": 23, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 16, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 14 + }, + "80": { + "VisualLevel": 80, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 9563, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 250000, + "RequiredTownHallLevel": 14, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 506, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 42, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 33, + "AbilitySpeedBoost2": 20, + "AbilityDamageBoostPercent": 190, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 36, + "AbilityDamageBoostOffset": 990, + "AbilityHealthIncrease": 4700, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 36, + "StrengthWeight2": 23, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 17, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 14 + }, + "81": { + "VisualLevel": 81, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 9690, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 255000, + "RequiredTownHallLevel": 15, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 513, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 42, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 33, + "AbilitySpeedBoost2": 20, + "AbilityDamageBoostPercent": 190, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 36, + "AbilityDamageBoostOffset": 990, + "AbilityHealthIncrease": 4700, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 36, + "StrengthWeight2": 23, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 17, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 15 + }, + "82": { + "VisualLevel": 82, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 9818, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 260000, + "RequiredTownHallLevel": 15, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 519, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 42, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 33, + "AbilitySpeedBoost2": 20, + "AbilityDamageBoostPercent": 190, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 36, + "AbilityDamageBoostOffset": 990, + "AbilityHealthIncrease": 4700, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 36, + "StrengthWeight2": 23, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 17, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 15 + }, + "83": { + "VisualLevel": 83, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 9945, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 265000, + "RequiredTownHallLevel": 15, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 526, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 42, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 33, + "AbilitySpeedBoost2": 20, + "AbilityDamageBoostPercent": 190, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 36, + "AbilityDamageBoostOffset": 990, + "AbilityHealthIncrease": 4700, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 36, + "StrengthWeight2": 23, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 17, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 15 + }, + "84": { + "VisualLevel": 84, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 10073, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 270000, + "RequiredTownHallLevel": 15, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 533, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 42, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 33, + "AbilitySpeedBoost2": 20, + "AbilityDamageBoostPercent": 190, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 36, + "AbilityDamageBoostOffset": 990, + "AbilityHealthIncrease": 4700, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 36, + "StrengthWeight2": 23, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 17, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 15 + }, + "85": { + "VisualLevel": 85, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 10200, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 275000, + "RequiredTownHallLevel": 15, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 540, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 44, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 34, + "AbilitySpeedBoost2": 21, + "AbilityDamageBoostPercent": 195, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 38, + "AbilityDamageBoostOffset": 1050, + "AbilityHealthIncrease": 5000, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 37, + "StrengthWeight2": 23, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 18, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 15 + }, + "86": { + "VisualLevel": 86, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 10328, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 278000, + "RequiredTownHallLevel": 15, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 547, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 44, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 34, + "AbilitySpeedBoost2": 21, + "AbilityDamageBoostPercent": 195, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 38, + "AbilityDamageBoostOffset": 1050, + "AbilityHealthIncrease": 5000, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 37, + "StrengthWeight2": 23, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 18, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 15 + }, + "87": { + "VisualLevel": 87, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 10455, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 280000, + "RequiredTownHallLevel": 15, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 553, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 44, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 34, + "AbilitySpeedBoost2": 21, + "AbilityDamageBoostPercent": 195, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 38, + "AbilityDamageBoostOffset": 1050, + "AbilityHealthIncrease": 5000, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 37, + "StrengthWeight2": 23, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 18, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 15 + }, + "88": { + "VisualLevel": 88, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 10583, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 282000, + "RequiredTownHallLevel": 15, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 560, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 44, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 34, + "AbilitySpeedBoost2": 21, + "AbilityDamageBoostPercent": 195, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 38, + "AbilityDamageBoostOffset": 1050, + "AbilityHealthIncrease": 5000, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 37, + "StrengthWeight2": 23, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 18, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 15 + }, + "89": { + "VisualLevel": 89, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 10710, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 285000, + "RequiredTownHallLevel": 15, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 567, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 44, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 34, + "AbilitySpeedBoost2": 21, + "AbilityDamageBoostPercent": 195, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 38, + "AbilityDamageBoostOffset": 1050, + "AbilityHealthIncrease": 5000, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 37, + "StrengthWeight2": 23, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 18, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 15 + }, + "90": { + "VisualLevel": 90, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 10838, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 290000, + "RequiredTownHallLevel": 15, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 574, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 46, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 35, + "AbilitySpeedBoost2": 22, + "AbilityDamageBoostPercent": 200, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 40, + "AbilityDamageBoostOffset": 1100, + "AbilityHealthIncrease": 5300, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 38, + "StrengthWeight2": 23, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 19, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 15 + }, + "91": { + "VisualLevel": 91, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 10965, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 300000, + "RequiredTownHallLevel": 16, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 581, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 46, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 35, + "AbilitySpeedBoost2": 22, + "AbilityDamageBoostPercent": 200, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 40, + "AbilityDamageBoostOffset": 1100, + "AbilityHealthIncrease": 5300, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 38, + "StrengthWeight2": 23, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 19, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 15 + }, + "92": { + "VisualLevel": 92, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 11093, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 310000, + "RequiredTownHallLevel": 16, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 587, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 46, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 35, + "AbilitySpeedBoost2": 22, + "AbilityDamageBoostPercent": 200, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 40, + "AbilityDamageBoostOffset": 1100, + "AbilityHealthIncrease": 5300, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 38, + "StrengthWeight2": 23, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 19, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 15 + }, + "93": { + "VisualLevel": 93, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 11220, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 320000, + "RequiredTownHallLevel": 16, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 594, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 46, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 35, + "AbilitySpeedBoost2": 22, + "AbilityDamageBoostPercent": 200, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 40, + "AbilityDamageBoostOffset": 1100, + "AbilityHealthIncrease": 5300, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 38, + "StrengthWeight2": 23, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 19, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 15 + }, + "94": { + "VisualLevel": 94, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 11348, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 330000, + "RequiredTownHallLevel": 16, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 601, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 46, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 35, + "AbilitySpeedBoost2": 22, + "AbilityDamageBoostPercent": 200, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 40, + "AbilityDamageBoostOffset": 1100, + "AbilityHealthIncrease": 5300, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 38, + "StrengthWeight2": 23, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 19, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 15 + }, + "95": { + "VisualLevel": 95, + "TID": "TID_BARBARIAN_KING", + "InfoTID": "TID_HERO_INSTRUCTIONS_BARBARIAN", + "Speed": 200, + "Hitpoints": 11475, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 330000, + "RequiredTownHallLevel": 16, + "AttackRange": 100, + "AttackSpeed": 1200, + "DPS": 608, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_barbarianKing", + "BigPicture": "unit_barbarianKing_big", + "BigPictureSWF": "sc/info_barbarian.sc", + "SmallPicture": "unit_barbarianKing_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Barbarian King Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 21, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 48, + "TrainingResource": "Elixir", + "CelebrateEffect": "Barbarian King Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 10000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySpeedBoost": 36, + "AbilitySpeedBoost2": 23, + "AbilityDamageBoostPercent": 205, + "AbilitySummonTroop": "Barbarian", + "AbilitySummonTroopCount": 42, + "AbilityDamageBoostOffset": 1150, + "AbilityHealthIncrease": 5600, + "AbilityTID": "TID_HERO_ABILITY_BARBARIAN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_BARBARIAN_DESC", + "AbilityIcon": "icon_hero_barbarianKing_ability1", + "AbilityBigPictureExportName": "unit_barbarianKing_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 39, + "StrengthWeight2": 23, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "AbilityAffectsSummonedUnits": true, + "DefaultSkin": "BarbarianKingDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "BarbarianKingAbilityHeal", + "SpecialAbilitiesLevel": 20, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroKingLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Barbarian Crown; Iron Fist;", + "MigrationGearLevel": 15 + } + }, + "Archer Queen": { + "1": { + "VisualLevel": 1, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 580, + "UpgradeTimeH": 4, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 10000, + "RequiredTownHallLevel": 9, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 136, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl1", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 10, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 0, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 0, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 50, + "StrengthWeight2": 28, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 1, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueen", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 1 + }, + "2": { + "VisualLevel": 2, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 592, + "UpgradeTimeH": 6, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 11000, + "RequiredTownHallLevel": 9, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 139, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl1", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 10, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 0, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 0, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 50, + "StrengthWeight2": 28, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 1, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueen", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 1 + }, + "3": { + "VisualLevel": 3, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 604, + "UpgradeTimeH": 8, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 12000, + "RequiredTownHallLevel": 9, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 143, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl1", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 10, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 0, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 0, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 50, + "StrengthWeight2": 28, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 1, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueen", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 1 + }, + "4": { + "VisualLevel": 4, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 617, + "UpgradeTimeH": 10, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 13000, + "RequiredTownHallLevel": 9, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 146, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl1", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 10, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 0, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 0, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 50, + "StrengthWeight2": 28, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 1, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueen", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 1 + }, + "5": { + "VisualLevel": 5, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 630, + "UpgradeTimeH": 12, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 14000, + "RequiredTownHallLevel": 9, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 150, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl1", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 12, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 3600, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 5, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 300, + "AbilityHealthIncrease": 150, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 51, + "StrengthWeight2": 29, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 2, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 1 + }, + "6": { + "VisualLevel": 6, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 643, + "UpgradeTimeH": 14, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 15000, + "RequiredTownHallLevel": 9, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 154, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl1", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 12, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 3600, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 5, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 300, + "AbilityHealthIncrease": 150, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 51, + "StrengthWeight2": 29, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 2, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 1 + }, + "7": { + "VisualLevel": 7, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 657, + "UpgradeTimeH": 16, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 16000, + "RequiredTownHallLevel": 9, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 157, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl1", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 12, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 3600, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 5, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 300, + "AbilityHealthIncrease": 150, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 51, + "StrengthWeight2": 29, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 2, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 1 + }, + "8": { + "VisualLevel": 8, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 670, + "UpgradeTimeH": 18, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 17000, + "RequiredTownHallLevel": 9, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 162, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl1", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 12, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 3600, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 5, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 300, + "AbilityHealthIncrease": 150, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 51, + "StrengthWeight2": 29, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 2, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 1 + }, + "9": { + "VisualLevel": 9, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 685, + "UpgradeTimeH": 20, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 18000, + "RequiredTownHallLevel": 9, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 165, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl1", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 12, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 3600, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 5, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 300, + "AbilityHealthIncrease": 150, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 51, + "StrengthWeight2": 29, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 2, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 1 + }, + "10": { + "VisualLevel": 10, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 699, + "UpgradeTimeH": 22, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 19000, + "RequiredTownHallLevel": 9, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 169, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl1", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 14, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 3800, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 6, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 355, + "AbilityHealthIncrease": 175, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 52, + "StrengthWeight2": 30, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 3, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 1 + }, + "11": { + "VisualLevel": 11, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 714, + "UpgradeTimeH": 24, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 20000, + "RequiredTownHallLevel": 9, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 173, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl1", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 14, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 3800, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 6, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 355, + "AbilityHealthIncrease": 175, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 52, + "StrengthWeight2": 30, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 3, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 2 + }, + "12": { + "VisualLevel": 12, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 729, + "UpgradeTimeH": 24, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 21000, + "RequiredTownHallLevel": 9, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 178, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl1", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 14, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 3800, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 6, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 355, + "AbilityHealthIncrease": 175, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 52, + "StrengthWeight2": 30, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 3, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 2 + }, + "13": { + "VisualLevel": 13, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 744, + "UpgradeTimeH": 24, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 22000, + "RequiredTownHallLevel": 9, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 183, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl1", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 14, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 3800, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 6, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 355, + "AbilityHealthIncrease": 175, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 52, + "StrengthWeight2": 30, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 3, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 2 + }, + "14": { + "VisualLevel": 14, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 759, + "UpgradeTimeH": 24, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 23000, + "RequiredTownHallLevel": 9, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 187, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl1", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 14, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 3800, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 6, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 355, + "AbilityHealthIncrease": 175, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 52, + "StrengthWeight2": 30, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 3, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 2 + }, + "15": { + "VisualLevel": 15, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 775, + "UpgradeTimeH": 24, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 24000, + "RequiredTownHallLevel": 9, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 192, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl1", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 16, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 7, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 416, + "AbilityHealthIncrease": 200, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 53, + "StrengthWeight2": 31, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 4, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 2 + }, + "16": { + "VisualLevel": 16, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 792, + "UpgradeTimeH": 36, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 25000, + "RequiredTownHallLevel": 9, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 196, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl1", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 16, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 7, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 416, + "AbilityHealthIncrease": 200, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 53, + "StrengthWeight2": 31, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 4, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 2 + }, + "17": { + "VisualLevel": 17, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 808, + "UpgradeTimeH": 36, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 27000, + "RequiredTownHallLevel": 9, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 201, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl1", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 16, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 7, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 416, + "AbilityHealthIncrease": 200, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 53, + "StrengthWeight2": 31, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 4, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 2 + }, + "18": { + "VisualLevel": 18, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 826, + "UpgradeTimeH": 36, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 28000, + "RequiredTownHallLevel": 9, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 207, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl1", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 16, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 7, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 416, + "AbilityHealthIncrease": 200, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 53, + "StrengthWeight2": 31, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 4, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 2 + }, + "19": { + "VisualLevel": 19, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 842, + "UpgradeTimeH": 48, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 30000, + "RequiredTownHallLevel": 9, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 212, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl1", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 16, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 7, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 416, + "AbilityHealthIncrease": 200, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 53, + "StrengthWeight2": 31, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 4, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 2 + }, + "20": { + "VisualLevel": 20, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 861, + "UpgradeTimeH": 48, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 31000, + "RequiredTownHallLevel": 9, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 217, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl2", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 18, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 4200, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 8, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 483, + "AbilityHealthIncrease": 225, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 54, + "StrengthWeight2": 32, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 5, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 2 + }, + "21": { + "VisualLevel": 21, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 878, + "UpgradeTimeH": 48, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 33000, + "RequiredTownHallLevel": 9, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 223, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl2", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 18, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 4200, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 8, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 483, + "AbilityHealthIncrease": 225, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 54, + "StrengthWeight2": 32, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 5, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 3 + }, + "22": { + "VisualLevel": 22, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 897, + "UpgradeTimeH": 48, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 34000, + "RequiredTownHallLevel": 9, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 228, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl2", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 18, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 4200, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 8, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 483, + "AbilityHealthIncrease": 225, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 54, + "StrengthWeight2": 32, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 5, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 3 + }, + "23": { + "VisualLevel": 23, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 916, + "UpgradeTimeH": 48, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 36000, + "RequiredTownHallLevel": 9, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 234, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl2", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 18, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 4200, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 8, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 483, + "AbilityHealthIncrease": 225, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 54, + "StrengthWeight2": 32, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 5, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 3 + }, + "24": { + "VisualLevel": 24, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 935, + "UpgradeTimeH": 60, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 37000, + "RequiredTownHallLevel": 9, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 240, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl2", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 18, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 4200, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 8, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 483, + "AbilityHealthIncrease": 225, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 54, + "StrengthWeight2": 32, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 5, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 3 + }, + "25": { + "VisualLevel": 25, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 954, + "UpgradeTimeH": 60, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 39000, + "RequiredTownHallLevel": 9, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 246, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl2", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 20, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 4400, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 9, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 557, + "AbilityHealthIncrease": 250, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 55, + "StrengthWeight2": 33, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 6, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 3 + }, + "26": { + "VisualLevel": 26, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 974, + "UpgradeTimeH": 60, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 40000, + "RequiredTownHallLevel": 9, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 252, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl2", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 20, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 4400, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 9, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 557, + "AbilityHealthIncrease": 250, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 55, + "StrengthWeight2": 33, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 6, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 4 + }, + "27": { + "VisualLevel": 27, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 995, + "UpgradeTimeH": 60, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 42000, + "RequiredTownHallLevel": 9, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 258, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl2", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 20, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 4400, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 9, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 557, + "AbilityHealthIncrease": 250, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 55, + "StrengthWeight2": 33, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 6, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 4 + }, + "28": { + "VisualLevel": 28, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 1016, + "UpgradeTimeH": 60, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 43000, + "RequiredTownHallLevel": 9, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 264, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl2", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 20, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 4400, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 9, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 557, + "AbilityHealthIncrease": 250, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 55, + "StrengthWeight2": 33, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 6, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 4 + }, + "29": { + "VisualLevel": 29, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 1038, + "UpgradeTimeH": 72, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 45000, + "RequiredTownHallLevel": 9, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 271, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl2", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 20, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 4400, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 9, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 557, + "AbilityHealthIncrease": 250, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 55, + "StrengthWeight2": 33, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 6, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 4 + }, + "30": { + "VisualLevel": 30, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 1059, + "UpgradeTimeH": 72, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 47000, + "RequiredTownHallLevel": 9, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 278, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl2", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 22, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 4600, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 10, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 638, + "AbilityHealthIncrease": 275, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 56, + "StrengthWeight2": 34, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 7, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 4 + }, + "31": { + "VisualLevel": 31, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 1082, + "UpgradeTimeH": 72, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 49000, + "RequiredTownHallLevel": 10, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 285, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl2", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 22, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 4600, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 10, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 638, + "AbilityHealthIncrease": 275, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 56, + "StrengthWeight2": 34, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 7, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 5 + }, + "32": { + "VisualLevel": 32, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 1104, + "UpgradeTimeH": 72, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 51000, + "RequiredTownHallLevel": 10, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 292, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl2", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 22, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 4600, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 10, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 638, + "AbilityHealthIncrease": 275, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 56, + "StrengthWeight2": 34, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 7, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 5 + }, + "33": { + "VisualLevel": 33, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 1127, + "UpgradeTimeH": 72, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 53000, + "RequiredTownHallLevel": 10, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 299, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl2", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 22, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 4600, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 10, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 638, + "AbilityHealthIncrease": 275, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 56, + "StrengthWeight2": 34, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 7, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 5 + }, + "34": { + "VisualLevel": 34, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 1151, + "UpgradeTimeH": 84, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 55000, + "RequiredTownHallLevel": 10, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 307, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl2", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 22, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 4600, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 10, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 638, + "AbilityHealthIncrease": 275, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 56, + "StrengthWeight2": 34, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 7, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 5 + }, + "35": { + "VisualLevel": 35, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 1175, + "UpgradeTimeH": 84, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 57000, + "RequiredTownHallLevel": 10, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 315, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl2", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 24, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 4800, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 11, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 725, + "AbilityHealthIncrease": 300, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 57, + "StrengthWeight2": 35, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 8, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 5 + }, + "36": { + "VisualLevel": 36, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 1200, + "UpgradeTimeH": 84, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 59000, + "RequiredTownHallLevel": 10, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 322, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl2", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 24, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 4800, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 11, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 725, + "AbilityHealthIncrease": 300, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 57, + "StrengthWeight2": 35, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 8, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 6 + }, + "37": { + "VisualLevel": 37, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 1226, + "UpgradeTimeH": 84, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 61000, + "RequiredTownHallLevel": 10, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 331, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl2", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 24, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 4800, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 11, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 725, + "AbilityHealthIncrease": 300, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 57, + "StrengthWeight2": 35, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 8, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 6 + }, + "38": { + "VisualLevel": 38, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 1251, + "UpgradeTimeH": 84, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 63000, + "RequiredTownHallLevel": 10, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 338, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl2", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 24, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 4800, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 11, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 725, + "AbilityHealthIncrease": 300, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 57, + "StrengthWeight2": 35, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 8, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 6 + }, + "39": { + "VisualLevel": 39, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 1278, + "UpgradeTimeH": 96, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 65000, + "RequiredTownHallLevel": 10, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 347, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl2", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 24, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 4800, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 11, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 725, + "AbilityHealthIncrease": 300, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 57, + "StrengthWeight2": 35, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 8, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 6 + }, + "40": { + "VisualLevel": 40, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 1304, + "UpgradeTimeH": 96, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 68000, + "RequiredTownHallLevel": 10, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 356, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl2", + "RageProjectile": "ArcherQueen arrow rage", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 26, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 5000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 12, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 819, + "AbilityHealthIncrease": 325, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 58, + "StrengthWeight2": 36, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 9, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 6 + }, + "41": { + "VisualLevel": 41, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 1331, + "UpgradeTimeH": 96, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 72000, + "RequiredTownHallLevel": 11, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 365, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 26, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 5000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 12, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 819, + "AbilityHealthIncrease": 325, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 58, + "StrengthWeight2": 36, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 9, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 7 + }, + "42": { + "VisualLevel": 42, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 1359, + "UpgradeTimeH": 96, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 75000, + "RequiredTownHallLevel": 11, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 374, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 26, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 5000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 12, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 819, + "AbilityHealthIncrease": 325, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 58, + "StrengthWeight2": 36, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 9, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 7 + }, + "43": { + "VisualLevel": 43, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 1388, + "UpgradeTimeH": 96, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 79000, + "RequiredTownHallLevel": 11, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 383, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 26, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 5000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 12, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 819, + "AbilityHealthIncrease": 325, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 58, + "StrengthWeight2": 36, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 9, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 7 + }, + "44": { + "VisualLevel": 44, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 1417, + "UpgradeTimeH": 120, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 82000, + "RequiredTownHallLevel": 11, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 393, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 26, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 5000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 12, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 819, + "AbilityHealthIncrease": 325, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 58, + "StrengthWeight2": 36, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 9, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 7 + }, + "45": { + "VisualLevel": 45, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 1447, + "UpgradeTimeH": 120, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 86000, + "RequiredTownHallLevel": 11, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 403, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 28, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 5200, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 13, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 920, + "AbilityHealthIncrease": 350, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 59, + "StrengthWeight2": 37, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 10, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 7 + }, + "46": { + "VisualLevel": 46, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 1478, + "UpgradeTimeH": 120, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 89000, + "RequiredTownHallLevel": 11, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 413, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 28, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 5200, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 13, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 920, + "AbilityHealthIncrease": 350, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 59, + "StrengthWeight2": 37, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 10, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 8 + }, + "47": { + "VisualLevel": 47, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 1508, + "UpgradeTimeH": 120, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 93000, + "RequiredTownHallLevel": 11, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 423, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 28, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 5200, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 13, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 920, + "AbilityHealthIncrease": 350, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 59, + "StrengthWeight2": 37, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 10, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 8 + }, + "48": { + "VisualLevel": 48, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 1540, + "UpgradeTimeH": 120, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 98000, + "RequiredTownHallLevel": 11, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 434, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 28, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 5200, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 13, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 920, + "AbilityHealthIncrease": 350, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 59, + "StrengthWeight2": 37, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 10, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 8 + }, + "49": { + "VisualLevel": 49, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 1572, + "UpgradeTimeH": 120, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 103000, + "RequiredTownHallLevel": 11, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 445, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 28, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 5200, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 13, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 920, + "AbilityHealthIncrease": 350, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 59, + "StrengthWeight2": 37, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 10, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 8 + }, + "50": { + "VisualLevel": 50, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 1606, + "UpgradeTimeH": 132, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 108000, + "RequiredTownHallLevel": 11, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 456, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 30, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 5400, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 14, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1020, + "AbilityHealthIncrease": 375, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 60, + "StrengthWeight2": 38, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 11, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 8 + }, + "51": { + "VisualLevel": 51, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 1646, + "UpgradeTimeH": 132, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 113000, + "RequiredTownHallLevel": 12, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 465, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 30, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 5400, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 14, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1020, + "AbilityHealthIncrease": 375, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 60, + "StrengthWeight2": 38, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 11, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 9 + }, + "52": { + "VisualLevel": 52, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 1688, + "UpgradeTimeH": 132, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 118000, + "RequiredTownHallLevel": 12, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 474, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 30, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 5400, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 14, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1020, + "AbilityHealthIncrease": 375, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 60, + "StrengthWeight2": 38, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 11, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 9 + }, + "53": { + "VisualLevel": 53, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 1730, + "UpgradeTimeH": 132, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 123000, + "RequiredTownHallLevel": 12, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 485, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 30, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 5400, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 14, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1020, + "AbilityHealthIncrease": 375, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 60, + "StrengthWeight2": 38, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 11, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 9 + }, + "54": { + "VisualLevel": 54, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 1774, + "UpgradeTimeH": 132, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 128000, + "RequiredTownHallLevel": 12, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 495, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 30, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 5400, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 14, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1020, + "AbilityHealthIncrease": 375, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 60, + "StrengthWeight2": 38, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 11, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 9 + }, + "55": { + "VisualLevel": 55, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 1819, + "UpgradeTimeH": 138, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 133000, + "RequiredTownHallLevel": 12, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 505, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 32, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 5600, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 15, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1120, + "AbilityHealthIncrease": 400, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 62, + "StrengthWeight2": 39, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 12, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 9 + }, + "56": { + "VisualLevel": 56, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 1865, + "UpgradeTimeH": 138, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 138000, + "RequiredTownHallLevel": 12, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 515, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 32, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 5600, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 15, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1120, + "AbilityHealthIncrease": 400, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 62, + "StrengthWeight2": 39, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 12, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 10 + }, + "57": { + "VisualLevel": 57, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 1912, + "UpgradeTimeH": 138, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 143000, + "RequiredTownHallLevel": 12, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 526, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 32, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 5600, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 15, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1120, + "AbilityHealthIncrease": 400, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 62, + "StrengthWeight2": 39, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 12, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 10 + }, + "58": { + "VisualLevel": 58, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 1960, + "UpgradeTimeH": 138, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 148000, + "RequiredTownHallLevel": 12, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 537, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 32, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 5600, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 15, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1120, + "AbilityHealthIncrease": 400, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 62, + "StrengthWeight2": 39, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 12, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 10 + }, + "59": { + "VisualLevel": 59, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 2010, + "UpgradeTimeH": 138, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 153000, + "RequiredTownHallLevel": 12, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 548, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 32, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 5600, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 15, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1120, + "AbilityHealthIncrease": 400, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 62, + "StrengthWeight2": 39, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 12, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 10 + }, + "60": { + "VisualLevel": 60, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 2060, + "UpgradeTimeH": 144, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 158000, + "RequiredTownHallLevel": 12, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 559, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 34, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 5800, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 16, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1220, + "AbilityHealthIncrease": 425, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 64, + "StrengthWeight2": 40, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 13, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 10 + }, + "61": { + "VisualLevel": 61, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 2111, + "UpgradeTimeH": 144, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 163000, + "RequiredTownHallLevel": 12, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 570, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 34, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 5800, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 16, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1220, + "AbilityHealthIncrease": 425, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 64, + "StrengthWeight2": 40, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 13, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 11 + }, + "62": { + "VisualLevel": 62, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 2164, + "UpgradeTimeH": 144, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 168000, + "RequiredTownHallLevel": 12, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 581, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 34, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 5800, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 16, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1220, + "AbilityHealthIncrease": 425, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 64, + "StrengthWeight2": 40, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 13, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 11 + }, + "63": { + "VisualLevel": 63, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 2218, + "UpgradeTimeH": 144, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 173000, + "RequiredTownHallLevel": 12, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 593, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 34, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 5800, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 16, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1220, + "AbilityHealthIncrease": 425, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 64, + "StrengthWeight2": 40, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 13, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 11 + }, + "64": { + "VisualLevel": 64, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 2274, + "UpgradeTimeH": 144, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 178000, + "RequiredTownHallLevel": 12, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 605, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 34, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 5800, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 16, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1220, + "AbilityHealthIncrease": 425, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 64, + "StrengthWeight2": 40, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 13, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 11 + }, + "65": { + "VisualLevel": 65, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 2330, + "UpgradeTimeH": 156, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 183000, + "RequiredTownHallLevel": 12, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 617, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 36, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 6000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 17, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1300, + "AbilityHealthIncrease": 450, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 66, + "StrengthWeight2": 41, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 14, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 11 + }, + "66": { + "VisualLevel": 66, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 2384, + "UpgradeTimeH": 156, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 188000, + "RequiredTownHallLevel": 13, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 628, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 36, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 6000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 17, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1300, + "AbilityHealthIncrease": 450, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 66, + "StrengthWeight2": 41, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 14, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 12 + }, + "67": { + "VisualLevel": 67, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 2432, + "UpgradeTimeH": 156, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 193000, + "RequiredTownHallLevel": 13, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 638, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 36, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 6000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 17, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1300, + "AbilityHealthIncrease": 450, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 66, + "StrengthWeight2": 41, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 14, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 12 + }, + "68": { + "VisualLevel": 68, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 2476, + "UpgradeTimeH": 156, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 198000, + "RequiredTownHallLevel": 13, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 648, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 36, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 6000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 17, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1300, + "AbilityHealthIncrease": 450, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 66, + "StrengthWeight2": 41, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 14, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 12 + }, + "69": { + "VisualLevel": 69, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 2516, + "UpgradeTimeH": 156, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 203000, + "RequiredTownHallLevel": 13, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 656, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 36, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 6000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 17, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1300, + "AbilityHealthIncrease": 450, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 66, + "StrengthWeight2": 41, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 14, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 12 + }, + "70": { + "VisualLevel": 70, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 2552, + "UpgradeTimeH": 168, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 208000, + "RequiredTownHallLevel": 13, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 664, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 38, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 6200, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 18, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1370, + "AbilityHealthIncrease": 475, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 68, + "StrengthWeight2": 42, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 15, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 12 + }, + "71": { + "VisualLevel": 71, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 2584, + "UpgradeTimeH": 168, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 214000, + "RequiredTownHallLevel": 13, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 671, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 38, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 6200, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 18, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1370, + "AbilityHealthIncrease": 475, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 68, + "StrengthWeight2": 42, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 15, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 13 + }, + "72": { + "VisualLevel": 72, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 2616, + "UpgradeTimeH": 168, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 221000, + "RequiredTownHallLevel": 13, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 677, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 38, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 6200, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 18, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1370, + "AbilityHealthIncrease": 475, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 68, + "StrengthWeight2": 42, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 15, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 13 + }, + "73": { + "VisualLevel": 73, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 2648, + "UpgradeTimeH": 168, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 229000, + "RequiredTownHallLevel": 13, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 682, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 38, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 6200, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 18, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1370, + "AbilityHealthIncrease": 475, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 68, + "StrengthWeight2": 42, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 15, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 13 + }, + "74": { + "VisualLevel": 74, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 2680, + "UpgradeTimeH": 168, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 234000, + "RequiredTownHallLevel": 13, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 687, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 38, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 6200, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 18, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1370, + "AbilityHealthIncrease": 475, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 68, + "StrengthWeight2": 42, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 15, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 13 + }, + "75": { + "VisualLevel": 75, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 2712, + "UpgradeTimeH": 180, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 239000, + "RequiredTownHallLevel": 13, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 692, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 40, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 6400, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 19, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1430, + "AbilityHealthIncrease": 500, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 70, + "StrengthWeight2": 43, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 16, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 13 + }, + "76": { + "VisualLevel": 76, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 2740, + "UpgradeTimeH": 180, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 244000, + "RequiredTownHallLevel": 14, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 697, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 40, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 6400, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 19, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1430, + "AbilityHealthIncrease": 500, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 70, + "StrengthWeight2": 43, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 16, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 14 + }, + "77": { + "VisualLevel": 77, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 2768, + "UpgradeTimeH": 180, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 249000, + "RequiredTownHallLevel": 14, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 701, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 40, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 6400, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 19, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1430, + "AbilityHealthIncrease": 500, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 70, + "StrengthWeight2": 43, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 16, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 14 + }, + "78": { + "VisualLevel": 78, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 2796, + "UpgradeTimeH": 180, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 254000, + "RequiredTownHallLevel": 14, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 706, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 40, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 6400, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 19, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1430, + "AbilityHealthIncrease": 500, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 70, + "StrengthWeight2": 43, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 16, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 14 + }, + "79": { + "VisualLevel": 79, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 2824, + "UpgradeTimeH": 180, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 259000, + "RequiredTownHallLevel": 14, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 710, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 40, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 6400, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 19, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1430, + "AbilityHealthIncrease": 500, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 70, + "StrengthWeight2": 43, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 16, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 14 + }, + "80": { + "VisualLevel": 80, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 2852, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 264000, + "RequiredTownHallLevel": 14, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 714, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 42, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 6600, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 20, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1480, + "AbilityHealthIncrease": 525, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 72, + "StrengthWeight2": 44, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 17, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 14 + }, + "81": { + "VisualLevel": 81, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 2880, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 268000, + "RequiredTownHallLevel": 15, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 717, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 42, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 6600, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 20, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1480, + "AbilityHealthIncrease": 525, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 72, + "StrengthWeight2": 44, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 17, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 15 + }, + "82": { + "VisualLevel": 82, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 2904, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 272000, + "RequiredTownHallLevel": 15, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 721, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 42, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 6600, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 20, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1480, + "AbilityHealthIncrease": 525, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 72, + "StrengthWeight2": 44, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 17, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 15 + }, + "83": { + "VisualLevel": 83, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 2928, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 276000, + "RequiredTownHallLevel": 15, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 724, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 42, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 6600, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 20, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1480, + "AbilityHealthIncrease": 525, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 72, + "StrengthWeight2": 44, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 17, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 15 + }, + "84": { + "VisualLevel": 84, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 2952, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 280000, + "RequiredTownHallLevel": 15, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 728, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 42, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 6600, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 20, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1480, + "AbilityHealthIncrease": 525, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 72, + "StrengthWeight2": 44, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 17, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 15 + }, + "85": { + "VisualLevel": 85, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 2976, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 282000, + "RequiredTownHallLevel": 15, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 731, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 44, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 6800, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 21, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1520, + "AbilityHealthIncrease": 550, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 74, + "StrengthWeight2": 45, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 18, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 15 + }, + "86": { + "VisualLevel": 86, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 3000, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 284000, + "RequiredTownHallLevel": 15, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 734, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 44, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 6800, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 21, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1520, + "AbilityHealthIncrease": 550, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 74, + "StrengthWeight2": 45, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 18, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 15 + }, + "87": { + "VisualLevel": 87, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 3024, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 286000, + "RequiredTownHallLevel": 15, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 738, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 44, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 6800, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 21, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1520, + "AbilityHealthIncrease": 550, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 74, + "StrengthWeight2": 45, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 18, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 15 + }, + "88": { + "VisualLevel": 88, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 3048, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 288000, + "RequiredTownHallLevel": 15, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 741, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 44, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 6800, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 21, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1520, + "AbilityHealthIncrease": 550, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 74, + "StrengthWeight2": 45, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 18, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 15 + }, + "89": { + "VisualLevel": 89, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 3072, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 290000, + "RequiredTownHallLevel": 15, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 745, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 44, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 6800, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 21, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1520, + "AbilityHealthIncrease": 550, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 74, + "StrengthWeight2": 45, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 18, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 15 + }, + "90": { + "VisualLevel": 90, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 3096, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 300000, + "RequiredTownHallLevel": 15, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 748, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 46, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 7000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 22, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1560, + "AbilityHealthIncrease": 575, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 76, + "StrengthWeight2": 46, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 19, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 15 + }, + "91": { + "VisualLevel": 91, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 3120, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 310000, + "RequiredTownHallLevel": 16, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 751, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 46, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 7000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 22, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1560, + "AbilityHealthIncrease": 575, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 76, + "StrengthWeight2": 46, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 19, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 15 + }, + "92": { + "VisualLevel": 92, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 3144, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 320000, + "RequiredTownHallLevel": 16, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 755, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 46, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 7000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 22, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1560, + "AbilityHealthIncrease": 575, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 76, + "StrengthWeight2": 46, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 19, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 15 + }, + "93": { + "VisualLevel": 93, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 3168, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 330000, + "RequiredTownHallLevel": 16, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 758, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 46, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 7000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 22, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1560, + "AbilityHealthIncrease": 575, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 76, + "StrengthWeight2": 46, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 19, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 15 + }, + "94": { + "VisualLevel": 94, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 3192, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 340000, + "RequiredTownHallLevel": 16, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 762, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 46, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 7000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 22, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1560, + "AbilityHealthIncrease": 575, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 76, + "StrengthWeight2": 46, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 19, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 15 + }, + "95": { + "VisualLevel": 95, + "TID": "TID_ARCHER_QUEEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_QUEEN", + "Speed": 300, + "Hitpoints": 3216, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 340000, + "RequiredTownHallLevel": 16, + "AttackRange": 500, + "AttackSpeed": 750, + "DPS": 765, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_archerQueen", + "BigPicture": "unit_archerQueen_big", + "BigPictureSWF": "sc/info_archer.sc", + "SmallPicture": "unit_archerQueen_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "ArcherQueen arrow lvl3", + "RageProjectile": "ArcherQueen arrow rage2", + "DeployEffect": "Hero Deploy", + "HitEffect": "Archer Queen Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 1000, + "HousingSpace": 25, + "HealerWeight": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 48, + "TrainingResource": "Elixir", + "CelebrateEffect": "Archer Queen Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityRadius": 2500, + "AbilityTime": 7200, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroop": "Archer", + "AbilitySummonTroopCount": 23, + "AbilityStealth": true, + "AbilityDamageBoostOffset": 1600, + "AbilityHealthIncrease": 600, + "AbilityTID": "TID_HERO_ABILITY_QUEEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_QUEEN_DESC", + "AbilityIcon": "icon_hero_archerQueen_ability1", + "AbilityBigPictureExportName": "unit_archerQueen_ability1_big", + "AbilityDelay": 0, + "StrengthWeight": 78, + "StrengthWeight2": 47, + "AlertRadius": 1300, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "ArcherQueenDefault", + "UseAutoHeroAbility": true, + "Gender": "F", + "SpecialAbilities": "ArcherQueenAbilityHeal", + "SpecialAbilitiesLevel": 20, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroQueenLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Archer Crown; Royal Cloak;", + "MigrationGearLevel": 15 + } + }, + "Grand Warden": { + "1": { + "VisualLevel": 1, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 850, + "UpgradeTimeH": 2, + "UpgradeResource": "Elixir", + "UpgradeCost": 1000000, + "RequiredTownHallLevel": 11, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 43, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 20, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 140, + "StrengthWeight2": 70, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 1, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWarden", + "AltPreviewScenario": "HeroGrandWardenAir", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 1 + }, + "2": { + "VisualLevel": 2, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 868, + "UpgradeTimeH": 4, + "UpgradeResource": "Elixir", + "UpgradeCost": 1100000, + "RequiredTownHallLevel": 11, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 44, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 20, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 140, + "StrengthWeight2": 70, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 1, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWarden", + "AltPreviewScenario": "HeroGrandWardenAir", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 1 + }, + "3": { + "VisualLevel": 3, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 886, + "UpgradeTimeH": 8, + "UpgradeResource": "Elixir", + "UpgradeCost": 1200000, + "RequiredTownHallLevel": 11, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 46, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 20, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 140, + "StrengthWeight2": 70, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 1, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWarden", + "AltPreviewScenario": "HeroGrandWardenAir", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 1 + }, + "4": { + "VisualLevel": 4, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 904, + "UpgradeTimeH": 12, + "UpgradeResource": "Elixir", + "UpgradeCost": 1400000, + "RequiredTownHallLevel": 11, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 48, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 20, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 140, + "StrengthWeight2": 70, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 1, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWarden", + "AltPreviewScenario": "HeroGrandWardenAir", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 2 + }, + "5": { + "VisualLevel": 5, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 923, + "UpgradeTimeH": 16, + "UpgradeResource": "Elixir", + "UpgradeCost": 1500000, + "RequiredTownHallLevel": 11, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 49, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 22, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 145, + "StrengthWeight2": 71, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 2, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 2 + }, + "6": { + "VisualLevel": 6, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 942, + "UpgradeTimeH": 22, + "UpgradeResource": "Elixir", + "UpgradeCost": 1700000, + "RequiredTownHallLevel": 11, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 51, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 22, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 145, + "StrengthWeight2": 71, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 2, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 3 + }, + "7": { + "VisualLevel": 7, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 961, + "UpgradeTimeH": 24, + "UpgradeResource": "Elixir", + "UpgradeCost": 1800000, + "RequiredTownHallLevel": 11, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 54, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 22, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 145, + "StrengthWeight2": 71, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 2, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 3 + }, + "8": { + "VisualLevel": 8, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 982, + "UpgradeTimeH": 24, + "UpgradeResource": "Elixir", + "UpgradeCost": 2000000, + "RequiredTownHallLevel": 11, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 56, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 22, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 145, + "StrengthWeight2": 71, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 2, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 4 + }, + "9": { + "VisualLevel": 9, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1003, + "UpgradeTimeH": 36, + "UpgradeResource": "Elixir", + "UpgradeCost": 2300000, + "RequiredTownHallLevel": 11, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 59, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 22, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 145, + "StrengthWeight2": 71, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 2, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 4 + }, + "10": { + "VisualLevel": 10, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1025, + "UpgradeTimeH": 36, + "UpgradeResource": "Elixir", + "UpgradeCost": 2700000, + "RequiredTownHallLevel": 11, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 61, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 24, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 150, + "StrengthWeight2": 72, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 3, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 5 + }, + "11": { + "VisualLevel": 11, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1048, + "UpgradeTimeH": 48, + "UpgradeResource": "Elixir", + "UpgradeCost": 3000000, + "RequiredTownHallLevel": 11, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 64, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 24, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 150, + "StrengthWeight2": 72, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 3, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 5 + }, + "12": { + "VisualLevel": 12, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1072, + "UpgradeTimeH": 48, + "UpgradeResource": "Elixir", + "UpgradeCost": 3400000, + "RequiredTownHallLevel": 11, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 66, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 24, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 150, + "StrengthWeight2": 72, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 3, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 6 + }, + "13": { + "VisualLevel": 13, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1097, + "UpgradeTimeH": 48, + "UpgradeResource": "Elixir", + "UpgradeCost": 3700000, + "RequiredTownHallLevel": 11, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 70, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 24, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 150, + "StrengthWeight2": 72, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 3, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 6 + }, + "14": { + "VisualLevel": 14, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1122, + "UpgradeTimeH": 48, + "UpgradeResource": "Elixir", + "UpgradeCost": 4100000, + "RequiredTownHallLevel": 11, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 73, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 24, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 150, + "StrengthWeight2": 72, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 3, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 7 + }, + "15": { + "VisualLevel": 15, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1148, + "UpgradeTimeH": 66, + "UpgradeResource": "Elixir", + "UpgradeCost": 4400000, + "RequiredTownHallLevel": 11, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 77, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 26, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 155, + "StrengthWeight2": 73, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 4, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 7 + }, + "16": { + "VisualLevel": 16, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1173, + "UpgradeTimeH": 66, + "UpgradeResource": "Elixir", + "UpgradeCost": 4800000, + "RequiredTownHallLevel": 11, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 80, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 26, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 155, + "StrengthWeight2": 73, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 4, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 8 + }, + "17": { + "VisualLevel": 17, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1199, + "UpgradeTimeH": 66, + "UpgradeResource": "Elixir", + "UpgradeCost": 5100000, + "RequiredTownHallLevel": 11, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 83, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 26, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 155, + "StrengthWeight2": 73, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 4, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 8 + }, + "18": { + "VisualLevel": 18, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1224, + "UpgradeTimeH": 66, + "UpgradeResource": "Elixir", + "UpgradeCost": 5500000, + "RequiredTownHallLevel": 11, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 87, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 26, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 155, + "StrengthWeight2": 73, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 4, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 8 + }, + "19": { + "VisualLevel": 19, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1250, + "UpgradeTimeH": 66, + "UpgradeResource": "Elixir", + "UpgradeCost": 6000000, + "RequiredTownHallLevel": 11, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 90, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 26, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 155, + "StrengthWeight2": 73, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 4, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 8 + }, + "20": { + "VisualLevel": 20, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1275, + "UpgradeTimeH": 72, + "UpgradeResource": "Elixir", + "UpgradeCost": 6500000, + "RequiredTownHallLevel": 11, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 94, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 28, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 160, + "StrengthWeight2": 74, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 5, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 8 + }, + "21": { + "VisualLevel": 21, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1301, + "UpgradeTimeH": 72, + "UpgradeResource": "Elixir", + "UpgradeCost": 6600000, + "RequiredTownHallLevel": 12, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 98, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 28, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 160, + "StrengthWeight2": 74, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 5, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 9 + }, + "22": { + "VisualLevel": 22, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1327, + "UpgradeTimeH": 72, + "UpgradeResource": "Elixir", + "UpgradeCost": 6700000, + "RequiredTownHallLevel": 12, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 102, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 28, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 160, + "StrengthWeight2": 74, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 5, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 9 + }, + "23": { + "VisualLevel": 23, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1354, + "UpgradeTimeH": 72, + "UpgradeResource": "Elixir", + "UpgradeCost": 6800000, + "RequiredTownHallLevel": 12, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 106, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 28, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 160, + "StrengthWeight2": 74, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 5, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 9 + }, + "24": { + "VisualLevel": 24, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1381, + "UpgradeTimeH": 72, + "UpgradeResource": "Elixir", + "UpgradeCost": 6900000, + "RequiredTownHallLevel": 12, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 111, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 28, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 160, + "StrengthWeight2": 74, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 5, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 9 + }, + "25": { + "VisualLevel": 25, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1409, + "UpgradeTimeH": 96, + "UpgradeResource": "Elixir", + "UpgradeCost": 7000000, + "RequiredTownHallLevel": 12, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 116, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 30, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 165, + "StrengthWeight2": 75, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 6, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 9 + }, + "26": { + "VisualLevel": 26, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1438, + "UpgradeTimeH": 96, + "UpgradeResource": "Elixir", + "UpgradeCost": 7100000, + "RequiredTownHallLevel": 12, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 121, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 30, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 165, + "StrengthWeight2": 75, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 6, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 9 + }, + "27": { + "VisualLevel": 27, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1467, + "UpgradeTimeH": 96, + "UpgradeResource": "Elixir", + "UpgradeCost": 7200000, + "RequiredTownHallLevel": 12, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 126, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 30, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 165, + "StrengthWeight2": 75, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 6, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 9 + }, + "28": { + "VisualLevel": 28, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1497, + "UpgradeTimeH": 96, + "UpgradeResource": "Elixir", + "UpgradeCost": 7300000, + "RequiredTownHallLevel": 12, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 131, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 30, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 165, + "StrengthWeight2": 75, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 6, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 9 + }, + "29": { + "VisualLevel": 29, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1527, + "UpgradeTimeH": 96, + "UpgradeResource": "Elixir", + "UpgradeCost": 7400000, + "RequiredTownHallLevel": 12, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 137, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 30, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 165, + "StrengthWeight2": 75, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 6, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 9 + }, + "30": { + "VisualLevel": 30, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1558, + "UpgradeTimeH": 120, + "UpgradeResource": "Elixir", + "UpgradeCost": 7500000, + "RequiredTownHallLevel": 12, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 143, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 32, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 170, + "StrengthWeight2": 76, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 7, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 9 + }, + "31": { + "VisualLevel": 31, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1590, + "UpgradeTimeH": 120, + "UpgradeResource": "Elixir", + "UpgradeCost": 7600000, + "RequiredTownHallLevel": 12, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 149, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 32, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 170, + "StrengthWeight2": 76, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 7, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 10 + }, + "32": { + "VisualLevel": 32, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1622, + "UpgradeTimeH": 120, + "UpgradeResource": "Elixir", + "UpgradeCost": 7700000, + "RequiredTownHallLevel": 12, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 155, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 32, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 170, + "StrengthWeight2": 76, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 7, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 10 + }, + "33": { + "VisualLevel": 33, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1655, + "UpgradeTimeH": 120, + "UpgradeResource": "Elixir", + "UpgradeCost": 7800000, + "RequiredTownHallLevel": 12, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 162, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 32, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 170, + "StrengthWeight2": 76, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 7, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 10 + }, + "34": { + "VisualLevel": 34, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1688, + "UpgradeTimeH": 120, + "UpgradeResource": "Elixir", + "UpgradeCost": 7900000, + "RequiredTownHallLevel": 12, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 168, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 32, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 170, + "StrengthWeight2": 76, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 7, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 10 + }, + "35": { + "VisualLevel": 35, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1722, + "UpgradeTimeH": 144, + "UpgradeResource": "Elixir", + "UpgradeCost": 8000000, + "RequiredTownHallLevel": 12, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 175, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 34, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 175, + "StrengthWeight2": 77, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 8, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 10 + }, + "36": { + "VisualLevel": 36, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1757, + "UpgradeTimeH": 144, + "UpgradeResource": "Elixir", + "UpgradeCost": 8100000, + "RequiredTownHallLevel": 12, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 183, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 34, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 175, + "StrengthWeight2": 77, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 8, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 11 + }, + "37": { + "VisualLevel": 37, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1793, + "UpgradeTimeH": 144, + "UpgradeResource": "Elixir", + "UpgradeCost": 8200000, + "RequiredTownHallLevel": 12, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 190, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 34, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 175, + "StrengthWeight2": 77, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 8, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 11 + }, + "38": { + "VisualLevel": 38, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1829, + "UpgradeTimeH": 144, + "UpgradeResource": "Elixir", + "UpgradeCost": 8300000, + "RequiredTownHallLevel": 12, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 198, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 34, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 175, + "StrengthWeight2": 77, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 8, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 11 + }, + "39": { + "VisualLevel": 39, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1867, + "UpgradeTimeH": 144, + "UpgradeResource": "Elixir", + "UpgradeCost": 8400000, + "RequiredTownHallLevel": 12, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 207, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 34, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 175, + "StrengthWeight2": 77, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 8, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 11 + }, + "40": { + "VisualLevel": 40, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1904, + "UpgradeTimeH": 150, + "UpgradeResource": "Elixir", + "UpgradeCost": 8500000, + "RequiredTownHallLevel": 12, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 215, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 36, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 180, + "StrengthWeight2": 78, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 9, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 11 + }, + "41": { + "VisualLevel": 41, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1921, + "UpgradeTimeH": 150, + "UpgradeResource": "Elixir", + "UpgradeCost": 8800000, + "RequiredTownHallLevel": 13, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 221, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 36, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 180, + "StrengthWeight2": 78, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 9, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 12 + }, + "42": { + "VisualLevel": 42, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1938, + "UpgradeTimeH": 150, + "UpgradeResource": "Elixir", + "UpgradeCost": 9100000, + "RequiredTownHallLevel": 13, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 226, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 36, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 180, + "StrengthWeight2": 78, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 9, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 12 + }, + "43": { + "VisualLevel": 43, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1955, + "UpgradeTimeH": 150, + "UpgradeResource": "Elixir", + "UpgradeCost": 9400000, + "RequiredTownHallLevel": 13, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 230, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 36, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 180, + "StrengthWeight2": 78, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 9, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 12 + }, + "44": { + "VisualLevel": 44, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1972, + "UpgradeTimeH": 150, + "UpgradeResource": "Elixir", + "UpgradeCost": 9700000, + "RequiredTownHallLevel": 13, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 234, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 36, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 180, + "StrengthWeight2": 78, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 9, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 12 + }, + "45": { + "VisualLevel": 45, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 1989, + "UpgradeTimeH": 162, + "UpgradeResource": "Elixir", + "UpgradeCost": 10000000, + "RequiredTownHallLevel": 13, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 237, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 38, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 185, + "StrengthWeight2": 79, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 10, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 12 + }, + "46": { + "VisualLevel": 46, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 2006, + "UpgradeTimeH": 162, + "UpgradeResource": "Elixir", + "UpgradeCost": 10300000, + "RequiredTownHallLevel": 13, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 241, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 38, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 185, + "StrengthWeight2": 79, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 10, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 13 + }, + "47": { + "VisualLevel": 47, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 2023, + "UpgradeTimeH": 162, + "UpgradeResource": "Elixir", + "UpgradeCost": 10600000, + "RequiredTownHallLevel": 13, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 244, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 38, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 185, + "StrengthWeight2": 79, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 10, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 13 + }, + "48": { + "VisualLevel": 48, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 2040, + "UpgradeTimeH": 162, + "UpgradeResource": "Elixir", + "UpgradeCost": 11000000, + "RequiredTownHallLevel": 13, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 247, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 38, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 185, + "StrengthWeight2": 79, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 10, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 13 + }, + "49": { + "VisualLevel": 49, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 2057, + "UpgradeTimeH": 162, + "UpgradeResource": "Elixir", + "UpgradeCost": 11500000, + "RequiredTownHallLevel": 13, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 251, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 38, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 185, + "StrengthWeight2": 79, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 10, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 13 + }, + "50": { + "VisualLevel": 50, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 2074, + "UpgradeTimeH": 174, + "UpgradeResource": "Elixir", + "UpgradeCost": 12000000, + "RequiredTownHallLevel": 13, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 254, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 40, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 190, + "StrengthWeight2": 80, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 11, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 13 + }, + "51": { + "VisualLevel": 51, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 2091, + "UpgradeTimeH": 174, + "UpgradeResource": "Elixir", + "UpgradeCost": 12500000, + "RequiredTownHallLevel": 14, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 258, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 40, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 190, + "StrengthWeight2": 80, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 11, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 14 + }, + "52": { + "VisualLevel": 52, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 2108, + "UpgradeTimeH": 174, + "UpgradeResource": "Elixir", + "UpgradeCost": 13000000, + "RequiredTownHallLevel": 14, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 261, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 40, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 190, + "StrengthWeight2": 80, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 11, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 14 + }, + "53": { + "VisualLevel": 53, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 2125, + "UpgradeTimeH": 174, + "UpgradeResource": "Elixir", + "UpgradeCost": 13500000, + "RequiredTownHallLevel": 14, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 264, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 40, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 190, + "StrengthWeight2": 80, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 11, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 14 + }, + "54": { + "VisualLevel": 54, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 2142, + "UpgradeTimeH": 174, + "UpgradeResource": "Elixir", + "UpgradeCost": 14000000, + "RequiredTownHallLevel": 14, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 268, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 40, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 190, + "StrengthWeight2": 80, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 11, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 14 + }, + "55": { + "VisualLevel": 55, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 2159, + "UpgradeTimeH": 192, + "UpgradeResource": "Elixir", + "UpgradeCost": 14500000, + "RequiredTownHallLevel": 14, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 271, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 42, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 195, + "StrengthWeight2": 81, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 12, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 14 + }, + "56": { + "VisualLevel": 56, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 2176, + "UpgradeTimeH": 192, + "UpgradeResource": "Elixir", + "UpgradeCost": 15000000, + "RequiredTownHallLevel": 15, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 274, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 42, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 195, + "StrengthWeight2": 81, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 12, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 15 + }, + "57": { + "VisualLevel": 57, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 2193, + "UpgradeTimeH": 192, + "UpgradeResource": "Elixir", + "UpgradeCost": 15500000, + "RequiredTownHallLevel": 15, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 276, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 42, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 195, + "StrengthWeight2": 81, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 12, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 15 + }, + "58": { + "VisualLevel": 58, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 2210, + "UpgradeTimeH": 192, + "UpgradeResource": "Elixir", + "UpgradeCost": 16000000, + "RequiredTownHallLevel": 15, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 279, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 42, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 195, + "StrengthWeight2": 81, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 12, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 15 + }, + "59": { + "VisualLevel": 59, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 2227, + "UpgradeTimeH": 192, + "UpgradeResource": "Elixir", + "UpgradeCost": 16200000, + "RequiredTownHallLevel": 15, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 281, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 42, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 195, + "StrengthWeight2": 81, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 12, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 15 + }, + "60": { + "VisualLevel": 60, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 2244, + "UpgradeTimeH": 192, + "UpgradeResource": "Elixir", + "UpgradeCost": 16700000, + "RequiredTownHallLevel": 15, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 284, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 44, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 200, + "StrengthWeight2": 82, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 13, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 15 + }, + "61": { + "VisualLevel": 61, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 2261, + "UpgradeTimeH": 192, + "UpgradeResource": "Elixir", + "UpgradeCost": 16900000, + "RequiredTownHallLevel": 15, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 286, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 44, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 200, + "StrengthWeight2": 82, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 13, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 15 + }, + "62": { + "VisualLevel": 62, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 2278, + "UpgradeTimeH": 192, + "UpgradeResource": "Elixir", + "UpgradeCost": 17100000, + "RequiredTownHallLevel": 15, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 289, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 44, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 200, + "StrengthWeight2": 82, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 13, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 15 + }, + "63": { + "VisualLevel": 63, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 2295, + "UpgradeTimeH": 192, + "UpgradeResource": "Elixir", + "UpgradeCost": 17300000, + "RequiredTownHallLevel": 15, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 292, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 44, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 200, + "StrengthWeight2": 82, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 13, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 15 + }, + "64": { + "VisualLevel": 64, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 2312, + "UpgradeTimeH": 192, + "UpgradeResource": "Elixir", + "UpgradeCost": 17500000, + "RequiredTownHallLevel": 15, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 294, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 44, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 200, + "StrengthWeight2": 82, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 13, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 15 + }, + "65": { + "VisualLevel": 65, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 2329, + "UpgradeTimeH": 192, + "UpgradeResource": "Elixir", + "UpgradeCost": 18000000, + "RequiredTownHallLevel": 15, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 297, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 46, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 205, + "StrengthWeight2": 83, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 14, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 15 + }, + "66": { + "VisualLevel": 66, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 2346, + "UpgradeTimeH": 192, + "UpgradeResource": "Elixir", + "UpgradeCost": 18500000, + "RequiredTownHallLevel": 16, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 299, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 46, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 205, + "StrengthWeight2": 83, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 14, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 15 + }, + "67": { + "VisualLevel": 67, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 2363, + "UpgradeTimeH": 192, + "UpgradeResource": "Elixir", + "UpgradeCost": 19000000, + "RequiredTownHallLevel": 16, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 302, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 46, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 205, + "StrengthWeight2": 83, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 14, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 15 + }, + "68": { + "VisualLevel": 68, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 2380, + "UpgradeTimeH": 192, + "UpgradeResource": "Elixir", + "UpgradeCost": 19500000, + "RequiredTownHallLevel": 16, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 304, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 46, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 205, + "StrengthWeight2": 83, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 14, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 15 + }, + "69": { + "VisualLevel": 69, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 2397, + "UpgradeTimeH": 192, + "UpgradeResource": "Elixir", + "UpgradeCost": 20000000, + "RequiredTownHallLevel": 16, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 307, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 46, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 205, + "StrengthWeight2": 83, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 14, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 15 + }, + "70": { + "VisualLevel": 70, + "TID": "TID_GRAND_WARDEN", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARDEN", + "Speed": 200, + "Hitpoints": 2414, + "UpgradeTimeH": 192, + "UpgradeResource": "Elixir", + "UpgradeCost": 20000000, + "RequiredTownHallLevel": 16, + "AttackRange": 700, + "AltAttackRange": 650, + "AttackSpeed": 1800, + "CoolDownOverride": 1050, + "DPS": 309, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_grandwarden", + "BigPicture": "unit_elder_big", + "BigPictureSWF": "sc/info_ancientelder.sc", + "SmallPicture": "unit_grandwarden_small", + "SmallPictureSWF": "sc/ui.sc", + "DeployEffect": "Hero Deploy", + "HitEffect": "Grand Warden Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 15, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 47, + "TrainingResource": "Elixir", + "CelebrateEffect": "Grand Warden Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-50", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilitySummonTroopCount": 0, + "AbilityStealth": false, + "AbilityDamageBoostOffset": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_WARDEN_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARDEN_DESC", + "AbilityIcon": "icon_hero_grandwarden_ability1", + "AbilityBigPictureExportName": "unit_elder_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 210, + "StrengthWeight2": 84, + "AlertRadius": 1300, + "AuraSpell": "GrandWardenRangeRing", + "AuraSpellLevel": 0, + "HasAltMode": true, + "AltModeFlying": true, + "FightWithGroups": true, + "TargetGroupsRadius": 500, + "TargetGroupsRange": 1300, + "TargetGroupsMinWeight": 2000, + "SmoothJump": true, + "WakeUpSpeed": 792, + "WakeUpSpace": 1, + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 500, + "AttackEffectShared": "Grand Warden Statue Attack", + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "GrandWardenDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "GrandWardenAbilityHeal", + "SpecialAbilitiesLevel": 15, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroGrandWardenLVL5", + "AltPreviewScenario": "HeroGrandWardenLVL5Air", + "ItemSlotCount": 2, + "DefaultItems": "Eternal Tome; Life Gem;", + "MigrationGearLevel": 15 + } + }, + "Battle Machine": { + "1": { + "VisualLevel": 1, + "TID": "TID_WARMACHINE", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", + "Speed": 200, + "Hitpoints": 3000, + "UpgradeTimeH": 12, + "UpgradeResource": "Elixir2", + "UpgradeCost": 1000000, + "RequiredTownHallLevel": 5, + "AttackRange": 125, + "AttackSpeed": 1200, + "DPS": 125, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warmachine", + "BigPicture": "unit_warmachine_big", + "BigPictureSWF": "sc/info_warmachine.sc", + "SmallPicture": "unit_warmachine_small", + "SmallPictureSWF": "sc/ui.sc", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", + "AbilityIcon": "icon_hero_warmachine_ability1", + "AbilityBigPictureExportName": "unit_warmachine_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 38, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "WarmachineDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", + "SpecialAbilitiesLevel": "1;1;1", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "2": { + "VisualLevel": 2, + "TID": "TID_WARMACHINE", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", + "Speed": 200, + "Hitpoints": 3070, + "UpgradeTimeH": 12, + "UpgradeResource": "Elixir2", + "UpgradeCost": 1100000, + "RequiredTownHallLevel": 5, + "AttackRange": 125, + "AttackSpeed": 1200, + "DPS": 127, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warmachine", + "BigPicture": "unit_warmachine_big", + "BigPictureSWF": "sc/info_warmachine.sc", + "SmallPicture": "unit_warmachine_small", + "SmallPictureSWF": "sc/ui.sc", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", + "AbilityIcon": "icon_hero_warmachine_ability1", + "AbilityBigPictureExportName": "unit_warmachine_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 40, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "WarmachineDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", + "SpecialAbilitiesLevel": "1;1;1", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "3": { + "VisualLevel": 3, + "TID": "TID_WARMACHINE", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", + "Speed": 200, + "Hitpoints": 3140, + "UpgradeTimeH": 24, + "UpgradeResource": "Elixir2", + "UpgradeCost": 1200000, + "RequiredTownHallLevel": 5, + "AttackRange": 125, + "AttackSpeed": 1200, + "DPS": 130, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warmachine", + "BigPicture": "unit_warmachine_big", + "BigPictureSWF": "sc/info_warmachine.sc", + "SmallPicture": "unit_warmachine_small", + "SmallPictureSWF": "sc/ui.sc", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", + "AbilityIcon": "icon_hero_warmachine_ability1", + "AbilityBigPictureExportName": "unit_warmachine_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 41, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "WarmachineDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", + "SpecialAbilitiesLevel": "1;1;1", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "4": { + "VisualLevel": 4, + "TID": "TID_WARMACHINE", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", + "Speed": 200, + "Hitpoints": 3210, + "UpgradeTimeH": 24, + "UpgradeResource": "Elixir2", + "UpgradeCost": 1300000, + "RequiredTownHallLevel": 5, + "AttackRange": 125, + "AttackSpeed": 1200, + "DPS": 132, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warmachine", + "BigPicture": "unit_warmachine_big", + "BigPictureSWF": "sc/info_warmachine.sc", + "SmallPicture": "unit_warmachine_small", + "SmallPictureSWF": "sc/ui.sc", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", + "AbilityIcon": "icon_hero_warmachine_ability1", + "AbilityBigPictureExportName": "unit_warmachine_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 42, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "WarmachineDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", + "SpecialAbilitiesLevel": "1;1;1", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "5": { + "VisualLevel": 5, + "TID": "TID_WARMACHINE", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", + "Speed": 200, + "Hitpoints": 3280, + "UpgradeTimeH": 36, + "UpgradeResource": "Elixir2", + "UpgradeCost": 1500000, + "RequiredTownHallLevel": 5, + "AttackRange": 125, + "AttackSpeed": 1200, + "DPS": 135, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warmachine", + "BigPicture": "unit_warmachine_big", + "BigPictureSWF": "sc/info_warmachine.sc", + "SmallPicture": "unit_warmachine_small", + "SmallPictureSWF": "sc/ui.sc", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", + "AbilityIcon": "icon_hero_warmachine_ability1", + "AbilityBigPictureExportName": "unit_warmachine_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 47, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "WarmachineDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", + "SpecialAbilitiesLevel": "1;1;1", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "6": { + "VisualLevel": 6, + "TID": "TID_WARMACHINE", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", + "Speed": 200, + "Hitpoints": 3350, + "UpgradeTimeH": 36, + "UpgradeResource": "Elixir2", + "UpgradeCost": 1600000, + "RequiredTownHallLevel": 6, + "AttackRange": 125, + "AttackSpeed": 1200, + "DPS": 137, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warmachine", + "BigPicture": "unit_warmachine_big", + "BigPictureSWF": "sc/info_warmachine.sc", + "SmallPicture": "unit_warmachine_small", + "SmallPictureSWF": "sc/ui.sc", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", + "AbilityIcon": "icon_hero_warmachine_ability1", + "AbilityBigPictureExportName": "unit_warmachine_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 48, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "WarmachineDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", + "SpecialAbilitiesLevel": "2;2;2", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "7": { + "VisualLevel": 7, + "TID": "TID_WARMACHINE", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", + "Speed": 200, + "Hitpoints": 3420, + "UpgradeTimeH": 48, + "UpgradeResource": "Elixir2", + "UpgradeCost": 1700000, + "RequiredTownHallLevel": 6, + "AttackRange": 125, + "AttackSpeed": 1200, + "DPS": 140, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warmachine", + "BigPicture": "unit_warmachine_big", + "BigPictureSWF": "sc/info_warmachine.sc", + "SmallPicture": "unit_warmachine_small", + "SmallPictureSWF": "sc/ui.sc", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", + "AbilityIcon": "icon_hero_warmachine_ability1", + "AbilityBigPictureExportName": "unit_warmachine_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 50, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "WarmachineDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", + "SpecialAbilitiesLevel": "2;2;2", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "8": { + "VisualLevel": 8, + "TID": "TID_WARMACHINE", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", + "Speed": 200, + "Hitpoints": 3490, + "UpgradeTimeH": 48, + "UpgradeResource": "Elixir2", + "UpgradeCost": 1800000, + "RequiredTownHallLevel": 6, + "AttackRange": 125, + "AttackSpeed": 1200, + "DPS": 142, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warmachine", + "BigPicture": "unit_warmachine_big", + "BigPictureSWF": "sc/info_warmachine.sc", + "SmallPicture": "unit_warmachine_small", + "SmallPictureSWF": "sc/ui.sc", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", + "AbilityIcon": "icon_hero_warmachine_ability1", + "AbilityBigPictureExportName": "unit_warmachine_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 51, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "WarmachineDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", + "SpecialAbilitiesLevel": "2;2;2", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "9": { + "VisualLevel": 9, + "TID": "TID_WARMACHINE", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", + "Speed": 200, + "Hitpoints": 3560, + "UpgradeTimeH": 60, + "UpgradeResource": "Elixir2", + "UpgradeCost": 1900000, + "RequiredTownHallLevel": 6, + "AttackRange": 125, + "AttackSpeed": 1200, + "DPS": 145, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warmachine", + "BigPicture": "unit_warmachine_big", + "BigPictureSWF": "sc/info_warmachine.sc", + "SmallPicture": "unit_warmachine_small", + "SmallPictureSWF": "sc/ui.sc", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", + "AbilityIcon": "icon_hero_warmachine_ability1", + "AbilityBigPictureExportName": "unit_warmachine_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 53, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "WarmachineDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", + "SpecialAbilitiesLevel": "2;2;2", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "10": { + "VisualLevel": 10, + "TID": "TID_WARMACHINE", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", + "Speed": 200, + "Hitpoints": 3630, + "UpgradeTimeH": 60, + "UpgradeResource": "Elixir2", + "UpgradeCost": 2100000, + "RequiredTownHallLevel": 6, + "AttackRange": 125, + "AttackSpeed": 1200, + "DPS": 147, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warmachine", + "BigPicture": "unit_warmachine_big", + "BigPictureSWF": "sc/info_warmachine.sc", + "SmallPicture": "unit_warmachine_small", + "SmallPictureSWF": "sc/ui.sc", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", + "AbilityIcon": "icon_hero_warmachine_ability1", + "AbilityBigPictureExportName": "unit_warmachine_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 59, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "WarmachineDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", + "SpecialAbilitiesLevel": "2;2;2", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "11": { + "VisualLevel": 11, + "TID": "TID_WARMACHINE", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", + "Speed": 200, + "Hitpoints": 3700, + "UpgradeTimeH": 72, + "UpgradeResource": "Elixir2", + "UpgradeCost": 2200000, + "RequiredTownHallLevel": 7, + "AttackRange": 125, + "AttackSpeed": 1200, + "DPS": 150, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warmachine", + "BigPicture": "unit_warmachine_big", + "BigPictureSWF": "sc/info_warmachine.sc", + "SmallPicture": "unit_warmachine_small", + "SmallPictureSWF": "sc/ui.sc", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", + "AbilityIcon": "icon_hero_warmachine_ability1", + "AbilityBigPictureExportName": "unit_warmachine_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 61, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "WarmachineDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", + "SpecialAbilitiesLevel": "3;3;3", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "12": { + "VisualLevel": 12, + "TID": "TID_WARMACHINE", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", + "Speed": 200, + "Hitpoints": 3770, + "UpgradeTimeH": 72, + "UpgradeResource": "Elixir2", + "UpgradeCost": 2300000, + "RequiredTownHallLevel": 7, + "AttackRange": 125, + "AttackSpeed": 1200, + "DPS": 154, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warmachine", + "BigPicture": "unit_warmachine_big", + "BigPictureSWF": "sc/info_warmachine.sc", + "SmallPicture": "unit_warmachine_small", + "SmallPictureSWF": "sc/ui.sc", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", + "AbilityIcon": "icon_hero_warmachine_ability1", + "AbilityBigPictureExportName": "unit_warmachine_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 62, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "WarmachineDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", + "SpecialAbilitiesLevel": "3;3;3", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "13": { + "VisualLevel": 13, + "TID": "TID_WARMACHINE", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", + "Speed": 200, + "Hitpoints": 3840, + "UpgradeTimeH": 84, + "UpgradeResource": "Elixir2", + "UpgradeCost": 2400000, + "RequiredTownHallLevel": 7, + "AttackRange": 125, + "AttackSpeed": 1200, + "DPS": 157, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warmachine", + "BigPicture": "unit_warmachine_big", + "BigPictureSWF": "sc/info_warmachine.sc", + "SmallPicture": "unit_warmachine_small", + "SmallPictureSWF": "sc/ui.sc", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", + "AbilityIcon": "icon_hero_warmachine_ability1", + "AbilityBigPictureExportName": "unit_warmachine_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 64, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "WarmachineDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", + "SpecialAbilitiesLevel": "3;3;3", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "14": { + "VisualLevel": 14, + "TID": "TID_WARMACHINE", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", + "Speed": 200, + "Hitpoints": 3910, + "UpgradeTimeH": 84, + "UpgradeResource": "Elixir2", + "UpgradeCost": 2500000, + "RequiredTownHallLevel": 7, + "AttackRange": 125, + "AttackSpeed": 1200, + "DPS": 160, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warmachine", + "BigPicture": "unit_warmachine_big", + "BigPictureSWF": "sc/info_warmachine.sc", + "SmallPicture": "unit_warmachine_small", + "SmallPictureSWF": "sc/ui.sc", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", + "AbilityIcon": "icon_hero_warmachine_ability1", + "AbilityBigPictureExportName": "unit_warmachine_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 66, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "WarmachineDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", + "SpecialAbilitiesLevel": "3;3;3", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "15": { + "VisualLevel": 15, + "TID": "TID_WARMACHINE", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", + "Speed": 200, + "Hitpoints": 3980, + "UpgradeTimeH": 96, + "UpgradeResource": "Elixir2", + "UpgradeCost": 2600000, + "RequiredTownHallLevel": 7, + "AttackRange": 125, + "AttackSpeed": 1200, + "DPS": 164, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warmachine", + "BigPicture": "unit_warmachine_big", + "BigPictureSWF": "sc/info_warmachine.sc", + "SmallPicture": "unit_warmachine_small", + "SmallPictureSWF": "sc/ui.sc", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", + "AbilityIcon": "icon_hero_warmachine_ability1", + "AbilityBigPictureExportName": "unit_warmachine_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 73, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "WarmachineDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", + "SpecialAbilitiesLevel": "3;3;3", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "16": { + "VisualLevel": 16, + "TID": "TID_WARMACHINE", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", + "Speed": 200, + "Hitpoints": 4050, + "UpgradeTimeH": 96, + "UpgradeResource": "Elixir2", + "UpgradeCost": 2700000, + "RequiredTownHallLevel": 7, + "AttackRange": 125, + "AttackSpeed": 1200, + "DPS": 167, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warmachine", + "BigPicture": "unit_warmachine_big", + "BigPictureSWF": "sc/info_warmachine.sc", + "SmallPicture": "unit_warmachine_small", + "SmallPictureSWF": "sc/ui.sc", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", + "AbilityIcon": "icon_hero_warmachine_ability1", + "AbilityBigPictureExportName": "unit_warmachine_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 75, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "WarmachineDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", + "SpecialAbilitiesLevel": "4;4;4", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "17": { + "VisualLevel": 17, + "TID": "TID_WARMACHINE", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", + "Speed": 200, + "Hitpoints": 4120, + "UpgradeTimeH": 96, + "UpgradeResource": "Elixir2", + "UpgradeCost": 2800000, + "RequiredTownHallLevel": 7, + "AttackRange": 125, + "AttackSpeed": 1200, + "DPS": 170, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warmachine", + "BigPicture": "unit_warmachine_big", + "BigPictureSWF": "sc/info_warmachine.sc", + "SmallPicture": "unit_warmachine_small", + "SmallPictureSWF": "sc/ui.sc", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", + "AbilityIcon": "icon_hero_warmachine_ability1", + "AbilityBigPictureExportName": "unit_warmachine_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 77, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "WarmachineDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", + "SpecialAbilitiesLevel": "4;4;4", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "18": { + "VisualLevel": 18, + "TID": "TID_WARMACHINE", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", + "Speed": 200, + "Hitpoints": 4190, + "UpgradeTimeH": 96, + "UpgradeResource": "Elixir2", + "UpgradeCost": 2900000, + "RequiredTownHallLevel": 7, + "AttackRange": 125, + "AttackSpeed": 1200, + "DPS": 174, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warmachine", + "BigPicture": "unit_warmachine_big", + "BigPictureSWF": "sc/info_warmachine.sc", + "SmallPicture": "unit_warmachine_small", + "SmallPictureSWF": "sc/ui.sc", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", + "AbilityIcon": "icon_hero_warmachine_ability1", + "AbilityBigPictureExportName": "unit_warmachine_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 80, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "WarmachineDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", + "SpecialAbilitiesLevel": "4;4;4", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "19": { + "VisualLevel": 19, + "TID": "TID_WARMACHINE", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", + "Speed": 200, + "Hitpoints": 4260, + "UpgradeTimeH": 96, + "UpgradeResource": "Elixir2", + "UpgradeCost": 3000000, + "RequiredTownHallLevel": 7, + "AttackRange": 125, + "AttackSpeed": 1200, + "DPS": 177, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warmachine", + "BigPicture": "unit_warmachine_big", + "BigPictureSWF": "sc/info_warmachine.sc", + "SmallPicture": "unit_warmachine_small", + "SmallPictureSWF": "sc/ui.sc", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", + "AbilityIcon": "icon_hero_warmachine_ability1", + "AbilityBigPictureExportName": "unit_warmachine_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 83, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "WarmachineDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", + "SpecialAbilitiesLevel": "4;4;4", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "20": { + "VisualLevel": 20, + "TID": "TID_WARMACHINE", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", + "Speed": 200, + "Hitpoints": 4330, + "UpgradeTimeH": 120, + "UpgradeResource": "Elixir2", + "UpgradeCost": 3100000, + "RequiredTownHallLevel": 7, + "AttackRange": 125, + "AttackSpeed": 1200, + "DPS": 180, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warmachine", + "BigPicture": "unit_warmachine_big", + "BigPictureSWF": "sc/info_warmachine.sc", + "SmallPicture": "unit_warmachine_small", + "SmallPictureSWF": "sc/ui.sc", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", + "AbilityIcon": "icon_hero_warmachine_ability1", + "AbilityBigPictureExportName": "unit_warmachine_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 91, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "WarmachineDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", + "SpecialAbilitiesLevel": "4;4;4", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "21": { + "VisualLevel": 21, + "TID": "TID_WARMACHINE", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", + "Speed": 200, + "Hitpoints": 4400, + "UpgradeTimeH": 120, + "UpgradeResource": "Elixir2", + "UpgradeCost": 3200000, + "RequiredTownHallLevel": 8, + "AttackRange": 125, + "AttackSpeed": 1200, + "DPS": 186, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warmachine", + "BigPicture": "unit_warmachine_big", + "BigPictureSWF": "sc/info_warmachine.sc", + "SmallPicture": "unit_warmachine_small", + "SmallPictureSWF": "sc/ui.sc", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", + "AbilityIcon": "icon_hero_warmachine_ability1", + "AbilityBigPictureExportName": "unit_warmachine_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 94, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "WarmachineDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", + "SpecialAbilitiesLevel": "5;5;5", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "22": { + "VisualLevel": 22, + "TID": "TID_WARMACHINE", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", + "Speed": 200, + "Hitpoints": 4470, + "UpgradeTimeH": 120, + "UpgradeResource": "Elixir2", + "UpgradeCost": 3300000, + "RequiredTownHallLevel": 8, + "AttackRange": 125, + "AttackSpeed": 1200, + "DPS": 192, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warmachine", + "BigPicture": "unit_warmachine_big", + "BigPictureSWF": "sc/info_warmachine.sc", + "SmallPicture": "unit_warmachine_small", + "SmallPictureSWF": "sc/ui.sc", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", + "AbilityIcon": "icon_hero_warmachine_ability1", + "AbilityBigPictureExportName": "unit_warmachine_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 96, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "WarmachineDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", + "SpecialAbilitiesLevel": "5;5;5", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "23": { + "VisualLevel": 23, + "TID": "TID_WARMACHINE", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", + "Speed": 200, + "Hitpoints": 4540, + "UpgradeTimeH": 120, + "UpgradeResource": "Elixir2", + "UpgradeCost": 3400000, + "RequiredTownHallLevel": 8, + "AttackRange": 125, + "AttackSpeed": 1200, + "DPS": 198, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warmachine", + "BigPicture": "unit_warmachine_big", + "BigPictureSWF": "sc/info_warmachine.sc", + "SmallPicture": "unit_warmachine_small", + "SmallPictureSWF": "sc/ui.sc", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", + "AbilityIcon": "icon_hero_warmachine_ability1", + "AbilityBigPictureExportName": "unit_warmachine_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 100, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "WarmachineDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", + "SpecialAbilitiesLevel": "5;5;5", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "24": { + "VisualLevel": 24, + "TID": "TID_WARMACHINE", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", + "Speed": 200, + "Hitpoints": 4610, + "UpgradeTimeH": 120, + "UpgradeResource": "Elixir2", + "UpgradeCost": 3500000, + "RequiredTownHallLevel": 8, + "AttackRange": 125, + "AttackSpeed": 1200, + "DPS": 204, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warmachine", + "BigPicture": "unit_warmachine_big", + "BigPictureSWF": "sc/info_warmachine.sc", + "SmallPicture": "unit_warmachine_small", + "SmallPictureSWF": "sc/ui.sc", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", + "AbilityIcon": "icon_hero_warmachine_ability1", + "AbilityBigPictureExportName": "unit_warmachine_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 104, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "WarmachineDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", + "SpecialAbilitiesLevel": "5;5;5", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "25": { + "VisualLevel": 25, + "TID": "TID_WARMACHINE", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", + "Speed": 200, + "Hitpoints": 4680, + "UpgradeTimeH": 144, + "UpgradeResource": "Elixir2", + "UpgradeCost": 3600000, + "RequiredTownHallLevel": 8, + "AttackRange": 125, + "AttackSpeed": 1200, + "DPS": 210, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warmachine", + "BigPicture": "unit_warmachine_big", + "BigPictureSWF": "sc/info_warmachine.sc", + "SmallPicture": "unit_warmachine_small", + "SmallPictureSWF": "sc/ui.sc", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", + "AbilityIcon": "icon_hero_warmachine_ability1", + "AbilityBigPictureExportName": "unit_warmachine_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 113, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "WarmachineDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", + "SpecialAbilitiesLevel": "5;5;5", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "26": { + "VisualLevel": 26, + "TID": "TID_WARMACHINE", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", + "Speed": 200, + "Hitpoints": 4750, + "UpgradeTimeH": 144, + "UpgradeResource": "Elixir2", + "UpgradeCost": 3700000, + "RequiredTownHallLevel": 9, + "AttackRange": 125, + "AttackSpeed": 1200, + "DPS": 218, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warmachine", + "BigPicture": "unit_warmachine_big", + "BigPictureSWF": "sc/info_warmachine.sc", + "SmallPicture": "unit_warmachine_small", + "SmallPictureSWF": "sc/ui.sc", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", + "AbilityIcon": "icon_hero_warmachine_ability1", + "AbilityBigPictureExportName": "unit_warmachine_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 116, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "WarmachineDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", + "SpecialAbilitiesLevel": "6;6;6", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "27": { + "VisualLevel": 27, + "TID": "TID_WARMACHINE", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", + "Speed": 200, + "Hitpoints": 4820, + "UpgradeTimeH": 144, + "UpgradeResource": "Elixir2", + "UpgradeCost": 3800000, + "RequiredTownHallLevel": 9, + "AttackRange": 125, + "AttackSpeed": 1200, + "DPS": 226, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warmachine", + "BigPicture": "unit_warmachine_big", + "BigPictureSWF": "sc/info_warmachine.sc", + "SmallPicture": "unit_warmachine_small", + "SmallPictureSWF": "sc/ui.sc", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", + "AbilityIcon": "icon_hero_warmachine_ability1", + "AbilityBigPictureExportName": "unit_warmachine_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 120, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "WarmachineDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", + "SpecialAbilitiesLevel": "6;6;6", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "28": { + "VisualLevel": 28, + "TID": "TID_WARMACHINE", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", + "Speed": 200, + "Hitpoints": 4890, + "UpgradeTimeH": 144, + "UpgradeResource": "Elixir2", + "UpgradeCost": 3900000, + "RequiredTownHallLevel": 9, + "AttackRange": 125, + "AttackSpeed": 1200, + "DPS": 234, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warmachine", + "BigPicture": "unit_warmachine_big", + "BigPictureSWF": "sc/info_warmachine.sc", + "SmallPicture": "unit_warmachine_small", + "SmallPictureSWF": "sc/ui.sc", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", + "AbilityIcon": "icon_hero_warmachine_ability1", + "AbilityBigPictureExportName": "unit_warmachine_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 124, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "WarmachineDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", + "SpecialAbilitiesLevel": "6;6;6", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "29": { + "VisualLevel": 29, + "TID": "TID_WARMACHINE", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", + "Speed": 200, + "Hitpoints": 4960, + "UpgradeTimeH": 144, + "UpgradeResource": "Elixir2", + "UpgradeCost": 4000000, + "RequiredTownHallLevel": 9, + "AttackRange": 125, + "AttackSpeed": 1200, + "DPS": 242, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warmachine", + "BigPicture": "unit_warmachine_big", + "BigPictureSWF": "sc/info_warmachine.sc", + "SmallPicture": "unit_warmachine_small", + "SmallPictureSWF": "sc/ui.sc", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", + "AbilityIcon": "icon_hero_warmachine_ability1", + "AbilityBigPictureExportName": "unit_warmachine_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 127, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "WarmachineDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", + "SpecialAbilitiesLevel": "6;6;6", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "30": { + "VisualLevel": 30, + "TID": "TID_WARMACHINE", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", + "Speed": 200, + "Hitpoints": 5030, + "UpgradeTimeH": 168, + "UpgradeResource": "Elixir2", + "UpgradeCost": 4100000, + "RequiredTownHallLevel": 9, + "AttackRange": 125, + "AttackSpeed": 1200, + "DPS": 250, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warmachine", + "BigPicture": "unit_warmachine_big", + "BigPictureSWF": "sc/info_warmachine.sc", + "SmallPicture": "unit_warmachine_small", + "SmallPictureSWF": "sc/ui.sc", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", + "AbilityIcon": "icon_hero_warmachine_ability1", + "AbilityBigPictureExportName": "unit_warmachine_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 137, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "WarmachineDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", + "SpecialAbilitiesLevel": "6;6;6", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "31": { + "VisualLevel": 31, + "TID": "TID_WARMACHINE", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", + "Speed": 200, + "Hitpoints": 5100, + "UpgradeTimeH": 168, + "UpgradeResource": "Elixir2", + "UpgradeCost": 4200000, + "RequiredTownHallLevel": 10, + "AttackRange": 125, + "AttackSpeed": 1200, + "DPS": 258, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warmachine", + "BigPicture": "unit_warmachine_big", + "BigPictureSWF": "sc/info_warmachine.sc", + "SmallPicture": "unit_warmachine_small", + "SmallPictureSWF": "sc/ui.sc", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", + "AbilityIcon": "icon_hero_warmachine_ability1", + "AbilityBigPictureExportName": "unit_warmachine_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 140, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "WarmachineDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Machine Electric Hammer 1;Battle Machine Electric Hammer 2;Battle Machine Electric Hammer 3", + "SpecialAbilitiesLevel": "7;7;7", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "32": { + "VisualLevel": 32, + "TID": "TID_WARMACHINE", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", + "Speed": 200, + "Hitpoints": 5170, + "UpgradeTimeH": 168, + "UpgradeResource": "Elixir2", + "UpgradeCost": 4300000, + "RequiredTownHallLevel": 10, + "AttackRange": 125, + "AttackSpeed": 1200, + "DPS": 266, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warmachine", + "BigPicture": "unit_warmachine_big", + "BigPictureSWF": "sc/info_warmachine.sc", + "SmallPicture": "unit_warmachine_small", + "SmallPictureSWF": "sc/ui.sc", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", + "AbilityIcon": "icon_hero_warmachine_ability1", + "AbilityBigPictureExportName": "unit_warmachine_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 143, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "WarmachineDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "33": { + "VisualLevel": 33, + "TID": "TID_WARMACHINE", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", + "Speed": 200, + "Hitpoints": 5240, + "UpgradeTimeH": 168, + "UpgradeResource": "Elixir2", + "UpgradeCost": 4400000, + "RequiredTownHallLevel": 10, + "AttackRange": 125, + "AttackSpeed": 1200, + "DPS": 274, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warmachine", + "BigPicture": "unit_warmachine_big", + "BigPictureSWF": "sc/info_warmachine.sc", + "SmallPicture": "unit_warmachine_small", + "SmallPictureSWF": "sc/ui.sc", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", + "AbilityIcon": "icon_hero_warmachine_ability1", + "AbilityBigPictureExportName": "unit_warmachine_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 146, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "WarmachineDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "34": { + "VisualLevel": 34, + "TID": "TID_WARMACHINE", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", + "Speed": 200, + "Hitpoints": 5310, + "UpgradeTimeH": 168, + "UpgradeResource": "Elixir2", + "UpgradeCost": 4500000, + "RequiredTownHallLevel": 10, + "AttackRange": 125, + "AttackSpeed": 1200, + "DPS": 282, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warmachine", + "BigPicture": "unit_warmachine_big", + "BigPictureSWF": "sc/info_warmachine.sc", + "SmallPicture": "unit_warmachine_small", + "SmallPictureSWF": "sc/ui.sc", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", + "AbilityIcon": "icon_hero_warmachine_ability1", + "AbilityBigPictureExportName": "unit_warmachine_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 149, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "WarmachineDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "35": { + "VisualLevel": 35, + "TID": "TID_WARMACHINE", + "InfoTID": "TID_HERO_INSTRUCTIONS_WARMACHINE", + "Speed": 200, + "Hitpoints": 5380, + "UpgradeTimeH": 168, + "UpgradeResource": "Elixir2", + "UpgradeCost": 4500000, + "RequiredTownHallLevel": 10, + "AttackRange": 125, + "AttackSpeed": 1200, + "DPS": 290, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warmachine", + "BigPicture": "unit_warmachine_big", + "BigPictureSWF": "sc/info_warmachine.sc", + "SmallPicture": "unit_warmachine_small", + "SmallPictureSWF": "sc/ui.sc", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_WARMACHINE_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_WARMACHINE_DESC", + "AbilityIcon": "icon_hero_warmachine_ability1", + "AbilityBigPictureExportName": "unit_warmachine_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 160, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "WarmachineDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + } + }, + "Royal Champion": { + "1": { + "VisualLevel": 1, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 2508, + "UpgradeTimeH": 8, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 70000, + "RequiredTownHallLevel": 13, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 340, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 30, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 110, + "StrengthWeight2": 31, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 1, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampion", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 1 + }, + "2": { + "VisualLevel": 2, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 2550, + "UpgradeTimeH": 12, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 75000, + "RequiredTownHallLevel": 13, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 350, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 30, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 110, + "StrengthWeight2": 31, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 1, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampion", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 1 + }, + "3": { + "VisualLevel": 3, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 2593, + "UpgradeTimeH": 16, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 80000, + "RequiredTownHallLevel": 13, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 360, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 30, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 110, + "StrengthWeight2": 31, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 1, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampion", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 2 + }, + "4": { + "VisualLevel": 4, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 2635, + "UpgradeTimeH": 20, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 90000, + "RequiredTownHallLevel": 13, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 370, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 30, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 0, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 110, + "StrengthWeight2": 31, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 1, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampion", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 3 + }, + "5": { + "VisualLevel": 5, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 2678, + "UpgradeTimeH": 44, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 100000, + "RequiredTownHallLevel": 13, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 375, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 32, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 1700, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 150, + "StrengthWeight2": 33, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 2, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 4 + }, + "6": { + "VisualLevel": 6, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 2720, + "UpgradeTimeH": 66, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 110000, + "RequiredTownHallLevel": 13, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 380, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 32, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 1700, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 150, + "StrengthWeight2": 33, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 2, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 5 + }, + "7": { + "VisualLevel": 7, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 2763, + "UpgradeTimeH": 78, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 120000, + "RequiredTownHallLevel": 13, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 385, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 32, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 1700, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 150, + "StrengthWeight2": 33, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 2, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 5 + }, + "8": { + "VisualLevel": 8, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 2805, + "UpgradeTimeH": 90, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 130000, + "RequiredTownHallLevel": 13, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 390, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 32, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 1700, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 150, + "StrengthWeight2": 33, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 2, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 6 + }, + "9": { + "VisualLevel": 9, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 2848, + "UpgradeTimeH": 102, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 140000, + "RequiredTownHallLevel": 13, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 396, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 32, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 1700, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 150, + "StrengthWeight2": 33, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 2, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 6 + }, + "10": { + "VisualLevel": 10, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 2890, + "UpgradeTimeH": 108, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 150000, + "RequiredTownHallLevel": 13, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 402, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 34, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 2000, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 160, + "StrengthWeight2": 35, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 3, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 7 + }, + "11": { + "VisualLevel": 11, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 2933, + "UpgradeTimeH": 120, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 160000, + "RequiredTownHallLevel": 13, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 408, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 34, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 2000, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 160, + "StrengthWeight2": 35, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 3, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 7 + }, + "12": { + "VisualLevel": 12, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 2975, + "UpgradeTimeH": 120, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 165000, + "RequiredTownHallLevel": 13, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 414, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 34, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 2000, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 160, + "StrengthWeight2": 35, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 3, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 8 + }, + "13": { + "VisualLevel": 13, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 3018, + "UpgradeTimeH": 120, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 170000, + "RequiredTownHallLevel": 13, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 420, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 34, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 2000, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 160, + "StrengthWeight2": 35, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 3, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 8 + }, + "14": { + "VisualLevel": 14, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 3060, + "UpgradeTimeH": 132, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 175000, + "RequiredTownHallLevel": 13, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 426, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 34, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 2000, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 160, + "StrengthWeight2": 35, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 3, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 8 + }, + "15": { + "VisualLevel": 15, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 3103, + "UpgradeTimeH": 132, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 180000, + "RequiredTownHallLevel": 13, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 432, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 36, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 2300, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 170, + "StrengthWeight2": 37, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 4, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 9 + }, + "16": { + "VisualLevel": 16, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 3145, + "UpgradeTimeH": 132, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 185000, + "RequiredTownHallLevel": 13, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 438, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 36, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 2300, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 170, + "StrengthWeight2": 37, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 4, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 9 + }, + "17": { + "VisualLevel": 17, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 3188, + "UpgradeTimeH": 144, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 190000, + "RequiredTownHallLevel": 13, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 444, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 36, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 2300, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 170, + "StrengthWeight2": 37, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 4, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 9 + }, + "18": { + "VisualLevel": 18, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 3230, + "UpgradeTimeH": 144, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 195000, + "RequiredTownHallLevel": 13, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 448, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 36, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 2300, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 170, + "StrengthWeight2": 37, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 4, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 10 + }, + "19": { + "VisualLevel": 19, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 3273, + "UpgradeTimeH": 144, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 200000, + "RequiredTownHallLevel": 13, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 452, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 36, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 2300, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 170, + "StrengthWeight2": 37, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 4, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 11 + }, + "20": { + "VisualLevel": 20, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 3315, + "UpgradeTimeH": 156, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 205000, + "RequiredTownHallLevel": 13, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 456, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 38, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 2600, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 180, + "StrengthWeight2": 39, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 5, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 12 + }, + "21": { + "VisualLevel": 21, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 3349, + "UpgradeTimeH": 156, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 210000, + "RequiredTownHallLevel": 13, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 460, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 38, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 2600, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 180, + "StrengthWeight2": 39, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 5, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 12 + }, + "22": { + "VisualLevel": 22, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 3383, + "UpgradeTimeH": 156, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 215000, + "RequiredTownHallLevel": 13, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 465, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 38, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 2600, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 180, + "StrengthWeight2": 39, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 5, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 12 + }, + "23": { + "VisualLevel": 23, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 3417, + "UpgradeTimeH": 156, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 220000, + "RequiredTownHallLevel": 13, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 470, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 38, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 2600, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 180, + "StrengthWeight2": 39, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 5, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 12 + }, + "24": { + "VisualLevel": 24, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 3451, + "UpgradeTimeH": 156, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 225000, + "RequiredTownHallLevel": 13, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 474, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 38, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 2600, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 180, + "StrengthWeight2": 39, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 5, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 12 + }, + "25": { + "VisualLevel": 25, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 3485, + "UpgradeTimeH": 174, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 230000, + "RequiredTownHallLevel": 13, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 477, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 40, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 2800, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 190, + "StrengthWeight2": 41, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 6, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 13 + }, + "26": { + "VisualLevel": 26, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 3519, + "UpgradeTimeH": 174, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 235000, + "RequiredTownHallLevel": 14, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 480, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 40, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 2800, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 190, + "StrengthWeight2": 41, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 6, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 13 + }, + "27": { + "VisualLevel": 27, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 3553, + "UpgradeTimeH": 174, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 240000, + "RequiredTownHallLevel": 14, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 483, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 40, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 2800, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 190, + "StrengthWeight2": 41, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 6, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 14 + }, + "28": { + "VisualLevel": 28, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 3587, + "UpgradeTimeH": 174, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 245000, + "RequiredTownHallLevel": 14, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 486, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 40, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 2800, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 190, + "StrengthWeight2": 41, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 6, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 14 + }, + "29": { + "VisualLevel": 29, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 3621, + "UpgradeTimeH": 174, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 250000, + "RequiredTownHallLevel": 14, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 489, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 40, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 2800, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 190, + "StrengthWeight2": 41, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 6, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 14 + }, + "30": { + "VisualLevel": 30, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 3655, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 260000, + "RequiredTownHallLevel": 14, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 492, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 42, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 3000, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 200, + "StrengthWeight2": 43, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 7, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 15 + }, + "31": { + "VisualLevel": 31, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 3681, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 265000, + "RequiredTownHallLevel": 15, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 495, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 42, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 3000, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 200, + "StrengthWeight2": 43, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 7, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 15 + }, + "32": { + "VisualLevel": 32, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 3706, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 270000, + "RequiredTownHallLevel": 15, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 498, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 42, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 3000, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 200, + "StrengthWeight2": 43, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 7, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 15 + }, + "33": { + "VisualLevel": 33, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 3732, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 275000, + "RequiredTownHallLevel": 15, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 502, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 42, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 3000, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 200, + "StrengthWeight2": 43, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 7, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 15 + }, + "34": { + "VisualLevel": 34, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 3757, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 280000, + "RequiredTownHallLevel": 15, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 506, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 42, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 3000, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 200, + "StrengthWeight2": 43, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 7, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 15 + }, + "35": { + "VisualLevel": 35, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 3783, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 285000, + "RequiredTownHallLevel": 15, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 510, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 44, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 3200, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 200, + "StrengthWeight2": 45, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 8, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 15 + }, + "36": { + "VisualLevel": 36, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 3808, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 290000, + "RequiredTownHallLevel": 15, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 514, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 44, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 3200, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 200, + "StrengthWeight2": 45, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 8, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 15 + }, + "37": { + "VisualLevel": 37, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 3834, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 295000, + "RequiredTownHallLevel": 15, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 518, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 44, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 3200, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 200, + "StrengthWeight2": 45, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 8, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 15 + }, + "38": { + "VisualLevel": 38, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 3859, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 300000, + "RequiredTownHallLevel": 15, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 522, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 44, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 3200, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 200, + "StrengthWeight2": 45, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 8, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 15 + }, + "39": { + "VisualLevel": 39, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 3885, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 305000, + "RequiredTownHallLevel": 15, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 526, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 44, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 3200, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 200, + "StrengthWeight2": 45, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 8, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 15 + }, + "40": { + "VisualLevel": 40, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 3910, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 315000, + "RequiredTownHallLevel": 15, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 530, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 46, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 3400, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 200, + "StrengthWeight2": 47, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 9, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 15 + }, + "41": { + "VisualLevel": 41, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 3936, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 325000, + "RequiredTownHallLevel": 16, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 533, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 46, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityTime": 4000, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 3400, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 200, + "StrengthWeight2": 47, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 9, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 15 + }, + "42": { + "VisualLevel": 42, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 3961, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 335000, + "RequiredTownHallLevel": 16, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 536, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 46, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 3400, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 200, + "StrengthWeight2": 47, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 9, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 15 + }, + "43": { + "VisualLevel": 43, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 3987, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 345000, + "RequiredTownHallLevel": 16, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 539, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 46, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 3400, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 200, + "StrengthWeight2": 47, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 9, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 15 + }, + "44": { + "VisualLevel": 44, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 4012, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 355000, + "RequiredTownHallLevel": 16, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 542, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 46, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 3400, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 200, + "StrengthWeight2": 47, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 9, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 15 + }, + "45": { + "VisualLevel": 45, + "TID": "TID_HERO_ROYAL_CHAMPION", + "InfoTID": "TID_HERO_INSTRUCTIONS_ROYAL_CHAMPION", + "Speed": 300, + "Hitpoints": 4038, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 355000, + "RequiredTownHallLevel": 16, + "AttackRange": 300, + "AttackSpeed": 1200, + "DPS": 545, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_warriorPrincess", + "BigPicture": "unit_royal_champion_big", + "BigPictureSWF": "sc/info_royal_champion.sc", + "SmallPicture": "unit_royal_champion_smalll", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "AmazonQueen_javelin", + "DeployEffect": "Hero Deploy", + "HitEffect": "AmazonQ ability hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": true, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "HealerWeight": 23, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 48, + "TrainingResource": "Elixir", + "CelebrateEffect": "Warrior Princess Scream", + "SleepOffsetX": 70, + "SleepOffsetY": "-40", + "PatrolRadius": 300, + "AbilityAffectsHero": true, + "AbilityOnce": true, + "AbilityCooldown": 0, + "AbilityHealthIncrease": 3600, + "AbilityTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_TITLE", + "AbilityDescTID": "TID_HERO_ABILITY_ROYAL_CHAMPION_DESC", + "AbilityIcon": "icon_hero_warriorPrincess_ability1", + "AbilityBigPictureExportName": "unit_royal_champion_ability_big", + "StrengthWeight": 200, + "StrengthWeight2": 49, + "AlertRadius": 1200, + "PreferedTargetBuildingClass": "Defense", + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 1000, + "TargetedEffectOffset": "-50", + "TriggersTraps": true, + "DefaultSkin": "WarriorPrincessDefault", + "UseAutoHeroAbility": true, + "NewTargetAttackDelay": 400, + "Gender": "F", + "SpecialAbilities": "RoyalChampionAbilityHeal", + "SpecialAbilitiesLevel": 10, + "AvoidNoiseInAttackPositionSelection": true, + "PreviewScenario": "HeroRoyalChampionLVL5", + "ItemSlotCount": 2, + "DefaultItems": "Seeking Shield; Protective Cloak;", + "MigrationGearLevel": 15 + } + }, + "Battle Copter": { + "1": { + "VisualLevel": 15, + "TID": "TID_HERO_BATTLE_COPTER", + "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", + "Speed": 180, + "Hitpoints": 2857, + "UpgradeTimeH": 120, + "UpgradeResource": "Elixir2", + "UpgradeCost": 2600000, + "RequiredTownHallLevel": 8, + "AttackRange": 600, + "AttackSpeed": 650, + "DPS": 112, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_battlecopter", + "BigPicture": "unit_battlecopter_big", + "BigPictureSWF": "sc/info_battlecopter.sc", + "SmallPicture": "icon_hero_battlecopter_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "BattleCopterProjectile", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 0, + "SleepOffsetY": "-100", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", + "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", + "AbilityIcon": "icon_hero_battlecopter_ability1", + "AbilityBigPictureExportName": "unit_battlecopter_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 66, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": 100, + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "BattleCopterDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", + "SpecialAbilitiesLevel": "1;1;1", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "2": { + "VisualLevel": 15, + "TID": "TID_HERO_BATTLE_COPTER", + "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", + "Speed": 180, + "Hitpoints": 2857, + "UpgradeTimeH": 120, + "UpgradeResource": "Elixir2", + "UpgradeCost": 2600000, + "RequiredTownHallLevel": 8, + "AttackRange": 600, + "AttackSpeed": 650, + "DPS": 112, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_battlecopter", + "BigPicture": "unit_battlecopter_big", + "BigPictureSWF": "sc/info_battlecopter.sc", + "SmallPicture": "icon_hero_battlecopter_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "BattleCopterProjectile", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 0, + "SleepOffsetY": "-100", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", + "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", + "AbilityIcon": "icon_hero_battlecopter_ability1", + "AbilityBigPictureExportName": "unit_battlecopter_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 66, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": 100, + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "BattleCopterDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", + "SpecialAbilitiesLevel": "1;1;1", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "3": { + "VisualLevel": 15, + "TID": "TID_HERO_BATTLE_COPTER", + "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", + "Speed": 180, + "Hitpoints": 2857, + "UpgradeTimeH": 120, + "UpgradeResource": "Elixir2", + "UpgradeCost": 2600000, + "RequiredTownHallLevel": 8, + "AttackRange": 600, + "AttackSpeed": 650, + "DPS": 112, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_battlecopter", + "BigPicture": "unit_battlecopter_big", + "BigPictureSWF": "sc/info_battlecopter.sc", + "SmallPicture": "icon_hero_battlecopter_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "BattleCopterProjectile", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 0, + "SleepOffsetY": "-100", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", + "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", + "AbilityIcon": "icon_hero_battlecopter_ability1", + "AbilityBigPictureExportName": "unit_battlecopter_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 66, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": 100, + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "BattleCopterDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", + "SpecialAbilitiesLevel": "1;1;1", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "4": { + "VisualLevel": 15, + "TID": "TID_HERO_BATTLE_COPTER", + "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", + "Speed": 180, + "Hitpoints": 2857, + "UpgradeTimeH": 120, + "UpgradeResource": "Elixir2", + "UpgradeCost": 2600000, + "RequiredTownHallLevel": 8, + "AttackRange": 600, + "AttackSpeed": 650, + "DPS": 112, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_battlecopter", + "BigPicture": "unit_battlecopter_big", + "BigPictureSWF": "sc/info_battlecopter.sc", + "SmallPicture": "icon_hero_battlecopter_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "BattleCopterProjectile", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 0, + "SleepOffsetY": "-100", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", + "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", + "AbilityIcon": "icon_hero_battlecopter_ability1", + "AbilityBigPictureExportName": "unit_battlecopter_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 66, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": 100, + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "BattleCopterDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", + "SpecialAbilitiesLevel": "1;1;1", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "5": { + "VisualLevel": 15, + "TID": "TID_HERO_BATTLE_COPTER", + "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", + "Speed": 180, + "Hitpoints": 2857, + "UpgradeTimeH": 120, + "UpgradeResource": "Elixir2", + "UpgradeCost": 2600000, + "RequiredTownHallLevel": 8, + "AttackRange": 600, + "AttackSpeed": 650, + "DPS": 112, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_battlecopter", + "BigPicture": "unit_battlecopter_big", + "BigPictureSWF": "sc/info_battlecopter.sc", + "SmallPicture": "icon_hero_battlecopter_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "BattleCopterProjectile", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 0, + "SleepOffsetY": "-100", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", + "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", + "AbilityIcon": "icon_hero_battlecopter_ability1", + "AbilityBigPictureExportName": "unit_battlecopter_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 66, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": 100, + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "BattleCopterDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", + "SpecialAbilitiesLevel": "1;1;1", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "6": { + "VisualLevel": 15, + "TID": "TID_HERO_BATTLE_COPTER", + "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", + "Speed": 180, + "Hitpoints": 2857, + "UpgradeTimeH": 120, + "UpgradeResource": "Elixir2", + "UpgradeCost": 2600000, + "RequiredTownHallLevel": 8, + "AttackRange": 600, + "AttackSpeed": 650, + "DPS": 112, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_battlecopter", + "BigPicture": "unit_battlecopter_big", + "BigPictureSWF": "sc/info_battlecopter.sc", + "SmallPicture": "icon_hero_battlecopter_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "BattleCopterProjectile", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 0, + "SleepOffsetY": "-100", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", + "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", + "AbilityIcon": "icon_hero_battlecopter_ability1", + "AbilityBigPictureExportName": "unit_battlecopter_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 66, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": 100, + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "BattleCopterDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", + "SpecialAbilitiesLevel": "1;1;1", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "7": { + "VisualLevel": 15, + "TID": "TID_HERO_BATTLE_COPTER", + "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", + "Speed": 180, + "Hitpoints": 2857, + "UpgradeTimeH": 120, + "UpgradeResource": "Elixir2", + "UpgradeCost": 2600000, + "RequiredTownHallLevel": 8, + "AttackRange": 600, + "AttackSpeed": 650, + "DPS": 112, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_battlecopter", + "BigPicture": "unit_battlecopter_big", + "BigPictureSWF": "sc/info_battlecopter.sc", + "SmallPicture": "icon_hero_battlecopter_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "BattleCopterProjectile", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 0, + "SleepOffsetY": "-100", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", + "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", + "AbilityIcon": "icon_hero_battlecopter_ability1", + "AbilityBigPictureExportName": "unit_battlecopter_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 66, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": 100, + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "BattleCopterDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", + "SpecialAbilitiesLevel": "1;1;1", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "8": { + "VisualLevel": 15, + "TID": "TID_HERO_BATTLE_COPTER", + "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", + "Speed": 180, + "Hitpoints": 2857, + "UpgradeTimeH": 120, + "UpgradeResource": "Elixir2", + "UpgradeCost": 2600000, + "RequiredTownHallLevel": 8, + "AttackRange": 600, + "AttackSpeed": 650, + "DPS": 112, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_battlecopter", + "BigPicture": "unit_battlecopter_big", + "BigPictureSWF": "sc/info_battlecopter.sc", + "SmallPicture": "icon_hero_battlecopter_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "BattleCopterProjectile", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 0, + "SleepOffsetY": "-100", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", + "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", + "AbilityIcon": "icon_hero_battlecopter_ability1", + "AbilityBigPictureExportName": "unit_battlecopter_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 66, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": 100, + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "BattleCopterDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", + "SpecialAbilitiesLevel": "1;1;1", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "9": { + "VisualLevel": 15, + "TID": "TID_HERO_BATTLE_COPTER", + "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", + "Speed": 180, + "Hitpoints": 2857, + "UpgradeTimeH": 120, + "UpgradeResource": "Elixir2", + "UpgradeCost": 2600000, + "RequiredTownHallLevel": 8, + "AttackRange": 600, + "AttackSpeed": 650, + "DPS": 112, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_battlecopter", + "BigPicture": "unit_battlecopter_big", + "BigPictureSWF": "sc/info_battlecopter.sc", + "SmallPicture": "icon_hero_battlecopter_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "BattleCopterProjectile", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 0, + "SleepOffsetY": "-100", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", + "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", + "AbilityIcon": "icon_hero_battlecopter_ability1", + "AbilityBigPictureExportName": "unit_battlecopter_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 66, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": 100, + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "BattleCopterDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", + "SpecialAbilitiesLevel": "1;1;1", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "10": { + "VisualLevel": 15, + "TID": "TID_HERO_BATTLE_COPTER", + "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", + "Speed": 180, + "Hitpoints": 2857, + "UpgradeTimeH": 120, + "UpgradeResource": "Elixir2", + "UpgradeCost": 2600000, + "RequiredTownHallLevel": 8, + "AttackRange": 600, + "AttackSpeed": 650, + "DPS": 112, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_battlecopter", + "BigPicture": "unit_battlecopter_big", + "BigPictureSWF": "sc/info_battlecopter.sc", + "SmallPicture": "icon_hero_battlecopter_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "BattleCopterProjectile", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 0, + "SleepOffsetY": "-100", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", + "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", + "AbilityIcon": "icon_hero_battlecopter_ability1", + "AbilityBigPictureExportName": "unit_battlecopter_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 66, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": 100, + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "BattleCopterDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", + "SpecialAbilitiesLevel": "1;1;1", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "11": { + "VisualLevel": 15, + "TID": "TID_HERO_BATTLE_COPTER", + "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", + "Speed": 180, + "Hitpoints": 2857, + "UpgradeTimeH": 120, + "UpgradeResource": "Elixir2", + "UpgradeCost": 2600000, + "RequiredTownHallLevel": 8, + "AttackRange": 600, + "AttackSpeed": 650, + "DPS": 112, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_battlecopter", + "BigPicture": "unit_battlecopter_big", + "BigPictureSWF": "sc/info_battlecopter.sc", + "SmallPicture": "icon_hero_battlecopter_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "BattleCopterProjectile", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 0, + "SleepOffsetY": "-100", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", + "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", + "AbilityIcon": "icon_hero_battlecopter_ability1", + "AbilityBigPictureExportName": "unit_battlecopter_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 66, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": 100, + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "BattleCopterDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", + "SpecialAbilitiesLevel": "1;1;1", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "12": { + "VisualLevel": 15, + "TID": "TID_HERO_BATTLE_COPTER", + "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", + "Speed": 180, + "Hitpoints": 2857, + "UpgradeTimeH": 120, + "UpgradeResource": "Elixir2", + "UpgradeCost": 2600000, + "RequiredTownHallLevel": 8, + "AttackRange": 600, + "AttackSpeed": 650, + "DPS": 112, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_battlecopter", + "BigPicture": "unit_battlecopter_big", + "BigPictureSWF": "sc/info_battlecopter.sc", + "SmallPicture": "icon_hero_battlecopter_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "BattleCopterProjectile", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 0, + "SleepOffsetY": "-100", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", + "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", + "AbilityIcon": "icon_hero_battlecopter_ability1", + "AbilityBigPictureExportName": "unit_battlecopter_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 66, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": 100, + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "BattleCopterDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", + "SpecialAbilitiesLevel": "1;1;1", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "13": { + "VisualLevel": 15, + "TID": "TID_HERO_BATTLE_COPTER", + "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", + "Speed": 180, + "Hitpoints": 2857, + "UpgradeTimeH": 120, + "UpgradeResource": "Elixir2", + "UpgradeCost": 2600000, + "RequiredTownHallLevel": 8, + "AttackRange": 600, + "AttackSpeed": 650, + "DPS": 112, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_battlecopter", + "BigPicture": "unit_battlecopter_big", + "BigPictureSWF": "sc/info_battlecopter.sc", + "SmallPicture": "icon_hero_battlecopter_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "BattleCopterProjectile", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 0, + "SleepOffsetY": "-100", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", + "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", + "AbilityIcon": "icon_hero_battlecopter_ability1", + "AbilityBigPictureExportName": "unit_battlecopter_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 66, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": 100, + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "BattleCopterDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", + "SpecialAbilitiesLevel": "1;1;1", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "14": { + "VisualLevel": 15, + "TID": "TID_HERO_BATTLE_COPTER", + "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", + "Speed": 180, + "Hitpoints": 2857, + "UpgradeTimeH": 120, + "UpgradeResource": "Elixir2", + "UpgradeCost": 2600000, + "RequiredTownHallLevel": 8, + "AttackRange": 600, + "AttackSpeed": 650, + "DPS": 112, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_battlecopter", + "BigPicture": "unit_battlecopter_big", + "BigPictureSWF": "sc/info_battlecopter.sc", + "SmallPicture": "icon_hero_battlecopter_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "BattleCopterProjectile", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 0, + "SleepOffsetY": "-100", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", + "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", + "AbilityIcon": "icon_hero_battlecopter_ability1", + "AbilityBigPictureExportName": "unit_battlecopter_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 66, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": 100, + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "BattleCopterDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", + "SpecialAbilitiesLevel": "1;1;1", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "15": { + "VisualLevel": 15, + "TID": "TID_HERO_BATTLE_COPTER", + "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", + "Speed": 180, + "Hitpoints": 2857, + "UpgradeTimeH": 120, + "UpgradeResource": "Elixir2", + "UpgradeCost": 2600000, + "RequiredTownHallLevel": 8, + "AttackRange": 600, + "AttackSpeed": 650, + "DPS": 112, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_battlecopter", + "BigPicture": "unit_battlecopter_big", + "BigPictureSWF": "sc/info_battlecopter.sc", + "SmallPicture": "icon_hero_battlecopter_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "BattleCopterProjectile", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 0, + "SleepOffsetY": "-100", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", + "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", + "AbilityIcon": "icon_hero_battlecopter_ability1", + "AbilityBigPictureExportName": "unit_battlecopter_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 66, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": 100, + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "BattleCopterDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", + "SpecialAbilitiesLevel": "1;1;1", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "16": { + "VisualLevel": 16, + "TID": "TID_HERO_BATTLE_COPTER", + "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", + "Speed": 180, + "Hitpoints": 2885, + "UpgradeTimeH": 120, + "UpgradeResource": "Elixir2", + "UpgradeCost": 2700000, + "RequiredTownHallLevel": 8, + "AttackRange": 600, + "AttackSpeed": 650, + "DPS": 116, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_battlecopter", + "BigPicture": "unit_battlecopter_big", + "BigPictureSWF": "sc/info_battlecopter.sc", + "SmallPicture": "icon_hero_battlecopter_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "BattleCopterProjectile", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 0, + "SleepOffsetY": "-100", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", + "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", + "AbilityIcon": "icon_hero_battlecopter_ability1", + "AbilityBigPictureExportName": "unit_battlecopter_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 69, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": 100, + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "BattleCopterDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", + "SpecialAbilitiesLevel": "1;1;1", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "17": { + "VisualLevel": 17, + "TID": "TID_HERO_BATTLE_COPTER", + "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", + "Speed": 180, + "Hitpoints": 2915, + "UpgradeTimeH": 120, + "UpgradeResource": "Elixir2", + "UpgradeCost": 2800000, + "RequiredTownHallLevel": 8, + "AttackRange": 600, + "AttackSpeed": 650, + "DPS": 119, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_battlecopter", + "BigPicture": "unit_battlecopter_big", + "BigPictureSWF": "sc/info_battlecopter.sc", + "SmallPicture": "icon_hero_battlecopter_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "BattleCopterProjectile", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 0, + "SleepOffsetY": "-100", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", + "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", + "AbilityIcon": "icon_hero_battlecopter_ability1", + "AbilityBigPictureExportName": "unit_battlecopter_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 71, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": 100, + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "BattleCopterDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", + "SpecialAbilitiesLevel": "1;1;1", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "18": { + "VisualLevel": 18, + "TID": "TID_HERO_BATTLE_COPTER", + "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", + "Speed": 180, + "Hitpoints": 2943, + "UpgradeTimeH": 120, + "UpgradeResource": "Elixir2", + "UpgradeCost": 2900000, + "RequiredTownHallLevel": 8, + "AttackRange": 600, + "AttackSpeed": 650, + "DPS": 123, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_battlecopter", + "BigPicture": "unit_battlecopter_big", + "BigPictureSWF": "sc/info_battlecopter.sc", + "SmallPicture": "icon_hero_battlecopter_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "BattleCopterProjectile", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 0, + "SleepOffsetY": "-100", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", + "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", + "AbilityIcon": "icon_hero_battlecopter_ability1", + "AbilityBigPictureExportName": "unit_battlecopter_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 74, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": 100, + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "BattleCopterDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", + "SpecialAbilitiesLevel": "1;1;1", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "19": { + "VisualLevel": 19, + "TID": "TID_HERO_BATTLE_COPTER", + "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", + "Speed": 180, + "Hitpoints": 2972, + "UpgradeTimeH": 120, + "UpgradeResource": "Elixir2", + "UpgradeCost": 3000000, + "RequiredTownHallLevel": 8, + "AttackRange": 600, + "AttackSpeed": 650, + "DPS": 126, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_battlecopter", + "BigPicture": "unit_battlecopter_big", + "BigPictureSWF": "sc/info_battlecopter.sc", + "SmallPicture": "icon_hero_battlecopter_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "BattleCopterProjectile", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 0, + "SleepOffsetY": "-100", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", + "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", + "AbilityIcon": "icon_hero_battlecopter_ability1", + "AbilityBigPictureExportName": "unit_battlecopter_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 76, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": 100, + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "BattleCopterDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", + "SpecialAbilitiesLevel": "1;1;1", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "20": { + "VisualLevel": 20, + "TID": "TID_HERO_BATTLE_COPTER", + "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", + "Speed": 180, + "Hitpoints": 3003, + "UpgradeTimeH": 120, + "UpgradeResource": "Elixir2", + "UpgradeCost": 3100000, + "RequiredTownHallLevel": 8, + "AttackRange": 600, + "AttackSpeed": 650, + "DPS": 130, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_battlecopter", + "BigPicture": "unit_battlecopter_big", + "BigPictureSWF": "sc/info_battlecopter.sc", + "SmallPicture": "icon_hero_battlecopter_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "BattleCopterProjectile", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 0, + "SleepOffsetY": "-100", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", + "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", + "AbilityIcon": "icon_hero_battlecopter_ability1", + "AbilityBigPictureExportName": "unit_battlecopter_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 86, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": 100, + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "BattleCopterDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", + "SpecialAbilitiesLevel": "2;2;2", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "21": { + "VisualLevel": 21, + "TID": "TID_HERO_BATTLE_COPTER", + "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", + "Speed": 180, + "Hitpoints": 3032, + "UpgradeTimeH": 120, + "UpgradeResource": "Elixir2", + "UpgradeCost": 3200000, + "RequiredTownHallLevel": 8, + "AttackRange": 600, + "AttackSpeed": 650, + "DPS": 134, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_battlecopter", + "BigPicture": "unit_battlecopter_big", + "BigPictureSWF": "sc/info_battlecopter.sc", + "SmallPicture": "icon_hero_battlecopter_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "BattleCopterProjectile", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 0, + "SleepOffsetY": "-100", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", + "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", + "AbilityIcon": "icon_hero_battlecopter_ability1", + "AbilityBigPictureExportName": "unit_battlecopter_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 88, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": 100, + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "BattleCopterDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", + "SpecialAbilitiesLevel": "2;2;2", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "22": { + "VisualLevel": 22, + "TID": "TID_HERO_BATTLE_COPTER", + "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", + "Speed": 180, + "Hitpoints": 3062, + "UpgradeTimeH": 120, + "UpgradeResource": "Elixir2", + "UpgradeCost": 3300000, + "RequiredTownHallLevel": 8, + "AttackRange": 600, + "AttackSpeed": 650, + "DPS": 137, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_battlecopter", + "BigPicture": "unit_battlecopter_big", + "BigPictureSWF": "sc/info_battlecopter.sc", + "SmallPicture": "icon_hero_battlecopter_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "BattleCopterProjectile", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 0, + "SleepOffsetY": "-100", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", + "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", + "AbilityIcon": "icon_hero_battlecopter_ability1", + "AbilityBigPictureExportName": "unit_battlecopter_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 91, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": 100, + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "BattleCopterDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", + "SpecialAbilitiesLevel": "2;2;2", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "23": { + "VisualLevel": 23, + "TID": "TID_HERO_BATTLE_COPTER", + "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", + "Speed": 180, + "Hitpoints": 3094, + "UpgradeTimeH": 120, + "UpgradeResource": "Elixir2", + "UpgradeCost": 3400000, + "RequiredTownHallLevel": 8, + "AttackRange": 600, + "AttackSpeed": 650, + "DPS": 141, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_battlecopter", + "BigPicture": "unit_battlecopter_big", + "BigPictureSWF": "sc/info_battlecopter.sc", + "SmallPicture": "icon_hero_battlecopter_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "BattleCopterProjectile", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 0, + "SleepOffsetY": "-100", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", + "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", + "AbilityIcon": "icon_hero_battlecopter_ability1", + "AbilityBigPictureExportName": "unit_battlecopter_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 95, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": 100, + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "BattleCopterDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", + "SpecialAbilitiesLevel": "2;2;2", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "24": { + "VisualLevel": 24, + "TID": "TID_HERO_BATTLE_COPTER", + "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", + "Speed": 180, + "Hitpoints": 3124, + "UpgradeTimeH": 120, + "UpgradeResource": "Elixir2", + "UpgradeCost": 3500000, + "RequiredTownHallLevel": 8, + "AttackRange": 600, + "AttackSpeed": 650, + "DPS": 144, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_battlecopter", + "BigPicture": "unit_battlecopter_big", + "BigPictureSWF": "sc/info_battlecopter.sc", + "SmallPicture": "icon_hero_battlecopter_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "BattleCopterProjectile", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 0, + "SleepOffsetY": "-100", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", + "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", + "AbilityIcon": "icon_hero_battlecopter_ability1", + "AbilityBigPictureExportName": "unit_battlecopter_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 98, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": 100, + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "BattleCopterDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", + "SpecialAbilitiesLevel": "2;2;2", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "25": { + "VisualLevel": 25, + "TID": "TID_HERO_BATTLE_COPTER", + "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", + "Speed": 180, + "Hitpoints": 3155, + "UpgradeTimeH": 144, + "UpgradeResource": "Elixir2", + "UpgradeCost": 3600000, + "RequiredTownHallLevel": 8, + "AttackRange": 600, + "AttackSpeed": 650, + "DPS": 148, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_battlecopter", + "BigPicture": "unit_battlecopter_big", + "BigPictureSWF": "sc/info_battlecopter.sc", + "SmallPicture": "icon_hero_battlecopter_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "BattleCopterProjectile", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 0, + "SleepOffsetY": "-100", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", + "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", + "AbilityIcon": "icon_hero_battlecopter_ability1", + "AbilityBigPictureExportName": "unit_battlecopter_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 108, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": 100, + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "BattleCopterDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", + "SpecialAbilitiesLevel": "3;3;3", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "26": { + "VisualLevel": 26, + "TID": "TID_HERO_BATTLE_COPTER", + "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", + "Speed": 180, + "Hitpoints": 3187, + "UpgradeTimeH": 144, + "UpgradeResource": "Elixir2", + "UpgradeCost": 3700000, + "RequiredTownHallLevel": 9, + "AttackRange": 600, + "AttackSpeed": 650, + "DPS": 153, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_battlecopter", + "BigPicture": "unit_battlecopter_big", + "BigPictureSWF": "sc/info_battlecopter.sc", + "SmallPicture": "icon_hero_battlecopter_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "BattleCopterProjectile", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 0, + "SleepOffsetY": "-100", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", + "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", + "AbilityIcon": "icon_hero_battlecopter_ability1", + "AbilityBigPictureExportName": "unit_battlecopter_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 112, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": 100, + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "BattleCopterDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", + "SpecialAbilitiesLevel": "3;3;3", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "27": { + "VisualLevel": 27, + "TID": "TID_HERO_BATTLE_COPTER", + "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", + "Speed": 180, + "Hitpoints": 3220, + "UpgradeTimeH": 144, + "UpgradeResource": "Elixir2", + "UpgradeCost": 3800000, + "RequiredTownHallLevel": 9, + "AttackRange": 600, + "AttackSpeed": 650, + "DPS": 157, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_battlecopter", + "BigPicture": "unit_battlecopter_big", + "BigPictureSWF": "sc/info_battlecopter.sc", + "SmallPicture": "icon_hero_battlecopter_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "BattleCopterProjectile", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 0, + "SleepOffsetY": "-100", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", + "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", + "AbilityIcon": "icon_hero_battlecopter_ability1", + "AbilityBigPictureExportName": "unit_battlecopter_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 116, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": 100, + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "BattleCopterDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", + "SpecialAbilitiesLevel": "3;3;3", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "28": { + "VisualLevel": 28, + "TID": "TID_HERO_BATTLE_COPTER", + "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", + "Speed": 180, + "Hitpoints": 3252, + "UpgradeTimeH": 144, + "UpgradeResource": "Elixir2", + "UpgradeCost": 3900000, + "RequiredTownHallLevel": 9, + "AttackRange": 600, + "AttackSpeed": 650, + "DPS": 162, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_battlecopter", + "BigPicture": "unit_battlecopter_big", + "BigPictureSWF": "sc/info_battlecopter.sc", + "SmallPicture": "icon_hero_battlecopter_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "BattleCopterProjectile", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 0, + "SleepOffsetY": "-100", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", + "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", + "AbilityIcon": "icon_hero_battlecopter_ability1", + "AbilityBigPictureExportName": "unit_battlecopter_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 120, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": 100, + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "BattleCopterDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", + "SpecialAbilitiesLevel": "3;3;3", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "29": { + "VisualLevel": 29, + "TID": "TID_HERO_BATTLE_COPTER", + "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", + "Speed": 180, + "Hitpoints": 3285, + "UpgradeTimeH": 144, + "UpgradeResource": "Elixir2", + "UpgradeCost": 4000000, + "RequiredTownHallLevel": 9, + "AttackRange": 600, + "AttackSpeed": 650, + "DPS": 166, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_battlecopter", + "BigPicture": "unit_battlecopter_big", + "BigPictureSWF": "sc/info_battlecopter.sc", + "SmallPicture": "icon_hero_battlecopter_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "BattleCopterProjectile", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 0, + "SleepOffsetY": "-100", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", + "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", + "AbilityIcon": "icon_hero_battlecopter_ability1", + "AbilityBigPictureExportName": "unit_battlecopter_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 125, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": 100, + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "BattleCopterDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", + "SpecialAbilitiesLevel": "3;3;3", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "30": { + "VisualLevel": 30, + "TID": "TID_HERO_BATTLE_COPTER", + "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", + "Speed": 180, + "Hitpoints": 3318, + "UpgradeTimeH": 168, + "UpgradeResource": "Elixir2", + "UpgradeCost": 4100000, + "RequiredTownHallLevel": 9, + "AttackRange": 600, + "AttackSpeed": 650, + "DPS": 171, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_battlecopter", + "BigPicture": "unit_battlecopter_big", + "BigPictureSWF": "sc/info_battlecopter.sc", + "SmallPicture": "icon_hero_battlecopter_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "BattleCopterProjectile", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 0, + "SleepOffsetY": "-100", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", + "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", + "AbilityIcon": "icon_hero_battlecopter_ability1", + "AbilityBigPictureExportName": "unit_battlecopter_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 136, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": 100, + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "BattleCopterDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", + "SpecialAbilitiesLevel": "4;4;4", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "31": { + "VisualLevel": 31, + "TID": "TID_HERO_BATTLE_COPTER", + "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", + "Speed": 180, + "Hitpoints": 3348, + "UpgradeTimeH": 168, + "UpgradeResource": "Elixir2", + "UpgradeCost": 4200000, + "RequiredTownHallLevel": 10, + "AttackRange": 600, + "AttackSpeed": 650, + "DPS": 175, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_battlecopter", + "BigPicture": "unit_battlecopter_big", + "BigPictureSWF": "sc/info_battlecopter.sc", + "SmallPicture": "icon_hero_battlecopter_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "BattleCopterProjectile", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 0, + "SleepOffsetY": "-100", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", + "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", + "AbilityIcon": "icon_hero_battlecopter_ability1", + "AbilityBigPictureExportName": "unit_battlecopter_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 141, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": 100, + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "BattleCopterDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", + "SpecialAbilitiesLevel": "4;4;4", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "32": { + "VisualLevel": 32, + "TID": "TID_HERO_BATTLE_COPTER", + "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", + "Speed": 180, + "Hitpoints": 3375, + "UpgradeTimeH": 168, + "UpgradeResource": "Elixir2", + "UpgradeCost": 4300000, + "RequiredTownHallLevel": 10, + "AttackRange": 600, + "AttackSpeed": 650, + "DPS": 180, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_battlecopter", + "BigPicture": "unit_battlecopter_big", + "BigPictureSWF": "sc/info_battlecopter.sc", + "SmallPicture": "icon_hero_battlecopter_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "BattleCopterProjectile", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 0, + "SleepOffsetY": "-100", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", + "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", + "AbilityIcon": "icon_hero_battlecopter_ability1", + "AbilityBigPictureExportName": "unit_battlecopter_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 146, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": 100, + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "BattleCopterDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", + "SpecialAbilitiesLevel": "4;4;4", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "33": { + "VisualLevel": 33, + "TID": "TID_HERO_BATTLE_COPTER", + "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", + "Speed": 180, + "Hitpoints": 3402, + "UpgradeTimeH": 168, + "UpgradeResource": "Elixir2", + "UpgradeCost": 4400000, + "RequiredTownHallLevel": 10, + "AttackRange": 600, + "AttackSpeed": 650, + "DPS": 184, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_battlecopter", + "BigPicture": "unit_battlecopter_big", + "BigPictureSWF": "sc/info_battlecopter.sc", + "SmallPicture": "icon_hero_battlecopter_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "BattleCopterProjectile", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 0, + "SleepOffsetY": "-100", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", + "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", + "AbilityIcon": "icon_hero_battlecopter_ability1", + "AbilityBigPictureExportName": "unit_battlecopter_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 152, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": 100, + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "BattleCopterDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", + "SpecialAbilitiesLevel": "4;4;4", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "34": { + "VisualLevel": 34, + "TID": "TID_HERO_BATTLE_COPTER", + "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", + "Speed": 180, + "Hitpoints": 3429, + "UpgradeTimeH": 168, + "UpgradeResource": "Elixir2", + "UpgradeCost": 4500000, + "RequiredTownHallLevel": 10, + "AttackRange": 600, + "AttackSpeed": 650, + "DPS": 189, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_battlecopter", + "BigPicture": "unit_battlecopter_big", + "BigPictureSWF": "sc/info_battlecopter.sc", + "SmallPicture": "icon_hero_battlecopter_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "BattleCopterProjectile", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 0, + "SleepOffsetY": "-100", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", + "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", + "AbilityIcon": "icon_hero_battlecopter_ability1", + "AbilityBigPictureExportName": "unit_battlecopter_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 157, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": 100, + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "BattleCopterDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", + "SpecialAbilitiesLevel": "4;4;4", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + }, + "35": { + "VisualLevel": 35, + "TID": "TID_HERO_BATTLE_COPTER", + "InfoTID": "TID_HERO_INFO_BATTLE_COPTER", + "Speed": 180, + "Hitpoints": 3456, + "UpgradeTimeH": 168, + "UpgradeResource": "Elixir2", + "UpgradeCost": 4500000, + "RequiredTownHallLevel": 10, + "AttackRange": 600, + "AttackSpeed": 650, + "DPS": 193, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_hero_battlecopter", + "BigPicture": "unit_battlecopter_big", + "BigPictureSWF": "sc/info_battlecopter.sc", + "SmallPicture": "icon_hero_battlecopter_small", + "SmallPictureSWF": "sc/ui.sc", + "Projectile": "BattleCopterProjectile", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "IsJumper": false, + "MaxSearchRadiusForDefender": 900, + "HousingSpace": 25, + "SpecialAbilityEffect": "Building Ready", + "RegenerationTimeMinutes": 0, + "TrainingResource": "Elixir2", + "CelebrateEffect": "Warmachine Scream", + "SleepOffsetX": 0, + "SleepOffsetY": "-100", + "PatrolRadius": 300, + "AbilityTID": "TID_HERO_ABILITY_BATTLE_COPTER", + "AbilityDescTID": "TID_HERO_ABILITY_BATTLE_COPTER_DESC", + "AbilityIcon": "icon_hero_battlecopter_ability1", + "AbilityBigPictureExportName": "unit_battlecopter_ability_big", + "AbilityDelay": 0, + "StrengthWeight": 171, + "StrengthWeight2": 0, + "AlertRadius": 1200, + "FriendlyGroupWeight": 2100, + "EnemyGroupWeight": 2500, + "TargetedEffectOffset": 100, + "TriggersTraps": true, + "VillageType": 1, + "NoDefence": true, + "DefaultSkin": "BattleCopterDefault", + "UseAutoHeroAbility": true, + "Gender": "M", + "SpecialAbilities": "Battle Copter Dive 1;Battle Copter Dive 2;Battle Copter Dive 3", + "SpecialAbilitiesLevel": "5;5;5", + "AvoidNoiseInAttackPositionSelection": true, + "AbilityExtraPowerMaxLevel": 2 + } + } } \ No newline at end of file diff --git a/assets/json/pets.json b/assets/json/pets.json index 6d137422..f2f05c92 100644 --- a/assets/json/pets.json +++ b/assets/json/pets.json @@ -1,5095 +1,5095 @@ -{ - "L.A.S.S.I": { - "1": { - "TroopLevel": 1, - "TID": "TID_PET_MELEEJUMPER", - "InfoTID": "TID_PET_MELEEJUMPER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 1, - "Speed": 400, - "Hitpoints": 2700, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 1, - "UpgradeTimeH": 72, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 100000, - "DonateCost": 20, - "AttackRange": 60, - "AttackSpeed": 900, - "DPS": 150, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_barksy", - "BigPicture": "unit_pet_lassi_big", - "BigPictureSWF": "sc/info_pet_lassi.sc", - "DeployEffect": "Barky Deploy", - "AttackEffect": "Barky Attack", - "HitEffect": "Miner Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Barky Die", - "Animation": "PetLassiDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 1960, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_BARKY", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BARKY", - "LeashLength": 200, - "DefaultSkin": "PetLassiDefault", - "PreviewScenario": "Pet1" - }, - "2": { - "TroopLevel": 2, - "TID": "TID_PET_MELEEJUMPER", - "InfoTID": "TID_PET_MELEEJUMPER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 1, - "Speed": 400, - "Hitpoints": 2800, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 2, - "UpgradeTimeH": 96, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 110000, - "DonateCost": 20, - "AttackRange": 60, - "AttackSpeed": 900, - "DPS": 160, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_barksy", - "BigPicture": "unit_pet_lassi_big", - "BigPictureSWF": "sc/info_pet_lassi.sc", - "DeployEffect": "Barky Deploy", - "AttackEffect": "Barky Attack", - "HitEffect": "Miner Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Barky Die", - "Animation": "PetLassiDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 2020, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_BARKY", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BARKY", - "LeashLength": 200, - "DefaultSkin": "PetLassiDefault", - "PreviewScenario": "Pet1" - }, - "3": { - "TroopLevel": 3, - "TID": "TID_PET_MELEEJUMPER", - "InfoTID": "TID_PET_MELEEJUMPER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 1, - "Speed": 400, - "Hitpoints": 2900, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 3, - "UpgradeTimeH": 108, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 125000, - "DonateCost": 20, - "AttackRange": 60, - "AttackSpeed": 900, - "DPS": 170, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_barksy", - "BigPicture": "unit_pet_lassi_big", - "BigPictureSWF": "sc/info_pet_lassi.sc", - "DeployEffect": "Barky Deploy", - "AttackEffect": "Barky Attack", - "HitEffect": "Miner Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Barky Die", - "Animation": "PetLassiDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 2080, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_BARKY", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BARKY", - "LeashLength": 200, - "DefaultSkin": "PetLassiDefault", - "PreviewScenario": "Pet1" - }, - "4": { - "TroopLevel": 4, - "TID": "TID_PET_MELEEJUMPER", - "InfoTID": "TID_PET_MELEEJUMPER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 1, - "Speed": 400, - "Hitpoints": 3000, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 4, - "UpgradeTimeH": 120, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 135000, - "DonateCost": 20, - "AttackRange": 60, - "AttackSpeed": 900, - "DPS": 180, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_barksy", - "BigPicture": "unit_pet_lassi_big", - "BigPictureSWF": "sc/info_pet_lassi.sc", - "DeployEffect": "Barky Deploy", - "AttackEffect": "Barky Attack", - "HitEffect": "Miner Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Barky Die", - "Animation": "PetLassiDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 2140, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_BARKY", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BARKY", - "LeashLength": 200, - "DefaultSkin": "PetLassiDefault", - "PreviewScenario": "Pet1" - }, - "5": { - "TroopLevel": 5, - "TID": "TID_PET_MELEEJUMPER", - "InfoTID": "TID_PET_MELEEJUMPER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 1, - "Speed": 400, - "Hitpoints": 3100, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 5, - "UpgradeTimeH": 132, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 150000, - "DonateCost": 20, - "AttackRange": 60, - "AttackSpeed": 900, - "DPS": 190, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_barksy", - "BigPicture": "unit_pet_lassi_big", - "BigPictureSWF": "sc/info_pet_lassi.sc", - "DeployEffect": "Barky Deploy", - "AttackEffect": "Barky Attack", - "HitEffect": "Miner Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Barky Die", - "Animation": "PetLassiDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 2200, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_BARKY", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BARKY", - "LeashLength": 200, - "DefaultSkin": "PetLassiDefault", - "PreviewScenario": "Pet1" - }, - "6": { - "TroopLevel": 6, - "TID": "TID_PET_MELEEJUMPER", - "InfoTID": "TID_PET_MELEEJUMPER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 1, - "Speed": 400, - "Hitpoints": 3200, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 6, - "UpgradeTimeH": 144, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 160000, - "DonateCost": 20, - "AttackRange": 60, - "AttackSpeed": 900, - "DPS": 200, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_barksy", - "BigPicture": "unit_pet_lassi_big", - "BigPictureSWF": "sc/info_pet_lassi.sc", - "DeployEffect": "Barky Deploy", - "AttackEffect": "Barky Attack", - "HitEffect": "Miner Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Barky Die", - "Animation": "PetLassiDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 2260, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_BARKY", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BARKY", - "LeashLength": 200, - "DefaultSkin": "PetLassiDefault", - "PreviewScenario": "Pet1" - }, - "7": { - "TroopLevel": 7, - "TID": "TID_PET_MELEEJUMPER", - "InfoTID": "TID_PET_MELEEJUMPER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 1, - "Speed": 400, - "Hitpoints": 3300, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 7, - "UpgradeTimeH": 156, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 175000, - "DonateCost": 20, - "AttackRange": 60, - "AttackSpeed": 900, - "DPS": 210, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_barksy", - "BigPicture": "unit_pet_lassi_big", - "BigPictureSWF": "sc/info_pet_lassi.sc", - "DeployEffect": "Barky Deploy", - "AttackEffect": "Barky Attack", - "HitEffect": "Miner Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Barky Die", - "Animation": "PetLassiDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 2320, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_BARKY", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BARKY", - "LeashLength": 200, - "DefaultSkin": "PetLassiDefault", - "PreviewScenario": "Pet1" - }, - "8": { - "TroopLevel": 8, - "TID": "TID_PET_MELEEJUMPER", - "InfoTID": "TID_PET_MELEEJUMPER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 1, - "Speed": 400, - "Hitpoints": 3400, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 8, - "UpgradeTimeH": 168, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 185000, - "DonateCost": 20, - "AttackRange": 60, - "AttackSpeed": 900, - "DPS": 220, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_barksy", - "BigPicture": "unit_pet_lassi_big", - "BigPictureSWF": "sc/info_pet_lassi.sc", - "DeployEffect": "Barky Deploy", - "AttackEffect": "Barky Attack", - "HitEffect": "Miner Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Barky Die", - "Animation": "PetLassiDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 2380, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_BARKY", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BARKY", - "LeashLength": 200, - "DefaultSkin": "PetLassiDefault", - "PreviewScenario": "Pet1" - }, - "9": { - "TroopLevel": 9, - "TID": "TID_PET_MELEEJUMPER", - "InfoTID": "TID_PET_MELEEJUMPER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 1, - "Speed": 400, - "Hitpoints": 3500, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 9, - "UpgradeTimeH": 180, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 200000, - "DonateCost": 20, - "AttackRange": 60, - "AttackSpeed": 900, - "DPS": 230, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_barksy", - "BigPicture": "unit_pet_lassi_big", - "BigPictureSWF": "sc/info_pet_lassi.sc", - "DeployEffect": "Barky Deploy", - "AttackEffect": "Barky Attack", - "HitEffect": "Miner Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Barky Die", - "Animation": "PetLassiDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 2440, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_BARKY", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BARKY", - "LeashLength": 200, - "DefaultSkin": "PetLassiDefault", - "PreviewScenario": "Pet1" - }, - "10": { - "TroopLevel": 10, - "TID": "TID_PET_MELEEJUMPER", - "InfoTID": "TID_PET_MELEEJUMPER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 1, - "Speed": 400, - "Hitpoints": 3600, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 10, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 215000, - "DonateCost": 20, - "AttackRange": 60, - "AttackSpeed": 900, - "DPS": 240, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_barksy", - "BigPicture": "unit_pet_lassi_big", - "BigPictureSWF": "sc/info_pet_lassi.sc", - "DeployEffect": "Barky Deploy", - "AttackEffect": "Barky Attack", - "HitEffect": "Miner Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Barky Die", - "Animation": "PetLassiDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 2500, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_BARKY", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BARKY", - "LeashLength": 200, - "DefaultSkin": "PetLassiDefault", - "PreviewScenario": "Pet1" - }, - "11": { - "TroopLevel": 11, - "TID": "TID_PET_MELEEJUMPER", - "InfoTID": "TID_PET_MELEEJUMPER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 5, - "Speed": 400, - "Hitpoints": 3700, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 11, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 230000, - "DonateCost": 20, - "AttackRange": 60, - "AttackSpeed": 900, - "DPS": 250, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_barksy", - "BigPicture": "unit_pet_lassi_big", - "BigPictureSWF": "sc/info_pet_lassi.sc", - "DeployEffect": "Barky Deploy", - "AttackEffect": "Barky Attack", - "HitEffect": "Miner Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Barky Die", - "Animation": "PetLassiDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 2520, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_BARKY", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BARKY", - "LeashLength": 200, - "DefaultSkin": "PetLassiDefault", - "PreviewScenario": "Pet1" - }, - "12": { - "TroopLevel": 12, - "TID": "TID_PET_MELEEJUMPER", - "InfoTID": "TID_PET_MELEEJUMPER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 5, - "Speed": 400, - "Hitpoints": 3800, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 12, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 245000, - "DonateCost": 20, - "AttackRange": 60, - "AttackSpeed": 900, - "DPS": 260, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_barksy", - "BigPicture": "unit_pet_lassi_big", - "BigPictureSWF": "sc/info_pet_lassi.sc", - "DeployEffect": "Barky Deploy", - "AttackEffect": "Barky Attack", - "HitEffect": "Miner Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Barky Die", - "Animation": "PetLassiDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 2540, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_BARKY", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BARKY", - "LeashLength": 200, - "DefaultSkin": "PetLassiDefault", - "PreviewScenario": "Pet1" - }, - "13": { - "TroopLevel": 13, - "TID": "TID_PET_MELEEJUMPER", - "InfoTID": "TID_PET_MELEEJUMPER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 5, - "Speed": 400, - "Hitpoints": 3900, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 13, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 260000, - "DonateCost": 20, - "AttackRange": 60, - "AttackSpeed": 900, - "DPS": 270, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_barksy", - "BigPicture": "unit_pet_lassi_big", - "BigPictureSWF": "sc/info_pet_lassi.sc", - "DeployEffect": "Barky Deploy", - "AttackEffect": "Barky Attack", - "HitEffect": "Miner Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Barky Die", - "Animation": "PetLassiDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 2560, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_BARKY", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BARKY", - "LeashLength": 200, - "DefaultSkin": "PetLassiDefault", - "PreviewScenario": "Pet1" - }, - "14": { - "TroopLevel": 14, - "TID": "TID_PET_MELEEJUMPER", - "InfoTID": "TID_PET_MELEEJUMPER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 5, - "Speed": 400, - "Hitpoints": 4000, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 14, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 275000, - "DonateCost": 20, - "AttackRange": 60, - "AttackSpeed": 900, - "DPS": 280, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_barksy", - "BigPicture": "unit_pet_lassi_big", - "BigPictureSWF": "sc/info_pet_lassi.sc", - "DeployEffect": "Barky Deploy", - "AttackEffect": "Barky Attack", - "HitEffect": "Miner Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Barky Die", - "Animation": "PetLassiDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 2580, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_BARKY", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BARKY", - "LeashLength": 200, - "DefaultSkin": "PetLassiDefault", - "PreviewScenario": "Pet1" - }, - "15": { - "TroopLevel": 15, - "TID": "TID_PET_MELEEJUMPER", - "InfoTID": "TID_PET_MELEEJUMPER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 5, - "Speed": 400, - "Hitpoints": 4100, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 15, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 275000, - "DonateCost": 20, - "AttackRange": 60, - "AttackSpeed": 900, - "DPS": 290, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_barksy", - "BigPicture": "unit_pet_lassi_big", - "BigPictureSWF": "sc/info_pet_lassi.sc", - "DeployEffect": "Barky Deploy", - "AttackEffect": "Barky Attack", - "HitEffect": "Miner Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Barky Die", - "Animation": "PetLassiDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 2600, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_BARKY", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BARKY", - "LeashLength": 200, - "DefaultSkin": "PetLassiDefault", - "PreviewScenario": "Pet1" - } - }, - "Mighty Yak": { - "1": { - "TroopLevel": 1, - "TID": "TID_PET_WALLBUSTER", - "InfoTID": "TID_PET_WALLBUSTER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 3, - "Speed": 300, - "Hitpoints": 3750, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 1, - "UpgradeTimeH": 72, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 140000, - "DonateCost": 20, - "AttackRange": 120, - "AttackSpeed": 2100, - "DPS": 60, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_bulldozer", - "BigPicture": "unit_pet_mightyyak_big", - "BigPictureSWF": "sc/info_pet_mightyyak.sc", - "DeployEffect": "Bulldozer Deploy", - "AttackEffect": "Bulldozer Attack", - "HitEffect": "Golem Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Bulldozer Die", - "Animation": "PetYakDefault", - "IsJumper": false, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 1750, - "WallMovementCost": 64, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "NewTargetAttackDelay": 100, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_BULLDOZER", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BULLDOZER", - "DamageMultiplierTarget": "Wall", - "DamageMultiplierPercent": 2000, - "LeashLength": 581, - "DefaultSkin": "PetYakDefault", - "HeroDeathAbilityLevel": 2, - "HeroDeathAbilityType": "BoostSelf", - "HeroDeathAbilitySpell": "TroopRage", - "PreviewScenario": "Pet3" - }, - "2": { - "TroopLevel": 2, - "TID": "TID_PET_WALLBUSTER", - "InfoTID": "TID_PET_WALLBUSTER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 3, - "Speed": 300, - "Hitpoints": 4000, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 2, - "UpgradeTimeH": 96, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 155000, - "DonateCost": 20, - "AttackRange": 120, - "AttackSpeed": 2100, - "DPS": 64, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_bulldozer", - "BigPicture": "unit_pet_mightyyak_big", - "BigPictureSWF": "sc/info_pet_mightyyak.sc", - "DeployEffect": "Bulldozer Deploy", - "AttackEffect": "Bulldozer Attack", - "HitEffect": "Golem Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Bulldozer Die", - "Animation": "PetYakDefault", - "IsJumper": false, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 1780, - "WallMovementCost": 64, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "NewTargetAttackDelay": 100, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_BULLDOZER", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BULLDOZER", - "DamageMultiplierTarget": "Wall", - "DamageMultiplierPercent": 2000, - "LeashLength": 581, - "DefaultSkin": "PetYakDefault", - "HeroDeathAbilityLevel": 2, - "HeroDeathAbilityType": "BoostSelf", - "HeroDeathAbilitySpell": "TroopRage", - "PreviewScenario": "Pet3" - }, - "3": { - "TroopLevel": 3, - "TID": "TID_PET_WALLBUSTER", - "InfoTID": "TID_PET_WALLBUSTER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 3, - "Speed": 300, - "Hitpoints": 4250, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 3, - "UpgradeTimeH": 108, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 175000, - "DonateCost": 20, - "AttackRange": 120, - "AttackSpeed": 2100, - "DPS": 68, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_bulldozer", - "BigPicture": "unit_pet_mightyyak_big", - "BigPictureSWF": "sc/info_pet_mightyyak.sc", - "DeployEffect": "Bulldozer Deploy", - "AttackEffect": "Bulldozer Attack", - "HitEffect": "Golem Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Bulldozer Die", - "Animation": "PetYakDefault", - "IsJumper": false, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 1810, - "WallMovementCost": 64, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "NewTargetAttackDelay": 100, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_BULLDOZER", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BULLDOZER", - "DamageMultiplierTarget": "Wall", - "DamageMultiplierPercent": 2000, - "LeashLength": 581, - "DefaultSkin": "PetYakDefault", - "HeroDeathAbilityLevel": 2, - "HeroDeathAbilityType": "BoostSelf", - "HeroDeathAbilitySpell": "TroopRage", - "PreviewScenario": "Pet3" - }, - "4": { - "TroopLevel": 4, - "TID": "TID_PET_WALLBUSTER", - "InfoTID": "TID_PET_WALLBUSTER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 3, - "Speed": 300, - "Hitpoints": 4500, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 4, - "UpgradeTimeH": 120, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 190000, - "DonateCost": 20, - "AttackRange": 120, - "AttackSpeed": 2100, - "DPS": 72, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_bulldozer", - "BigPicture": "unit_pet_mightyyak_big", - "BigPictureSWF": "sc/info_pet_mightyyak.sc", - "DeployEffect": "Bulldozer Deploy", - "AttackEffect": "Bulldozer Attack", - "HitEffect": "Golem Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Bulldozer Die", - "Animation": "PetYakDefault", - "IsJumper": false, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 1840, - "WallMovementCost": 64, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "NewTargetAttackDelay": 100, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_BULLDOZER", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BULLDOZER", - "DamageMultiplierTarget": "Wall", - "DamageMultiplierPercent": 2000, - "LeashLength": 581, - "DefaultSkin": "PetYakDefault", - "HeroDeathAbilityLevel": 2, - "HeroDeathAbilityType": "BoostSelf", - "HeroDeathAbilitySpell": "TroopRage", - "PreviewScenario": "Pet3" - }, - "5": { - "TroopLevel": 5, - "TID": "TID_PET_WALLBUSTER", - "InfoTID": "TID_PET_WALLBUSTER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 3, - "Speed": 300, - "Hitpoints": 4750, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 5, - "UpgradeTimeH": 132, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 210000, - "DonateCost": 20, - "AttackRange": 120, - "AttackSpeed": 2100, - "DPS": 76, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_bulldozer", - "BigPicture": "unit_pet_mightyyak_big", - "BigPictureSWF": "sc/info_pet_mightyyak.sc", - "DeployEffect": "Bulldozer Deploy", - "AttackEffect": "Bulldozer Attack", - "HitEffect": "Golem Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Bulldozer Die", - "Animation": "PetYakDefault", - "IsJumper": false, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 1870, - "WallMovementCost": 64, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "NewTargetAttackDelay": 100, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_BULLDOZER", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BULLDOZER", - "DamageMultiplierTarget": "Wall", - "DamageMultiplierPercent": 2000, - "LeashLength": 581, - "DefaultSkin": "PetYakDefault", - "HeroDeathAbilityLevel": 2, - "HeroDeathAbilityType": "BoostSelf", - "HeroDeathAbilitySpell": "TroopRage", - "PreviewScenario": "Pet3" - }, - "6": { - "TroopLevel": 6, - "TID": "TID_PET_WALLBUSTER", - "InfoTID": "TID_PET_WALLBUSTER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 3, - "Speed": 300, - "Hitpoints": 4950, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 6, - "UpgradeTimeH": 144, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 215000, - "DonateCost": 20, - "AttackRange": 120, - "AttackSpeed": 2100, - "DPS": 80, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_bulldozer", - "BigPicture": "unit_pet_mightyyak_big", - "BigPictureSWF": "sc/info_pet_mightyyak.sc", - "DeployEffect": "Bulldozer Deploy", - "AttackEffect": "Bulldozer Attack", - "HitEffect": "Golem Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Bulldozer Die", - "Animation": "PetYakDefault", - "IsJumper": false, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 1900, - "WallMovementCost": 64, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "NewTargetAttackDelay": 100, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_BULLDOZER", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BULLDOZER", - "DamageMultiplierTarget": "Wall", - "DamageMultiplierPercent": 2000, - "LeashLength": 581, - "DefaultSkin": "PetYakDefault", - "HeroDeathAbilityLevel": 2, - "HeroDeathAbilityType": "BoostSelf", - "HeroDeathAbilitySpell": "TroopRage", - "PreviewScenario": "Pet3" - }, - "7": { - "TroopLevel": 7, - "TID": "TID_PET_WALLBUSTER", - "InfoTID": "TID_PET_WALLBUSTER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 3, - "Speed": 300, - "Hitpoints": 5100, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 7, - "UpgradeTimeH": 156, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 225000, - "DonateCost": 20, - "AttackRange": 120, - "AttackSpeed": 2100, - "DPS": 84, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_bulldozer", - "BigPicture": "unit_pet_mightyyak_big", - "BigPictureSWF": "sc/info_pet_mightyyak.sc", - "DeployEffect": "Bulldozer Deploy", - "AttackEffect": "Bulldozer Attack", - "HitEffect": "Golem Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Bulldozer Die", - "Animation": "PetYakDefault", - "IsJumper": false, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 1930, - "WallMovementCost": 64, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "NewTargetAttackDelay": 100, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_BULLDOZER", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BULLDOZER", - "DamageMultiplierTarget": "Wall", - "DamageMultiplierPercent": 2000, - "LeashLength": 581, - "DefaultSkin": "PetYakDefault", - "HeroDeathAbilityLevel": 2, - "HeroDeathAbilityType": "BoostSelf", - "HeroDeathAbilitySpell": "TroopRage", - "PreviewScenario": "Pet3" - }, - "8": { - "TroopLevel": 8, - "TID": "TID_PET_WALLBUSTER", - "InfoTID": "TID_PET_WALLBUSTER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 3, - "Speed": 300, - "Hitpoints": 5250, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 8, - "UpgradeTimeH": 168, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 230000, - "DonateCost": 20, - "AttackRange": 120, - "AttackSpeed": 2100, - "DPS": 88, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_bulldozer", - "BigPicture": "unit_pet_mightyyak_big", - "BigPictureSWF": "sc/info_pet_mightyyak.sc", - "DeployEffect": "Bulldozer Deploy", - "AttackEffect": "Bulldozer Attack", - "HitEffect": "Golem Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Bulldozer Die", - "Animation": "PetYakDefault", - "IsJumper": false, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 1960, - "WallMovementCost": 64, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "NewTargetAttackDelay": 100, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_BULLDOZER", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BULLDOZER", - "DamageMultiplierTarget": "Wall", - "DamageMultiplierPercent": 2000, - "LeashLength": 581, - "DefaultSkin": "PetYakDefault", - "HeroDeathAbilityLevel": 2, - "HeroDeathAbilityType": "BoostSelf", - "HeroDeathAbilitySpell": "TroopRage", - "PreviewScenario": "Pet3" - }, - "9": { - "TroopLevel": 9, - "TID": "TID_PET_WALLBUSTER", - "InfoTID": "TID_PET_WALLBUSTER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 3, - "Speed": 300, - "Hitpoints": 5400, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 9, - "UpgradeTimeH": 180, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 240000, - "DonateCost": 20, - "AttackRange": 120, - "AttackSpeed": 2100, - "DPS": 92, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_bulldozer", - "BigPicture": "unit_pet_mightyyak_big", - "BigPictureSWF": "sc/info_pet_mightyyak.sc", - "DeployEffect": "Bulldozer Deploy", - "AttackEffect": "Bulldozer Attack", - "HitEffect": "Golem Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Bulldozer Die", - "Animation": "PetYakDefault", - "IsJumper": false, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 1990, - "WallMovementCost": 64, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "NewTargetAttackDelay": 100, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_BULLDOZER", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BULLDOZER", - "DamageMultiplierTarget": "Wall", - "DamageMultiplierPercent": 2000, - "LeashLength": 581, - "DefaultSkin": "PetYakDefault", - "HeroDeathAbilityLevel": 2, - "HeroDeathAbilityType": "BoostSelf", - "HeroDeathAbilitySpell": "TroopRage", - "PreviewScenario": "Pet3" - }, - "10": { - "TroopLevel": 10, - "TID": "TID_PET_WALLBUSTER", - "InfoTID": "TID_PET_WALLBUSTER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 3, - "Speed": 300, - "Hitpoints": 5550, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 10, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 250000, - "DonateCost": 20, - "AttackRange": 120, - "AttackSpeed": 2100, - "DPS": 96, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_bulldozer", - "BigPicture": "unit_pet_mightyyak_big", - "BigPictureSWF": "sc/info_pet_mightyyak.sc", - "DeployEffect": "Bulldozer Deploy", - "AttackEffect": "Bulldozer Attack", - "HitEffect": "Golem Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Bulldozer Die", - "Animation": "PetYakDefault", - "IsJumper": false, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 2020, - "WallMovementCost": 64, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "NewTargetAttackDelay": 100, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_BULLDOZER", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BULLDOZER", - "DamageMultiplierTarget": "Wall", - "DamageMultiplierPercent": 2000, - "LeashLength": 581, - "DefaultSkin": "PetYakDefault", - "HeroDeathAbilityLevel": 2, - "HeroDeathAbilityType": "BoostSelf", - "HeroDeathAbilitySpell": "TroopRage", - "PreviewScenario": "Pet3" - }, - "11": { - "TroopLevel": 11, - "TID": "TID_PET_WALLBUSTER", - "InfoTID": "TID_PET_WALLBUSTER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 7, - "Speed": 300, - "Hitpoints": 5700, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 11, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 260000, - "DonateCost": 20, - "AttackRange": 120, - "AttackSpeed": 2100, - "DPS": 100, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_bulldozer", - "BigPicture": "unit_pet_mightyyak_big", - "BigPictureSWF": "sc/info_pet_mightyyak.sc", - "DeployEffect": "Bulldozer Deploy", - "AttackEffect": "Bulldozer Attack", - "HitEffect": "Golem Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Bulldozer Die", - "Animation": "PetYakDefault", - "IsJumper": false, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 2040, - "WallMovementCost": 64, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "NewTargetAttackDelay": 100, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_BULLDOZER", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BULLDOZER", - "DamageMultiplierTarget": "Wall", - "DamageMultiplierPercent": 2000, - "LeashLength": 581, - "DefaultSkin": "PetYakDefault", - "HeroDeathAbilityLevel": 2, - "HeroDeathAbilityType": "BoostSelf", - "HeroDeathAbilitySpell": "TroopRage", - "PreviewScenario": "Pet3" - }, - "12": { - "TroopLevel": 12, - "TID": "TID_PET_WALLBUSTER", - "InfoTID": "TID_PET_WALLBUSTER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 7, - "Speed": 300, - "Hitpoints": 5850, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 12, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 270000, - "DonateCost": 20, - "AttackRange": 120, - "AttackSpeed": 2100, - "DPS": 104, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_bulldozer", - "BigPicture": "unit_pet_mightyyak_big", - "BigPictureSWF": "sc/info_pet_mightyyak.sc", - "DeployEffect": "Bulldozer Deploy", - "AttackEffect": "Bulldozer Attack", - "HitEffect": "Golem Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Bulldozer Die", - "Animation": "PetYakDefault", - "IsJumper": false, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 2060, - "WallMovementCost": 64, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "NewTargetAttackDelay": 100, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_BULLDOZER", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BULLDOZER", - "DamageMultiplierTarget": "Wall", - "DamageMultiplierPercent": 2000, - "LeashLength": 581, - "DefaultSkin": "PetYakDefault", - "HeroDeathAbilityLevel": 2, - "HeroDeathAbilityType": "BoostSelf", - "HeroDeathAbilitySpell": "TroopRage", - "PreviewScenario": "Pet3" - }, - "13": { - "TroopLevel": 13, - "TID": "TID_PET_WALLBUSTER", - "InfoTID": "TID_PET_WALLBUSTER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 7, - "Speed": 300, - "Hitpoints": 6000, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 13, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 280000, - "DonateCost": 20, - "AttackRange": 120, - "AttackSpeed": 2100, - "DPS": 108, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_bulldozer", - "BigPicture": "unit_pet_mightyyak_big", - "BigPictureSWF": "sc/info_pet_mightyyak.sc", - "DeployEffect": "Bulldozer Deploy", - "AttackEffect": "Bulldozer Attack", - "HitEffect": "Golem Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Bulldozer Die", - "Animation": "PetYakDefault", - "IsJumper": false, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 2080, - "WallMovementCost": 64, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "NewTargetAttackDelay": 100, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_BULLDOZER", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BULLDOZER", - "DamageMultiplierTarget": "Wall", - "DamageMultiplierPercent": 2000, - "LeashLength": 581, - "DefaultSkin": "PetYakDefault", - "HeroDeathAbilityLevel": 2, - "HeroDeathAbilityType": "BoostSelf", - "HeroDeathAbilitySpell": "TroopRage", - "PreviewScenario": "Pet3" - }, - "14": { - "TroopLevel": 14, - "TID": "TID_PET_WALLBUSTER", - "InfoTID": "TID_PET_WALLBUSTER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 7, - "Speed": 300, - "Hitpoints": 6150, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 14, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 290000, - "DonateCost": 20, - "AttackRange": 120, - "AttackSpeed": 2100, - "DPS": 112, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_bulldozer", - "BigPicture": "unit_pet_mightyyak_big", - "BigPictureSWF": "sc/info_pet_mightyyak.sc", - "DeployEffect": "Bulldozer Deploy", - "AttackEffect": "Bulldozer Attack", - "HitEffect": "Golem Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Bulldozer Die", - "Animation": "PetYakDefault", - "IsJumper": false, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 2100, - "WallMovementCost": 64, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "NewTargetAttackDelay": 100, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_BULLDOZER", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BULLDOZER", - "DamageMultiplierTarget": "Wall", - "DamageMultiplierPercent": 2000, - "LeashLength": 581, - "DefaultSkin": "PetYakDefault", - "HeroDeathAbilityLevel": 2, - "HeroDeathAbilityType": "BoostSelf", - "HeroDeathAbilitySpell": "TroopRage", - "PreviewScenario": "Pet3" - }, - "15": { - "TroopLevel": 15, - "TID": "TID_PET_WALLBUSTER", - "InfoTID": "TID_PET_WALLBUSTER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 7, - "Speed": 300, - "Hitpoints": 6300, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 15, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 290000, - "DonateCost": 20, - "AttackRange": 120, - "AttackSpeed": 2100, - "DPS": 116, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_bulldozer", - "BigPicture": "unit_pet_mightyyak_big", - "BigPictureSWF": "sc/info_pet_mightyyak.sc", - "DeployEffect": "Bulldozer Deploy", - "AttackEffect": "Bulldozer Attack", - "HitEffect": "Golem Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Bulldozer Die", - "Animation": "PetYakDefault", - "IsJumper": false, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 2120, - "WallMovementCost": 64, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "NewTargetAttackDelay": 100, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_BULLDOZER", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BULLDOZER", - "DamageMultiplierTarget": "Wall", - "DamageMultiplierPercent": 2000, - "LeashLength": 581, - "DefaultSkin": "PetYakDefault", - "HeroDeathAbilityLevel": 2, - "HeroDeathAbilityType": "BoostSelf", - "HeroDeathAbilitySpell": "TroopRage", - "PreviewScenario": "Pet3" - } - }, - "Electro Owl": { - "1": { - "TroopLevel": 1, - "TID": "TID_PET_RANGEDATTACKER", - "InfoTID": "TID_PET_RANGEDATTACKER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 2, - "Speed": 250, - "Hitpoints": 1600, - "TrainingTime": 9999, - "TrainingResource": "DarkElixir", - "TrainingCost": 1, - "UpgradeTimeH": 72, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 115000, - "DonateCost": 20, - "AttackRange": 550, - "AttackSpeed": 1400, - "DPS": 100, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_electrowl", - "BigPicture": "unit_pet_electro_owl_big", - "BigPictureSWF": "sc/info_pet_electro_owl.sc", - "DeployEffect": "Laser Owl Deploy", - "AttackEffect": "Laser Owl Attack", - "HitEffect": "Mega Tesla Hit", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Laser Owl Die", - "Animation": "PetEowlDefault", - "IsJumper": false, - "MovementOffsetSpeed": 30, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 3550, - "TargetedEffectOffset": 60, - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": false, - "ChainAttackDistance": 300, - "ChainAttackMaxTargets": 2, - "ChainAttackDelay": 128, - "ChainAttackDamageReductionPercent": 20, - "ChainAttackEffect": "MegaTesla Attack_1_chain", - "SpecialAbilityName": "TID_PET_ABILITY_ELECTROWL", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_ELECTROWL", - "LeashLength": 0, - "DefaultSkin": "PetEowlDefault", - "PreviewScenario": "Pet2" - }, - "2": { - "TroopLevel": 2, - "TID": "TID_PET_RANGEDATTACKER", - "InfoTID": "TID_PET_RANGEDATTACKER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 2, - "Speed": 250, - "Hitpoints": 1700, - "TrainingTime": 9999, - "TrainingResource": "DarkElixir", - "TrainingCost": 2, - "UpgradeTimeH": 96, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 130000, - "DonateCost": 20, - "AttackRange": 550, - "AttackSpeed": 1400, - "DPS": 105, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_electrowl", - "BigPicture": "unit_pet_electro_owl_big", - "BigPictureSWF": "sc/info_pet_electro_owl.sc", - "DeployEffect": "Laser Owl Deploy", - "AttackEffect": "Laser Owl Attack", - "HitEffect": "Mega Tesla Hit", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Laser Owl Die", - "Animation": "PetEowlDefault", - "IsJumper": false, - "MovementOffsetSpeed": 30, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 3600, - "TargetedEffectOffset": 60, - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": false, - "ChainAttackDistance": 300, - "ChainAttackMaxTargets": 2, - "ChainAttackDelay": 128, - "ChainAttackDamageReductionPercent": 20, - "ChainAttackEffect": "MegaTesla Attack_1_chain", - "SpecialAbilityName": "TID_PET_ABILITY_ELECTROWL", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_ELECTROWL", - "LeashLength": 0, - "DefaultSkin": "PetEowlDefault", - "PreviewScenario": "Pet2" - }, - "3": { - "TroopLevel": 3, - "TID": "TID_PET_RANGEDATTACKER", - "InfoTID": "TID_PET_RANGEDATTACKER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 2, - "Speed": 250, - "Hitpoints": 1800, - "TrainingTime": 9999, - "TrainingResource": "DarkElixir", - "TrainingCost": 3, - "UpgradeTimeH": 108, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 140000, - "DonateCost": 20, - "AttackRange": 550, - "AttackSpeed": 1400, - "DPS": 110, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_electrowl", - "BigPicture": "unit_pet_electro_owl_big", - "BigPictureSWF": "sc/info_pet_electro_owl.sc", - "DeployEffect": "Laser Owl Deploy", - "AttackEffect": "Laser Owl Attack", - "HitEffect": "Mega Tesla Hit", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Laser Owl Die", - "Animation": "PetEowlDefault", - "IsJumper": false, - "MovementOffsetSpeed": 30, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 3650, - "TargetedEffectOffset": 60, - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": false, - "ChainAttackDistance": 300, - "ChainAttackMaxTargets": 2, - "ChainAttackDelay": 128, - "ChainAttackDamageReductionPercent": 20, - "ChainAttackEffect": "MegaTesla Attack_1_chain", - "SpecialAbilityName": "TID_PET_ABILITY_ELECTROWL", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_ELECTROWL", - "LeashLength": 0, - "DefaultSkin": "PetEowlDefault", - "PreviewScenario": "Pet2" - }, - "4": { - "TroopLevel": 4, - "TID": "TID_PET_RANGEDATTACKER", - "InfoTID": "TID_PET_RANGEDATTACKER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 2, - "Speed": 250, - "Hitpoints": 1900, - "TrainingTime": 9999, - "TrainingResource": "DarkElixir", - "TrainingCost": 4, - "UpgradeTimeH": 120, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 155000, - "DonateCost": 20, - "AttackRange": 550, - "AttackSpeed": 1400, - "DPS": 115, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_electrowl", - "BigPicture": "unit_pet_electro_owl_big", - "BigPictureSWF": "sc/info_pet_electro_owl.sc", - "DeployEffect": "Laser Owl Deploy", - "AttackEffect": "Laser Owl Attack", - "HitEffect": "Mega Tesla Hit", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Laser Owl Die", - "Animation": "PetEowlDefault", - "IsJumper": false, - "MovementOffsetSpeed": 30, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 3700, - "TargetedEffectOffset": 60, - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": false, - "ChainAttackDistance": 300, - "ChainAttackMaxTargets": 2, - "ChainAttackDelay": 128, - "ChainAttackDamageReductionPercent": 20, - "ChainAttackEffect": "MegaTesla Attack_1_chain", - "SpecialAbilityName": "TID_PET_ABILITY_ELECTROWL", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_ELECTROWL", - "LeashLength": 0, - "DefaultSkin": "PetEowlDefault", - "PreviewScenario": "Pet2" - }, - "5": { - "TroopLevel": 5, - "TID": "TID_PET_RANGEDATTACKER", - "InfoTID": "TID_PET_RANGEDATTACKER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 2, - "Speed": 250, - "Hitpoints": 2000, - "TrainingTime": 9999, - "TrainingResource": "DarkElixir", - "TrainingCost": 5, - "UpgradeTimeH": 132, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 165000, - "DonateCost": 20, - "AttackRange": 550, - "AttackSpeed": 1400, - "DPS": 120, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_electrowl", - "BigPicture": "unit_pet_electro_owl_big", - "BigPictureSWF": "sc/info_pet_electro_owl.sc", - "DeployEffect": "Laser Owl Deploy", - "AttackEffect": "Laser Owl Attack", - "HitEffect": "Mega Tesla Hit", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Laser Owl Die", - "Animation": "PetEowlDefault", - "IsJumper": false, - "MovementOffsetSpeed": 30, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 3750, - "TargetedEffectOffset": 60, - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": false, - "ChainAttackDistance": 300, - "ChainAttackMaxTargets": 2, - "ChainAttackDelay": 128, - "ChainAttackDamageReductionPercent": 20, - "ChainAttackEffect": "MegaTesla Attack_1_chain", - "SpecialAbilityName": "TID_PET_ABILITY_ELECTROWL", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_ELECTROWL", - "LeashLength": 0, - "DefaultSkin": "PetEowlDefault", - "PreviewScenario": "Pet2" - }, - "6": { - "TroopLevel": 6, - "TID": "TID_PET_RANGEDATTACKER", - "InfoTID": "TID_PET_RANGEDATTACKER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 2, - "Speed": 250, - "Hitpoints": 2100, - "TrainingTime": 9999, - "TrainingResource": "DarkElixir", - "TrainingCost": 6, - "UpgradeTimeH": 144, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 180000, - "DonateCost": 20, - "AttackRange": 550, - "AttackSpeed": 1400, - "DPS": 125, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_electrowl", - "BigPicture": "unit_pet_electro_owl_big", - "BigPictureSWF": "sc/info_pet_electro_owl.sc", - "DeployEffect": "Laser Owl Deploy", - "AttackEffect": "Laser Owl Attack", - "HitEffect": "Mega Tesla Hit", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Laser Owl Die", - "Animation": "PetEowlDefault", - "IsJumper": false, - "MovementOffsetSpeed": 30, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 3800, - "TargetedEffectOffset": 60, - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": false, - "ChainAttackDistance": 300, - "ChainAttackMaxTargets": 2, - "ChainAttackDelay": 128, - "ChainAttackDamageReductionPercent": 20, - "ChainAttackEffect": "MegaTesla Attack_1_chain", - "SpecialAbilityName": "TID_PET_ABILITY_ELECTROWL", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_ELECTROWL", - "LeashLength": 0, - "DefaultSkin": "PetEowlDefault", - "PreviewScenario": "Pet2" - }, - "7": { - "TroopLevel": 7, - "TID": "TID_PET_RANGEDATTACKER", - "InfoTID": "TID_PET_RANGEDATTACKER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 2, - "Speed": 250, - "Hitpoints": 2200, - "TrainingTime": 9999, - "TrainingResource": "DarkElixir", - "TrainingCost": 7, - "UpgradeTimeH": 156, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 190000, - "DonateCost": 20, - "AttackRange": 550, - "AttackSpeed": 1400, - "DPS": 130, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_electrowl", - "BigPicture": "unit_pet_electro_owl_big", - "BigPictureSWF": "sc/info_pet_electro_owl.sc", - "DeployEffect": "Laser Owl Deploy", - "AttackEffect": "Laser Owl Attack", - "HitEffect": "Mega Tesla Hit", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Laser Owl Die", - "Animation": "PetEowlDefault", - "IsJumper": false, - "MovementOffsetSpeed": 30, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 3850, - "TargetedEffectOffset": 60, - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": false, - "ChainAttackDistance": 300, - "ChainAttackMaxTargets": 2, - "ChainAttackDelay": 128, - "ChainAttackDamageReductionPercent": 20, - "ChainAttackEffect": "MegaTesla Attack_1_chain", - "SpecialAbilityName": "TID_PET_ABILITY_ELECTROWL", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_ELECTROWL", - "LeashLength": 0, - "DefaultSkin": "PetEowlDefault", - "PreviewScenario": "Pet2" - }, - "8": { - "TroopLevel": 8, - "TID": "TID_PET_RANGEDATTACKER", - "InfoTID": "TID_PET_RANGEDATTACKER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 2, - "Speed": 250, - "Hitpoints": 2300, - "TrainingTime": 9999, - "TrainingResource": "DarkElixir", - "TrainingCost": 8, - "UpgradeTimeH": 168, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 205000, - "DonateCost": 20, - "AttackRange": 550, - "AttackSpeed": 1400, - "DPS": 135, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_electrowl", - "BigPicture": "unit_pet_electro_owl_big", - "BigPictureSWF": "sc/info_pet_electro_owl.sc", - "DeployEffect": "Laser Owl Deploy", - "AttackEffect": "Laser Owl Attack", - "HitEffect": "Mega Tesla Hit", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Laser Owl Die", - "Animation": "PetEowlDefault", - "IsJumper": false, - "MovementOffsetSpeed": 30, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 3900, - "TargetedEffectOffset": 60, - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": false, - "ChainAttackDistance": 300, - "ChainAttackMaxTargets": 2, - "ChainAttackDelay": 128, - "ChainAttackDamageReductionPercent": 20, - "ChainAttackEffect": "MegaTesla Attack_1_chain", - "SpecialAbilityName": "TID_PET_ABILITY_ELECTROWL", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_ELECTROWL", - "LeashLength": 0, - "DefaultSkin": "PetEowlDefault", - "PreviewScenario": "Pet2" - }, - "9": { - "TroopLevel": 9, - "TID": "TID_PET_RANGEDATTACKER", - "InfoTID": "TID_PET_RANGEDATTACKER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 2, - "Speed": 250, - "Hitpoints": 2400, - "TrainingTime": 9999, - "TrainingResource": "DarkElixir", - "TrainingCost": 9, - "UpgradeTimeH": 180, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 215000, - "DonateCost": 20, - "AttackRange": 550, - "AttackSpeed": 1400, - "DPS": 140, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_electrowl", - "BigPicture": "unit_pet_electro_owl_big", - "BigPictureSWF": "sc/info_pet_electro_owl.sc", - "DeployEffect": "Laser Owl Deploy", - "AttackEffect": "Laser Owl Attack", - "HitEffect": "Mega Tesla Hit", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Laser Owl Die", - "Animation": "PetEowlDefault", - "IsJumper": false, - "MovementOffsetSpeed": 30, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 3950, - "TargetedEffectOffset": 60, - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": false, - "ChainAttackDistance": 300, - "ChainAttackMaxTargets": 2, - "ChainAttackDelay": 128, - "ChainAttackDamageReductionPercent": 20, - "ChainAttackEffect": "MegaTesla Attack_1_chain", - "SpecialAbilityName": "TID_PET_ABILITY_ELECTROWL", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_ELECTROWL", - "LeashLength": 0, - "DefaultSkin": "PetEowlDefault", - "PreviewScenario": "Pet2" - }, - "10": { - "TroopLevel": 10, - "TID": "TID_PET_RANGEDATTACKER", - "InfoTID": "TID_PET_RANGEDATTACKER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 2, - "Speed": 250, - "Hitpoints": 2500, - "TrainingTime": 9999, - "TrainingResource": "DarkElixir", - "TrainingCost": 10, - "UpgradeTimeH": 180, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 215000, - "DonateCost": 20, - "AttackRange": 550, - "AttackSpeed": 1400, - "DPS": 145, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_electrowl", - "BigPicture": "unit_pet_electro_owl_big", - "BigPictureSWF": "sc/info_pet_electro_owl.sc", - "DeployEffect": "Laser Owl Deploy", - "AttackEffect": "Laser Owl Attack", - "HitEffect": "Mega Tesla Hit", - "IsFlying": true, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Laser Owl Die", - "Animation": "PetEowlDefault", - "IsJumper": false, - "MovementOffsetSpeed": 30, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 4000, - "TargetedEffectOffset": 60, - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": false, - "ChainAttackDistance": 300, - "ChainAttackMaxTargets": 2, - "ChainAttackDelay": 128, - "ChainAttackDamageReductionPercent": 20, - "ChainAttackEffect": "MegaTesla Attack_1_chain", - "SpecialAbilityName": "TID_PET_ABILITY_ELECTROWL", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_ELECTROWL", - "LeashLength": 0, - "DefaultSkin": "PetEowlDefault", - "PreviewScenario": "Pet2" - } - }, - "Unicorn": { - "1": { - "TroopLevel": 1, - "TID": "TID_PET_HEALER", - "InfoTID": "TID_PET_HEALER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 4, - "Speed": 200, - "Hitpoints": 1400, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 1, - "UpgradeTimeH": 72, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 180000, - "DonateCost": 20, - "AttackRange": 250, - "AttackSpeed": 1000, - "DPS": "-50", - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_unipony", - "BigPicture": "unit_pet_unicorn_big", - "BigPictureSWF": "sc/info_pet_unicorn.sc", - "Projectile": "UnicornHealEnergy", - "DeployEffect": "Pony Deploy", - "AttackEffect": "Pony Attack", - "HitEffect": "Unicorn Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Pony Die", - "Animation": "PetUnicornDefault", - "IsJumper": true, - "MovementOffsetSpeed": 50, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 4550, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_UNIPONY", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_UNIPONY", - "HeroDamageMultiplier": 100, - "LeashLength": 0, - "DefaultSkin": "PetUnicornDefault", - "PreviewScenario": "Pet2" - }, - "2": { - "TroopLevel": 2, - "TID": "TID_PET_HEALER", - "InfoTID": "TID_PET_HEALER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 4, - "Speed": 200, - "Hitpoints": 1450, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 2, - "UpgradeTimeH": 96, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 190000, - "DonateCost": 20, - "AttackRange": 250, - "AttackSpeed": 1000, - "DPS": "-53", - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_unipony", - "BigPicture": "unit_pet_unicorn_big", - "BigPictureSWF": "sc/info_pet_unicorn.sc", - "Projectile": "UnicornHealEnergy", - "DeployEffect": "Pony Deploy", - "AttackEffect": "Pony Attack", - "HitEffect": "Unicorn Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Pony Die", - "Animation": "PetUnicornDefault", - "IsJumper": true, - "MovementOffsetSpeed": 50, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 4600, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_UNIPONY", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_UNIPONY", - "HeroDamageMultiplier": 100, - "LeashLength": 0, - "DefaultSkin": "PetUnicornDefault", - "PreviewScenario": "Pet2" - }, - "3": { - "TroopLevel": 3, - "TID": "TID_PET_HEALER", - "InfoTID": "TID_PET_HEALER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 4, - "Speed": 200, - "Hitpoints": 1500, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 3, - "UpgradeTimeH": 108, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 200000, - "DonateCost": 20, - "AttackRange": 250, - "AttackSpeed": 1000, - "DPS": "-56", - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_unipony", - "BigPicture": "unit_pet_unicorn_big", - "BigPictureSWF": "sc/info_pet_unicorn.sc", - "Projectile": "UnicornHealEnergy", - "DeployEffect": "Pony Deploy", - "AttackEffect": "Pony Attack", - "HitEffect": "Unicorn Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Pony Die", - "Animation": "PetUnicornDefault", - "IsJumper": true, - "MovementOffsetSpeed": 50, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 4650, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_UNIPONY", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_UNIPONY", - "HeroDamageMultiplier": 100, - "LeashLength": 0, - "DefaultSkin": "PetUnicornDefault", - "PreviewScenario": "Pet2" - }, - "4": { - "TroopLevel": 4, - "TID": "TID_PET_HEALER", - "InfoTID": "TID_PET_HEALER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 4, - "Speed": 200, - "Hitpoints": 1550, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 4, - "UpgradeTimeH": 120, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 210000, - "DonateCost": 20, - "AttackRange": 250, - "AttackSpeed": 1000, - "DPS": "-58", - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_unipony", - "BigPicture": "unit_pet_unicorn_big", - "BigPictureSWF": "sc/info_pet_unicorn.sc", - "Projectile": "UnicornHealEnergy", - "DeployEffect": "Pony Deploy", - "AttackEffect": "Pony Attack", - "HitEffect": "Unicorn Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Pony Die", - "Animation": "PetUnicornDefault", - "IsJumper": true, - "MovementOffsetSpeed": 50, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 4700, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_UNIPONY", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_UNIPONY", - "HeroDamageMultiplier": 100, - "LeashLength": 0, - "DefaultSkin": "PetUnicornDefault", - "PreviewScenario": "Pet2" - }, - "5": { - "TroopLevel": 5, - "TID": "TID_PET_HEALER", - "InfoTID": "TID_PET_HEALER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 4, - "Speed": 200, - "Hitpoints": 1600, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 5, - "UpgradeTimeH": 132, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 220000, - "DonateCost": 20, - "AttackRange": 250, - "AttackSpeed": 1000, - "DPS": "-60", - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_unipony", - "BigPicture": "unit_pet_unicorn_big", - "BigPictureSWF": "sc/info_pet_unicorn.sc", - "Projectile": "UnicornHealEnergy", - "DeployEffect": "Pony Deploy", - "AttackEffect": "Pony Attack", - "HitEffect": "Unicorn Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Pony Die", - "Animation": "PetUnicornDefault", - "IsJumper": true, - "MovementOffsetSpeed": 50, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 4750, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_UNIPONY", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_UNIPONY", - "HeroDamageMultiplier": 100, - "LeashLength": 0, - "DefaultSkin": "PetUnicornDefault", - "PreviewScenario": "Pet2" - }, - "6": { - "TroopLevel": 6, - "TID": "TID_PET_HEALER", - "InfoTID": "TID_PET_HEALER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 4, - "Speed": 200, - "Hitpoints": 1675, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 6, - "UpgradeTimeH": 144, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 230000, - "DonateCost": 20, - "AttackRange": 250, - "AttackSpeed": 1000, - "DPS": "-62", - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_unipony", - "BigPicture": "unit_pet_unicorn_big", - "BigPictureSWF": "sc/info_pet_unicorn.sc", - "Projectile": "UnicornHealEnergy", - "DeployEffect": "Pony Deploy", - "AttackEffect": "Pony Attack", - "HitEffect": "Unicorn Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Pony Die", - "Animation": "PetUnicornDefault", - "IsJumper": true, - "MovementOffsetSpeed": 50, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 4800, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_UNIPONY", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_UNIPONY", - "HeroDamageMultiplier": 100, - "LeashLength": 0, - "DefaultSkin": "PetUnicornDefault", - "PreviewScenario": "Pet2" - }, - "7": { - "TroopLevel": 7, - "TID": "TID_PET_HEALER", - "InfoTID": "TID_PET_HEALER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 4, - "Speed": 200, - "Hitpoints": 1725, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 7, - "UpgradeTimeH": 156, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 240000, - "DonateCost": 20, - "AttackRange": 250, - "AttackSpeed": 1000, - "DPS": "-64", - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_unipony", - "BigPicture": "unit_pet_unicorn_big", - "BigPictureSWF": "sc/info_pet_unicorn.sc", - "Projectile": "UnicornHealEnergy", - "DeployEffect": "Pony Deploy", - "AttackEffect": "Pony Attack", - "HitEffect": "Unicorn Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Pony Die", - "Animation": "PetUnicornDefault", - "IsJumper": true, - "MovementOffsetSpeed": 50, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 4850, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_UNIPONY", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_UNIPONY", - "HeroDamageMultiplier": 100, - "LeashLength": 0, - "DefaultSkin": "PetUnicornDefault", - "PreviewScenario": "Pet2" - }, - "8": { - "TroopLevel": 8, - "TID": "TID_PET_HEALER", - "InfoTID": "TID_PET_HEALER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 4, - "Speed": 200, - "Hitpoints": 1800, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 8, - "UpgradeTimeH": 168, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 250000, - "DonateCost": 20, - "AttackRange": 250, - "AttackSpeed": 1000, - "DPS": "-66", - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_unipony", - "BigPicture": "unit_pet_unicorn_big", - "BigPictureSWF": "sc/info_pet_unicorn.sc", - "Projectile": "UnicornHealEnergy", - "DeployEffect": "Pony Deploy", - "AttackEffect": "Pony Attack", - "HitEffect": "Unicorn Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Pony Die", - "Animation": "PetUnicornDefault", - "IsJumper": true, - "MovementOffsetSpeed": 50, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 4900, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_UNIPONY", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_UNIPONY", - "HeroDamageMultiplier": 100, - "LeashLength": 0, - "DefaultSkin": "PetUnicornDefault", - "PreviewScenario": "Pet2" - }, - "9": { - "TroopLevel": 9, - "TID": "TID_PET_HEALER", - "InfoTID": "TID_PET_HEALER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 4, - "Speed": 200, - "Hitpoints": 1875, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 9, - "UpgradeTimeH": 180, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 260000, - "DonateCost": 20, - "AttackRange": 250, - "AttackSpeed": 1000, - "DPS": "-68", - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_unipony", - "BigPicture": "unit_pet_unicorn_big", - "BigPictureSWF": "sc/info_pet_unicorn.sc", - "Projectile": "UnicornHealEnergy", - "DeployEffect": "Pony Deploy", - "AttackEffect": "Pony Attack", - "HitEffect": "Unicorn Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Pony Die", - "Animation": "PetUnicornDefault", - "IsJumper": true, - "MovementOffsetSpeed": 50, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 4950, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_UNIPONY", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_UNIPONY", - "HeroDamageMultiplier": 100, - "LeashLength": 0, - "DefaultSkin": "PetUnicornDefault", - "PreviewScenario": "Pet2" - }, - "10": { - "TroopLevel": 10, - "TID": "TID_PET_HEALER", - "InfoTID": "TID_PET_HEALER_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 4, - "Speed": 200, - "Hitpoints": 1950, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 10, - "UpgradeTimeH": 180, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 260000, - "DonateCost": 20, - "AttackRange": 250, - "AttackSpeed": 1000, - "DPS": "-70", - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_unipony", - "BigPicture": "unit_pet_unicorn_big", - "BigPictureSWF": "sc/info_pet_unicorn.sc", - "Projectile": "UnicornHealEnergy", - "DeployEffect": "Pony Deploy", - "AttackEffect": "Pony Attack", - "HitEffect": "Unicorn Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Pony Die", - "Animation": "PetUnicornDefault", - "IsJumper": true, - "MovementOffsetSpeed": 50, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 5000, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_UNIPONY", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_UNIPONY", - "HeroDamageMultiplier": 100, - "LeashLength": 0, - "DefaultSkin": "PetUnicornDefault", - "PreviewScenario": "Pet2" - } - }, - "Phoenix": { - "1": { - "TroopLevel": 1, - "TID": "TID_PET_PHOENIX", - "InfoTID": "TID_PET_PHOENIX_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 8, - "Speed": 300, - "Hitpoints": 8000, - "TrainingTime": 360, - "TrainingResource": "DarkElixir", - "TrainingCost": 1, - "UpgradeTimeH": 1, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 200000, - "DonateCost": 20, - "AttackRange": 200, - "AttackSpeed": 3000, - "DPS": 0, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_phoenix", - "BigPicture": "unit_pet_phoenix_big", - "BigPictureSWF": "sc/info_pet_phoenix.sc", - "AltProjectile": "PhoenixResurrect", - "DeployEffect": "Phoenix_Egg_Deploy", - "AttackEffect": "Phoenix_Egg_Attack", - "HitEffect": "Phoenix_Egg_Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "AttackCount": 1, - "DieEffect": "Bdragon Die", - "Animation": "PhoenixEggDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "IsSecondaryTroop": true, - "SecondarySpawnDist": 0, - "SpawnIdle": 100, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 0, - "TriggersTraps": false, - "SpecialAbilityLevel": 1, - "SpecialAbilityName": "TID_PET_PHOENIX_ABILITY", - "SpecialAbilityInfo": "TID_PET_PHOENIX_ABILITY_INFO", - "SpecialAbilityType": "PhoenixEgg", - "DoesNotOpenCC": true, - "LeashLength": 0, - "DefaultSkin": "PetPhoenixEggDefault", - "HeroDeathAbilityLevel": 1, - "HeroDeathAbilityType": "ResurrectHero", - "HeroDeathAbilitySpell": "TroopImmortality", - "RecallWithMaster": true - }, - "2": { - "TroopLevel": 2, - "TID": "TID_PET_PHOENIX", - "InfoTID": "TID_PET_PHOENIX_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 8, - "Speed": 300, - "Hitpoints": 8100, - "TrainingTime": 360, - "TrainingResource": "DarkElixir", - "TrainingCost": 1, - "UpgradeTimeH": 1, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 200000, - "DonateCost": 20, - "AttackRange": 200, - "AttackSpeed": 3000, - "DPS": 0, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_phoenix", - "BigPicture": "unit_pet_phoenix_big", - "BigPictureSWF": "sc/info_pet_phoenix.sc", - "AltProjectile": "PhoenixResurrect", - "DeployEffect": "Phoenix_Egg_Deploy", - "AttackEffect": "Phoenix_Egg_Attack", - "HitEffect": "Phoenix_Egg_Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "AttackCount": 1, - "DieEffect": "Bdragon Die", - "Animation": "PhoenixEggDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "IsSecondaryTroop": true, - "SecondarySpawnDist": 0, - "SpawnIdle": 100, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 0, - "TriggersTraps": false, - "SpecialAbilityLevel": 1, - "SpecialAbilityName": "TID_PET_PHOENIX_ABILITY", - "SpecialAbilityInfo": "TID_PET_PHOENIX_ABILITY_INFO", - "SpecialAbilityType": "PhoenixEgg", - "DoesNotOpenCC": true, - "LeashLength": 0, - "DefaultSkin": "PetPhoenixEggDefault", - "HeroDeathAbilityLevel": 1, - "HeroDeathAbilityType": "ResurrectHero", - "HeroDeathAbilitySpell": "TroopImmortality", - "RecallWithMaster": true - }, - "3": { - "TroopLevel": 3, - "TID": "TID_PET_PHOENIX", - "InfoTID": "TID_PET_PHOENIX_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 8, - "Speed": 300, - "Hitpoints": 8200, - "TrainingTime": 360, - "TrainingResource": "DarkElixir", - "TrainingCost": 1, - "UpgradeTimeH": 1, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 200000, - "DonateCost": 20, - "AttackRange": 200, - "AttackSpeed": 3000, - "DPS": 0, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_phoenix", - "BigPicture": "unit_pet_phoenix_big", - "BigPictureSWF": "sc/info_pet_phoenix.sc", - "AltProjectile": "PhoenixResurrect", - "DeployEffect": "Phoenix_Egg_Deploy", - "AttackEffect": "Phoenix_Egg_Attack", - "HitEffect": "Phoenix_Egg_Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "AttackCount": 1, - "DieEffect": "Bdragon Die", - "Animation": "PhoenixEggDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "IsSecondaryTroop": true, - "SecondarySpawnDist": 0, - "SpawnIdle": 100, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 0, - "TriggersTraps": false, - "SpecialAbilityLevel": 1, - "SpecialAbilityName": "TID_PET_PHOENIX_ABILITY", - "SpecialAbilityInfo": "TID_PET_PHOENIX_ABILITY_INFO", - "SpecialAbilityType": "PhoenixEgg", - "DoesNotOpenCC": true, - "LeashLength": 0, - "DefaultSkin": "PetPhoenixEggDefault", - "HeroDeathAbilityLevel": 1, - "HeroDeathAbilityType": "ResurrectHero", - "HeroDeathAbilitySpell": "TroopImmortality", - "RecallWithMaster": true - }, - "4": { - "TroopLevel": 4, - "TID": "TID_PET_PHOENIX", - "InfoTID": "TID_PET_PHOENIX_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 8, - "Speed": 300, - "Hitpoints": 8300, - "TrainingTime": 360, - "TrainingResource": "DarkElixir", - "TrainingCost": 1, - "UpgradeTimeH": 1, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 200000, - "DonateCost": 20, - "AttackRange": 200, - "AttackSpeed": 3000, - "DPS": 0, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_phoenix", - "BigPicture": "unit_pet_phoenix_big", - "BigPictureSWF": "sc/info_pet_phoenix.sc", - "AltProjectile": "PhoenixResurrect", - "DeployEffect": "Phoenix_Egg_Deploy", - "AttackEffect": "Phoenix_Egg_Attack", - "HitEffect": "Phoenix_Egg_Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "AttackCount": 1, - "DieEffect": "Bdragon Die", - "Animation": "PhoenixEggDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "IsSecondaryTroop": true, - "SecondarySpawnDist": 0, - "SpawnIdle": 100, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 0, - "TriggersTraps": false, - "SpecialAbilityLevel": 1, - "SpecialAbilityName": "TID_PET_PHOENIX_ABILITY", - "SpecialAbilityInfo": "TID_PET_PHOENIX_ABILITY_INFO", - "SpecialAbilityType": "PhoenixEgg", - "DoesNotOpenCC": true, - "LeashLength": 0, - "DefaultSkin": "PetPhoenixEggDefault", - "HeroDeathAbilityLevel": 1, - "HeroDeathAbilityType": "ResurrectHero", - "HeroDeathAbilitySpell": "TroopImmortality", - "RecallWithMaster": true - }, - "5": { - "TroopLevel": 5, - "TID": "TID_PET_PHOENIX", - "InfoTID": "TID_PET_PHOENIX_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 8, - "Speed": 300, - "Hitpoints": 8400, - "TrainingTime": 360, - "TrainingResource": "DarkElixir", - "TrainingCost": 1, - "UpgradeTimeH": 1, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 200000, - "DonateCost": 20, - "AttackRange": 200, - "AttackSpeed": 3000, - "DPS": 0, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_phoenix", - "BigPicture": "unit_pet_phoenix_big", - "BigPictureSWF": "sc/info_pet_phoenix.sc", - "AltProjectile": "PhoenixResurrect", - "DeployEffect": "Phoenix_Egg_Deploy", - "AttackEffect": "Phoenix_Egg_Attack", - "HitEffect": "Phoenix_Egg_Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "AttackCount": 1, - "DieEffect": "Bdragon Die", - "Animation": "PhoenixEggDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "IsSecondaryTroop": true, - "SecondarySpawnDist": 0, - "SpawnIdle": 100, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 0, - "TriggersTraps": false, - "SpecialAbilityLevel": 1, - "SpecialAbilityName": "TID_PET_PHOENIX_ABILITY", - "SpecialAbilityInfo": "TID_PET_PHOENIX_ABILITY_INFO", - "SpecialAbilityType": "PhoenixEgg", - "DoesNotOpenCC": true, - "LeashLength": 0, - "DefaultSkin": "PetPhoenixEggDefault", - "HeroDeathAbilityLevel": 2, - "HeroDeathAbilityType": "ResurrectHero", - "HeroDeathAbilitySpell": "TroopImmortality", - "RecallWithMaster": true - }, - "6": { - "TroopLevel": 6, - "TID": "TID_PET_PHOENIX", - "InfoTID": "TID_PET_PHOENIX_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 8, - "Speed": 300, - "Hitpoints": 8500, - "TrainingTime": 360, - "TrainingResource": "DarkElixir", - "TrainingCost": 1, - "UpgradeTimeH": 1, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 200000, - "DonateCost": 20, - "AttackRange": 200, - "AttackSpeed": 3000, - "DPS": 0, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_phoenix", - "BigPicture": "unit_pet_phoenix_big", - "BigPictureSWF": "sc/info_pet_phoenix.sc", - "AltProjectile": "PhoenixResurrect", - "DeployEffect": "Phoenix_Egg_Deploy", - "AttackEffect": "Phoenix_Egg_Attack", - "HitEffect": "Phoenix_Egg_Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "AttackCount": 1, - "DieEffect": "Bdragon Die", - "Animation": "PhoenixEggDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "IsSecondaryTroop": true, - "SecondarySpawnDist": 0, - "SpawnIdle": 100, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 0, - "TriggersTraps": false, - "SpecialAbilityLevel": 1, - "SpecialAbilityName": "TID_PET_PHOENIX_ABILITY", - "SpecialAbilityInfo": "TID_PET_PHOENIX_ABILITY_INFO", - "SpecialAbilityType": "PhoenixEgg", - "DoesNotOpenCC": true, - "LeashLength": 0, - "DefaultSkin": "PetPhoenixEggDefault", - "HeroDeathAbilityLevel": 2, - "HeroDeathAbilityType": "ResurrectHero", - "HeroDeathAbilitySpell": "TroopImmortality", - "RecallWithMaster": true - }, - "7": { - "TroopLevel": 7, - "TID": "TID_PET_PHOENIX", - "InfoTID": "TID_PET_PHOENIX_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 8, - "Speed": 300, - "Hitpoints": 8600, - "TrainingTime": 360, - "TrainingResource": "DarkElixir", - "TrainingCost": 1, - "UpgradeTimeH": 1, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 200000, - "DonateCost": 20, - "AttackRange": 200, - "AttackSpeed": 3000, - "DPS": 0, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_phoenix", - "BigPicture": "unit_pet_phoenix_big", - "BigPictureSWF": "sc/info_pet_phoenix.sc", - "AltProjectile": "PhoenixResurrect", - "DeployEffect": "Phoenix_Egg_Deploy", - "AttackEffect": "Phoenix_Egg_Attack", - "HitEffect": "Phoenix_Egg_Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "AttackCount": 1, - "DieEffect": "Bdragon Die", - "Animation": "PhoenixEggDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "IsSecondaryTroop": true, - "SecondarySpawnDist": 0, - "SpawnIdle": 100, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 0, - "TriggersTraps": false, - "SpecialAbilityLevel": 1, - "SpecialAbilityName": "TID_PET_PHOENIX_ABILITY", - "SpecialAbilityInfo": "TID_PET_PHOENIX_ABILITY_INFO", - "SpecialAbilityType": "PhoenixEgg", - "DoesNotOpenCC": true, - "LeashLength": 0, - "DefaultSkin": "PetPhoenixEggDefault", - "HeroDeathAbilityLevel": 2, - "HeroDeathAbilityType": "ResurrectHero", - "HeroDeathAbilitySpell": "TroopImmortality", - "RecallWithMaster": true - }, - "8": { - "TroopLevel": 8, - "TID": "TID_PET_PHOENIX", - "InfoTID": "TID_PET_PHOENIX_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 8, - "Speed": 300, - "Hitpoints": 8700, - "TrainingTime": 360, - "TrainingResource": "DarkElixir", - "TrainingCost": 1, - "UpgradeTimeH": 1, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 200000, - "DonateCost": 20, - "AttackRange": 200, - "AttackSpeed": 3000, - "DPS": 0, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_phoenix", - "BigPicture": "unit_pet_phoenix_big", - "BigPictureSWF": "sc/info_pet_phoenix.sc", - "AltProjectile": "PhoenixResurrect", - "DeployEffect": "Phoenix_Egg_Deploy", - "AttackEffect": "Phoenix_Egg_Attack", - "HitEffect": "Phoenix_Egg_Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "AttackCount": 1, - "DieEffect": "Bdragon Die", - "Animation": "PhoenixEggDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "IsSecondaryTroop": true, - "SecondarySpawnDist": 0, - "SpawnIdle": 100, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 0, - "TriggersTraps": false, - "SpecialAbilityLevel": 1, - "SpecialAbilityName": "TID_PET_PHOENIX_ABILITY", - "SpecialAbilityInfo": "TID_PET_PHOENIX_ABILITY_INFO", - "SpecialAbilityType": "PhoenixEgg", - "DoesNotOpenCC": true, - "LeashLength": 0, - "DefaultSkin": "PetPhoenixEggDefault", - "HeroDeathAbilityLevel": 2, - "HeroDeathAbilityType": "ResurrectHero", - "HeroDeathAbilitySpell": "TroopImmortality", - "RecallWithMaster": true - }, - "9": { - "TroopLevel": 9, - "TID": "TID_PET_PHOENIX", - "InfoTID": "TID_PET_PHOENIX_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 8, - "Speed": 300, - "Hitpoints": 8800, - "TrainingTime": 360, - "TrainingResource": "DarkElixir", - "TrainingCost": 1, - "UpgradeTimeH": 1, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 200000, - "DonateCost": 20, - "AttackRange": 200, - "AttackSpeed": 3000, - "DPS": 0, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_phoenix", - "BigPicture": "unit_pet_phoenix_big", - "BigPictureSWF": "sc/info_pet_phoenix.sc", - "AltProjectile": "PhoenixResurrect", - "DeployEffect": "Phoenix_Egg_Deploy", - "AttackEffect": "Phoenix_Egg_Attack", - "HitEffect": "Phoenix_Egg_Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "AttackCount": 1, - "DieEffect": "Bdragon Die", - "Animation": "PhoenixEggDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "IsSecondaryTroop": true, - "SecondarySpawnDist": 0, - "SpawnIdle": 100, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 0, - "TriggersTraps": false, - "SpecialAbilityLevel": 1, - "SpecialAbilityName": "TID_PET_PHOENIX_ABILITY", - "SpecialAbilityInfo": "TID_PET_PHOENIX_ABILITY_INFO", - "SpecialAbilityType": "PhoenixEgg", - "DoesNotOpenCC": true, - "LeashLength": 0, - "DefaultSkin": "PetPhoenixEggDefault", - "HeroDeathAbilityLevel": 2, - "HeroDeathAbilityType": "ResurrectHero", - "HeroDeathAbilitySpell": "TroopImmortality", - "RecallWithMaster": true - }, - "10": { - "TroopLevel": 10, - "TID": "TID_PET_PHOENIX", - "InfoTID": "TID_PET_PHOENIX_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 8, - "Speed": 300, - "Hitpoints": 8900, - "TrainingTime": 360, - "TrainingResource": "DarkElixir", - "TrainingCost": 1, - "UpgradeTimeH": 1, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 200000, - "DonateCost": 20, - "AttackRange": 200, - "AttackSpeed": 3000, - "DPS": 0, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_phoenix", - "BigPicture": "unit_pet_phoenix_big", - "BigPictureSWF": "sc/info_pet_phoenix.sc", - "AltProjectile": "PhoenixResurrect", - "DeployEffect": "Phoenix_Egg_Deploy", - "AttackEffect": "Phoenix_Egg_Attack", - "HitEffect": "Phoenix_Egg_Hit", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "AttackCount": 1, - "DieEffect": "Bdragon Die", - "Animation": "PhoenixEggDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "IsSecondaryTroop": true, - "SecondarySpawnDist": 0, - "SpawnIdle": 100, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 0, - "EnemyGroupWeight": 0, - "TriggersTraps": false, - "SpecialAbilityLevel": 1, - "SpecialAbilityName": "TID_PET_PHOENIX_ABILITY", - "SpecialAbilityInfo": "TID_PET_PHOENIX_ABILITY_INFO", - "SpecialAbilityType": "PhoenixEgg", - "DoesNotOpenCC": true, - "LeashLength": 0, - "DefaultSkin": "PetPhoenixEggDefault", - "HeroDeathAbilityLevel": 3, - "HeroDeathAbilityType": "ResurrectHero", - "HeroDeathAbilitySpell": "TroopImmortality", - "RecallWithMaster": true - } - }, - "Poison Lizard": { - "1": { - "TroopLevel": 1, - "TID": "TID_PET_POISON_LIZARD", - "InfoTID": "TID_PET_POISON_LIZARD_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 7, - "Speed": 450, - "Hitpoints": 1250, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 1, - "UpgradeTimeH": 72, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 190000, - "DonateCost": 20, - "AttackRange": 350, - "AttackSpeed": 350, - "DPS": 181, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_poison_lizard", - "BigPicture": "unit_pet_poison_lizard_big", - "BigPictureSWF": "sc/info_pet_poison_lizard.sc", - "Projectile": "fireIguanaProto", - "DeployEffect": "Poison Lizard Deploy", - "AttackEffect": "Poison Lizard Attack", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Poison Lizard Die", - "Animation": "PoisonIguanaDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 4050, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": false, - "SpecialAbilityName": "TID_PET_POISON_LIZARD_ABILITY", - "SpecialAbilityInfo": "TID_PET_POISON_LIZARD_ABILITY_INFO", - "SpecialAbilityType": "PoisonTarget", - "SpecialAbilityAttribute": 1, - "SpecialAbilityAttribute2": 3000, - "SpecialAbilitySpell": "PoisonLizardAttack", - "HeroDamageMultiplier": 100, - "PreferHeroes": true, - "LeashLength": 400, - "DefaultSkin": "PetPoisonIguanaDefault", - "PreferMasterTarget": true, - "PreviewScenario": "Pet4" - }, - "2": { - "TroopLevel": 2, - "TID": "TID_PET_POISON_LIZARD", - "InfoTID": "TID_PET_POISON_LIZARD_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 7, - "Speed": 450, - "Hitpoints": 1300, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 2, - "UpgradeTimeH": 96, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 195000, - "DonateCost": 20, - "AttackRange": 350, - "AttackSpeed": 350, - "DPS": 192, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_poison_lizard", - "BigPicture": "unit_pet_poison_lizard_big", - "BigPictureSWF": "sc/info_pet_poison_lizard.sc", - "Projectile": "fireIguanaProto", - "DeployEffect": "Poison Lizard Deploy", - "AttackEffect": "Poison Lizard Attack", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Poison Lizard Die", - "Animation": "PoisonIguanaDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 4100, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": false, - "SpecialAbilityName": "TID_PET_POISON_LIZARD_ABILITY", - "SpecialAbilityInfo": "TID_PET_POISON_LIZARD_ABILITY_INFO", - "SpecialAbilityType": "PoisonTarget", - "SpecialAbilityAttribute": 1, - "SpecialAbilityAttribute2": 3000, - "SpecialAbilitySpell": "PoisonLizardAttack", - "HeroDamageMultiplier": 100, - "PreferHeroes": true, - "LeashLength": 400, - "DefaultSkin": "PetPoisonIguanaDefault", - "PreferMasterTarget": true, - "PreviewScenario": "Pet4" - }, - "3": { - "TroopLevel": 3, - "TID": "TID_PET_POISON_LIZARD", - "InfoTID": "TID_PET_POISON_LIZARD_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 7, - "Speed": 450, - "Hitpoints": 1350, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 3, - "UpgradeTimeH": 120, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 200000, - "DonateCost": 20, - "AttackRange": 350, - "AttackSpeed": 350, - "DPS": 203, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_poison_lizard", - "BigPicture": "unit_pet_poison_lizard_big", - "BigPictureSWF": "sc/info_pet_poison_lizard.sc", - "Projectile": "fireIguanaProto", - "DeployEffect": "Poison Lizard Deploy", - "AttackEffect": "Poison Lizard Attack", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Poison Lizard Die", - "Animation": "PoisonIguanaDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 4150, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": false, - "SpecialAbilityName": "TID_PET_POISON_LIZARD_ABILITY", - "SpecialAbilityInfo": "TID_PET_POISON_LIZARD_ABILITY_INFO", - "SpecialAbilityType": "PoisonTarget", - "SpecialAbilityAttribute": 1, - "SpecialAbilityAttribute2": 3000, - "SpecialAbilitySpell": "PoisonLizardAttack", - "HeroDamageMultiplier": 100, - "PreferHeroes": true, - "LeashLength": 400, - "DefaultSkin": "PetPoisonIguanaDefault", - "PreferMasterTarget": true, - "PreviewScenario": "Pet4" - }, - "4": { - "TroopLevel": 4, - "TID": "TID_PET_POISON_LIZARD", - "InfoTID": "TID_PET_POISON_LIZARD_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 7, - "Speed": 450, - "Hitpoints": 1400, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 4, - "UpgradeTimeH": 132, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 210000, - "DonateCost": 20, - "AttackRange": 350, - "AttackSpeed": 350, - "DPS": 214, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_poison_lizard", - "BigPicture": "unit_pet_poison_lizard_big", - "BigPictureSWF": "sc/info_pet_poison_lizard.sc", - "Projectile": "fireIguanaProto", - "DeployEffect": "Poison Lizard Deploy", - "AttackEffect": "Poison Lizard Attack", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Poison Lizard Die", - "Animation": "PoisonIguanaDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 4200, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": false, - "SpecialAbilityName": "TID_PET_POISON_LIZARD_ABILITY", - "SpecialAbilityInfo": "TID_PET_POISON_LIZARD_ABILITY_INFO", - "SpecialAbilityType": "PoisonTarget", - "SpecialAbilityAttribute": 1, - "SpecialAbilityAttribute2": 3000, - "SpecialAbilitySpell": "PoisonLizardAttack", - "HeroDamageMultiplier": 100, - "PreferHeroes": true, - "LeashLength": 400, - "DefaultSkin": "PetPoisonIguanaDefault", - "PreferMasterTarget": true, - "PreviewScenario": "Pet4" - }, - "5": { - "TroopLevel": 5, - "TID": "TID_PET_POISON_LIZARD", - "InfoTID": "TID_PET_POISON_LIZARD_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 7, - "Speed": 450, - "Hitpoints": 1450, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 5, - "UpgradeTimeH": 144, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 215000, - "DonateCost": 20, - "AttackRange": 350, - "AttackSpeed": 350, - "DPS": 225, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_poison_lizard", - "BigPicture": "unit_pet_poison_lizard_big", - "BigPictureSWF": "sc/info_pet_poison_lizard.sc", - "Projectile": "fireIguanaProto", - "DeployEffect": "Poison Lizard Deploy", - "AttackEffect": "Poison Lizard Attack", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Poison Lizard Die", - "Animation": "PoisonIguanaDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 4250, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": false, - "SpecialAbilityName": "TID_PET_POISON_LIZARD_ABILITY", - "SpecialAbilityInfo": "TID_PET_POISON_LIZARD_ABILITY_INFO", - "SpecialAbilityType": "PoisonTarget", - "SpecialAbilityAttribute": 2, - "SpecialAbilityAttribute2": 3000, - "SpecialAbilitySpell": "PoisonLizardAttack", - "HeroDamageMultiplier": 100, - "PreferHeroes": true, - "LeashLength": 400, - "DefaultSkin": "PetPoisonIguanaDefault", - "PreferMasterTarget": true, - "PreviewScenario": "Pet4" - }, - "6": { - "TroopLevel": 6, - "TID": "TID_PET_POISON_LIZARD", - "InfoTID": "TID_PET_POISON_LIZARD_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 7, - "Speed": 450, - "Hitpoints": 1500, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 6, - "UpgradeTimeH": 156, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 225000, - "DonateCost": 20, - "AttackRange": 350, - "AttackSpeed": 350, - "DPS": 236, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_poison_lizard", - "BigPicture": "unit_pet_poison_lizard_big", - "BigPictureSWF": "sc/info_pet_poison_lizard.sc", - "Projectile": "fireIguanaProto", - "DeployEffect": "Poison Lizard Deploy", - "AttackEffect": "Poison Lizard Attack", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Poison Lizard Die", - "Animation": "PoisonIguanaDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 4300, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": false, - "SpecialAbilityName": "TID_PET_POISON_LIZARD_ABILITY", - "SpecialAbilityInfo": "TID_PET_POISON_LIZARD_ABILITY_INFO", - "SpecialAbilityType": "PoisonTarget", - "SpecialAbilityAttribute": 2, - "SpecialAbilityAttribute2": 3000, - "SpecialAbilitySpell": "PoisonLizardAttack", - "HeroDamageMultiplier": 100, - "PreferHeroes": true, - "LeashLength": 400, - "DefaultSkin": "PetPoisonIguanaDefault", - "PreferMasterTarget": true, - "PreviewScenario": "Pet4" - }, - "7": { - "TroopLevel": 7, - "TID": "TID_PET_POISON_LIZARD", - "InfoTID": "TID_PET_POISON_LIZARD_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 7, - "Speed": 450, - "Hitpoints": 1550, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 7, - "UpgradeTimeH": 168, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 230000, - "DonateCost": 20, - "AttackRange": 350, - "AttackSpeed": 350, - "DPS": 247, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_poison_lizard", - "BigPicture": "unit_pet_poison_lizard_big", - "BigPictureSWF": "sc/info_pet_poison_lizard.sc", - "Projectile": "fireIguanaProto", - "DeployEffect": "Poison Lizard Deploy", - "AttackEffect": "Poison Lizard Attack", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Poison Lizard Die", - "Animation": "PoisonIguanaDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 4350, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": false, - "SpecialAbilityName": "TID_PET_POISON_LIZARD_ABILITY", - "SpecialAbilityInfo": "TID_PET_POISON_LIZARD_ABILITY_INFO", - "SpecialAbilityType": "PoisonTarget", - "SpecialAbilityAttribute": 2, - "SpecialAbilityAttribute2": 3000, - "SpecialAbilitySpell": "PoisonLizardAttack", - "HeroDamageMultiplier": 100, - "PreferHeroes": true, - "LeashLength": 400, - "DefaultSkin": "PetPoisonIguanaDefault", - "PreferMasterTarget": true, - "PreviewScenario": "Pet4" - }, - "8": { - "TroopLevel": 8, - "TID": "TID_PET_POISON_LIZARD", - "InfoTID": "TID_PET_POISON_LIZARD_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 7, - "Speed": 450, - "Hitpoints": 1600, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 8, - "UpgradeTimeH": 180, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 240000, - "DonateCost": 20, - "AttackRange": 350, - "AttackSpeed": 350, - "DPS": 258, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_poison_lizard", - "BigPicture": "unit_pet_poison_lizard_big", - "BigPictureSWF": "sc/info_pet_poison_lizard.sc", - "Projectile": "fireIguanaProto", - "DeployEffect": "Poison Lizard Deploy", - "AttackEffect": "Poison Lizard Attack", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Poison Lizard Die", - "Animation": "PoisonIguanaDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 4400, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": false, - "SpecialAbilityName": "TID_PET_POISON_LIZARD_ABILITY", - "SpecialAbilityInfo": "TID_PET_POISON_LIZARD_ABILITY_INFO", - "SpecialAbilityType": "PoisonTarget", - "SpecialAbilityAttribute": 2, - "SpecialAbilityAttribute2": 3000, - "SpecialAbilitySpell": "PoisonLizardAttack", - "HeroDamageMultiplier": 100, - "PreferHeroes": true, - "LeashLength": 400, - "DefaultSkin": "PetPoisonIguanaDefault", - "PreferMasterTarget": true, - "PreviewScenario": "Pet4" - }, - "9": { - "TroopLevel": 9, - "TID": "TID_PET_POISON_LIZARD", - "InfoTID": "TID_PET_POISON_LIZARD_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 7, - "Speed": 450, - "Hitpoints": 1650, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 9, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 245000, - "DonateCost": 20, - "AttackRange": 350, - "AttackSpeed": 350, - "DPS": 269, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_poison_lizard", - "BigPicture": "unit_pet_poison_lizard_big", - "BigPictureSWF": "sc/info_pet_poison_lizard.sc", - "Projectile": "fireIguanaProto", - "DeployEffect": "Poison Lizard Deploy", - "AttackEffect": "Poison Lizard Attack", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Poison Lizard Die", - "Animation": "PoisonIguanaDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 4450, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": false, - "SpecialAbilityName": "TID_PET_POISON_LIZARD_ABILITY", - "SpecialAbilityInfo": "TID_PET_POISON_LIZARD_ABILITY_INFO", - "SpecialAbilityType": "PoisonTarget", - "SpecialAbilityAttribute": 2, - "SpecialAbilityAttribute2": 3000, - "SpecialAbilitySpell": "PoisonLizardAttack", - "HeroDamageMultiplier": 100, - "PreferHeroes": true, - "LeashLength": 400, - "DefaultSkin": "PetPoisonIguanaDefault", - "PreferMasterTarget": true, - "PreviewScenario": "Pet4" - }, - "10": { - "TroopLevel": 10, - "TID": "TID_PET_POISON_LIZARD", - "InfoTID": "TID_PET_POISON_LIZARD_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 7, - "Speed": 450, - "Hitpoints": 1700, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 10, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 245000, - "DonateCost": 20, - "AttackRange": 350, - "AttackSpeed": 350, - "DPS": 280, - "PreferedTargetDamageMod": 1, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_poison_lizard", - "BigPicture": "unit_pet_poison_lizard_big", - "BigPictureSWF": "sc/info_pet_poison_lizard.sc", - "Projectile": "fireIguanaProto", - "DeployEffect": "Poison Lizard Deploy", - "AttackEffect": "Poison Lizard Attack", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Poison Lizard Die", - "Animation": "PoisonIguanaDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 4500, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": false, - "SpecialAbilityName": "TID_PET_POISON_LIZARD_ABILITY", - "SpecialAbilityInfo": "TID_PET_POISON_LIZARD_ABILITY_INFO", - "SpecialAbilityType": "PoisonTarget", - "SpecialAbilityAttribute": 3, - "SpecialAbilityAttribute2": 3000, - "SpecialAbilitySpell": "PoisonLizardAttack", - "HeroDamageMultiplier": 100, - "PreferHeroes": true, - "LeashLength": 400, - "DefaultSkin": "PetPoisonIguanaDefault", - "PreferMasterTarget": true, - "PreviewScenario": "Pet4" - } - }, - "Diggy": { - "1": { - "TroopLevel": 1, - "TID": "TID_PET_DIGGY", - "InfoTID": "TID_PET_DIGGY_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 6, - "Speed": 400, - "Hitpoints": 3650, - "TrainingTime": 120, - "TrainingResource": "DarkElixir", - "TrainingCost": 1, - "UpgradeTimeH": 72, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 185000, - "DonateCost": 20, - "AttackRange": 80, - "AttackSpeed": 1100, - "DPS": 105, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_diggy", - "BigPicture": "unit_pet_diggy_big", - "BigPictureSWF": "sc/info_pet_diggy.sc", - "DeployEffect": "Diggy Deploy", - "AttackEffect": "Diggy Attack", - "HitEffect": "Diggy Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Diggy Die", - "Animation": "DiggyDefault", - "IsJumper": false, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 768, - "StrengthWeight": 2135, - "TargetedEffectOffset": "-50", - "IsUnderground": true, - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "UndergroundEffect": "Diggy Move", - "BecomesTargetableEffect": "Diggy Appear", - "HideEffect": "Diggy Hide", - "SpecialAbilityName": "TID_PET_DIGGY_ABILITY", - "SpecialAbilityInfo": "TID_PET_DIGGY_ABILITY_INFO", - "SpecialAbilityType": "StunTargetOnSurfacing", - "SpecialAbilityAttribute": 2000, - "SpecialAbilityEffect": "Stun_Building_2s", - "LeashLength": 0, - "DefaultSkin": "PetDiggyDefault", - "HeroDeathAbilityLevel": 1, - "HeroDeathAbilityType": "SwitchHero", - "PreferMasterTarget": true, - "PreviewScenario": "Pet1" - }, - "2": { - "TroopLevel": 2, - "TID": "TID_PET_DIGGY", - "InfoTID": "TID_PET_DIGGY_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 6, - "Speed": 400, - "Hitpoints": 3800, - "TrainingTime": 120, - "TrainingResource": "DarkElixir", - "TrainingCost": 2, - "UpgradeTimeH": 96, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 195000, - "DonateCost": 20, - "AttackRange": 80, - "AttackSpeed": 1100, - "DPS": 110, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_diggy", - "BigPicture": "unit_pet_diggy_big", - "BigPictureSWF": "sc/info_pet_diggy.sc", - "DeployEffect": "Diggy Deploy", - "AttackEffect": "Diggy Attack", - "HitEffect": "Diggy Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Diggy Die", - "Animation": "DiggyDefault", - "IsJumper": false, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 768, - "StrengthWeight": 2170, - "TargetedEffectOffset": "-50", - "IsUnderground": true, - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "UndergroundEffect": "Diggy Move", - "BecomesTargetableEffect": "Diggy Appear", - "HideEffect": "Diggy Hide", - "SpecialAbilityName": "TID_PET_DIGGY_ABILITY", - "SpecialAbilityInfo": "TID_PET_DIGGY_ABILITY_INFO", - "SpecialAbilityType": "StunTargetOnSurfacing", - "SpecialAbilityAttribute": 2000, - "SpecialAbilityEffect": "Stun_Building_2s", - "LeashLength": 0, - "DefaultSkin": "PetDiggyDefault", - "HeroDeathAbilityLevel": 1, - "HeroDeathAbilityType": "SwitchHero", - "PreferMasterTarget": true, - "PreviewScenario": "Pet1" - }, - "3": { - "TroopLevel": 3, - "TID": "TID_PET_DIGGY", - "InfoTID": "TID_PET_DIGGY_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 6, - "Speed": 400, - "Hitpoints": 3950, - "TrainingTime": 120, - "TrainingResource": "DarkElixir", - "TrainingCost": 3, - "UpgradeTimeH": 120, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 200000, - "DonateCost": 20, - "AttackRange": 80, - "AttackSpeed": 1100, - "DPS": 115, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_diggy", - "BigPicture": "unit_pet_diggy_big", - "BigPictureSWF": "sc/info_pet_diggy.sc", - "DeployEffect": "Diggy Deploy", - "AttackEffect": "Diggy Attack", - "HitEffect": "Diggy Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Diggy Die", - "Animation": "DiggyDefault", - "IsJumper": false, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 768, - "StrengthWeight": 2205, - "TargetedEffectOffset": "-50", - "IsUnderground": true, - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "UndergroundEffect": "Diggy Move", - "BecomesTargetableEffect": "Diggy Appear", - "HideEffect": "Diggy Hide", - "SpecialAbilityName": "TID_PET_DIGGY_ABILITY", - "SpecialAbilityInfo": "TID_PET_DIGGY_ABILITY_INFO", - "SpecialAbilityType": "StunTargetOnSurfacing", - "SpecialAbilityAttribute": 2000, - "SpecialAbilityEffect": "Stun_Building_2s", - "LeashLength": 0, - "DefaultSkin": "PetDiggyDefault", - "HeroDeathAbilityLevel": 1, - "HeroDeathAbilityType": "SwitchHero", - "PreferMasterTarget": true, - "PreviewScenario": "Pet1" - }, - "4": { - "TroopLevel": 4, - "TID": "TID_PET_DIGGY", - "InfoTID": "TID_PET_DIGGY_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 6, - "Speed": 400, - "Hitpoints": 4100, - "TrainingTime": 120, - "TrainingResource": "DarkElixir", - "TrainingCost": 4, - "UpgradeTimeH": 132, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 210000, - "DonateCost": 20, - "AttackRange": 80, - "AttackSpeed": 1100, - "DPS": 120, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_diggy", - "BigPicture": "unit_pet_diggy_big", - "BigPictureSWF": "sc/info_pet_diggy.sc", - "DeployEffect": "Diggy Deploy", - "AttackEffect": "Diggy Attack", - "HitEffect": "Diggy Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Diggy Die", - "Animation": "DiggyDefault", - "IsJumper": false, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 768, - "StrengthWeight": 2240, - "TargetedEffectOffset": "-50", - "IsUnderground": true, - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "UndergroundEffect": "Diggy Move", - "BecomesTargetableEffect": "Diggy Appear", - "HideEffect": "Diggy Hide", - "SpecialAbilityName": "TID_PET_DIGGY_ABILITY", - "SpecialAbilityInfo": "TID_PET_DIGGY_ABILITY_INFO", - "SpecialAbilityType": "StunTargetOnSurfacing", - "SpecialAbilityAttribute": 2000, - "SpecialAbilityEffect": "Stun_Building_2s", - "LeashLength": 0, - "DefaultSkin": "PetDiggyDefault", - "HeroDeathAbilityLevel": 1, - "HeroDeathAbilityType": "SwitchHero", - "PreferMasterTarget": true, - "PreviewScenario": "Pet1" - }, - "5": { - "TroopLevel": 5, - "TID": "TID_PET_DIGGY", - "InfoTID": "TID_PET_DIGGY_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 6, - "Speed": 400, - "Hitpoints": 4250, - "TrainingTime": 120, - "TrainingResource": "DarkElixir", - "TrainingCost": 5, - "UpgradeTimeH": 144, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 215000, - "DonateCost": 20, - "AttackRange": 80, - "AttackSpeed": 1100, - "DPS": 125, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_diggy", - "BigPicture": "unit_pet_diggy_big", - "BigPictureSWF": "sc/info_pet_diggy.sc", - "DeployEffect": "Diggy Deploy", - "AttackEffect": "Diggy Attack", - "HitEffect": "Diggy Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Diggy Die", - "Animation": "DiggyDefault", - "IsJumper": false, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 768, - "StrengthWeight": 2275, - "TargetedEffectOffset": "-50", - "IsUnderground": true, - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "UndergroundEffect": "Diggy Move", - "BecomesTargetableEffect": "Diggy Appear", - "HideEffect": "Diggy Hide", - "SpecialAbilityName": "TID_PET_DIGGY_ABILITY", - "SpecialAbilityInfo": "TID_PET_DIGGY_ABILITY_INFO", - "SpecialAbilityType": "StunTargetOnSurfacing", - "SpecialAbilityAttribute": 2500, - "SpecialAbilityEffect": "Stun_Building_2_5s", - "LeashLength": 0, - "DefaultSkin": "PetDiggyDefault", - "HeroDeathAbilityLevel": 1, - "HeroDeathAbilityType": "SwitchHero", - "PreferMasterTarget": true, - "PreviewScenario": "Pet1" - }, - "6": { - "TroopLevel": 6, - "TID": "TID_PET_DIGGY", - "InfoTID": "TID_PET_DIGGY_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 6, - "Speed": 400, - "Hitpoints": 4400, - "TrainingTime": 120, - "TrainingResource": "DarkElixir", - "TrainingCost": 6, - "UpgradeTimeH": 156, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 225000, - "DonateCost": 20, - "AttackRange": 80, - "AttackSpeed": 1100, - "DPS": 130, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_diggy", - "BigPicture": "unit_pet_diggy_big", - "BigPictureSWF": "sc/info_pet_diggy.sc", - "DeployEffect": "Diggy Deploy", - "AttackEffect": "Diggy Attack", - "HitEffect": "Diggy Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Diggy Die", - "Animation": "DiggyDefault", - "IsJumper": false, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 768, - "StrengthWeight": 2310, - "TargetedEffectOffset": "-50", - "IsUnderground": true, - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "UndergroundEffect": "Diggy Move", - "BecomesTargetableEffect": "Diggy Appear", - "HideEffect": "Diggy Hide", - "SpecialAbilityName": "TID_PET_DIGGY_ABILITY", - "SpecialAbilityInfo": "TID_PET_DIGGY_ABILITY_INFO", - "SpecialAbilityType": "StunTargetOnSurfacing", - "SpecialAbilityAttribute": 2500, - "SpecialAbilityEffect": "Stun_Building_2_5s", - "LeashLength": 0, - "DefaultSkin": "PetDiggyDefault", - "HeroDeathAbilityLevel": 1, - "HeroDeathAbilityType": "SwitchHero", - "PreferMasterTarget": true, - "PreviewScenario": "Pet1" - }, - "7": { - "TroopLevel": 7, - "TID": "TID_PET_DIGGY", - "InfoTID": "TID_PET_DIGGY_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 6, - "Speed": 400, - "Hitpoints": 4550, - "TrainingTime": 120, - "TrainingResource": "DarkElixir", - "TrainingCost": 7, - "UpgradeTimeH": 168, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 230000, - "DonateCost": 20, - "AttackRange": 80, - "AttackSpeed": 1100, - "DPS": 135, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_diggy", - "BigPicture": "unit_pet_diggy_big", - "BigPictureSWF": "sc/info_pet_diggy.sc", - "DeployEffect": "Diggy Deploy", - "AttackEffect": "Diggy Attack", - "HitEffect": "Diggy Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Diggy Die", - "Animation": "DiggyDefault", - "IsJumper": false, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 768, - "StrengthWeight": 2345, - "TargetedEffectOffset": "-50", - "IsUnderground": true, - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "UndergroundEffect": "Diggy Move", - "BecomesTargetableEffect": "Diggy Appear", - "HideEffect": "Diggy Hide", - "SpecialAbilityName": "TID_PET_DIGGY_ABILITY", - "SpecialAbilityInfo": "TID_PET_DIGGY_ABILITY_INFO", - "SpecialAbilityType": "StunTargetOnSurfacing", - "SpecialAbilityAttribute": 2500, - "SpecialAbilityEffect": "Stun_Building_2_5s", - "LeashLength": 0, - "DefaultSkin": "PetDiggyDefault", - "HeroDeathAbilityLevel": 1, - "HeroDeathAbilityType": "SwitchHero", - "PreferMasterTarget": true, - "PreviewScenario": "Pet1" - }, - "8": { - "TroopLevel": 8, - "TID": "TID_PET_DIGGY", - "InfoTID": "TID_PET_DIGGY_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 6, - "Speed": 400, - "Hitpoints": 4700, - "TrainingTime": 120, - "TrainingResource": "DarkElixir", - "TrainingCost": 8, - "UpgradeTimeH": 180, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 240000, - "DonateCost": 20, - "AttackRange": 80, - "AttackSpeed": 1100, - "DPS": 140, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_diggy", - "BigPicture": "unit_pet_diggy_big", - "BigPictureSWF": "sc/info_pet_diggy.sc", - "DeployEffect": "Diggy Deploy", - "AttackEffect": "Diggy Attack", - "HitEffect": "Diggy Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Diggy Die", - "Animation": "DiggyDefault", - "IsJumper": false, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 768, - "StrengthWeight": 2380, - "TargetedEffectOffset": "-50", - "IsUnderground": true, - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "UndergroundEffect": "Diggy Move", - "BecomesTargetableEffect": "Diggy Appear", - "HideEffect": "Diggy Hide", - "SpecialAbilityName": "TID_PET_DIGGY_ABILITY", - "SpecialAbilityInfo": "TID_PET_DIGGY_ABILITY_INFO", - "SpecialAbilityType": "StunTargetOnSurfacing", - "SpecialAbilityAttribute": 2500, - "SpecialAbilityEffect": "Stun_Building_2_5s", - "LeashLength": 0, - "DefaultSkin": "PetDiggyDefault", - "HeroDeathAbilityLevel": 1, - "HeroDeathAbilityType": "SwitchHero", - "PreferMasterTarget": true, - "PreviewScenario": "Pet1" - }, - "9": { - "TroopLevel": 9, - "TID": "TID_PET_DIGGY", - "InfoTID": "TID_PET_DIGGY_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 6, - "Speed": 400, - "Hitpoints": 4850, - "TrainingTime": 120, - "TrainingResource": "DarkElixir", - "TrainingCost": 9, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 245000, - "DonateCost": 20, - "AttackRange": 80, - "AttackSpeed": 1100, - "DPS": 145, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_diggy", - "BigPicture": "unit_pet_diggy_big", - "BigPictureSWF": "sc/info_pet_diggy.sc", - "DeployEffect": "Diggy Deploy", - "AttackEffect": "Diggy Attack", - "HitEffect": "Diggy Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Diggy Die", - "Animation": "DiggyDefault", - "IsJumper": false, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 768, - "StrengthWeight": 2415, - "TargetedEffectOffset": "-50", - "IsUnderground": true, - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "UndergroundEffect": "Diggy Move", - "BecomesTargetableEffect": "Diggy Appear", - "HideEffect": "Diggy Hide", - "SpecialAbilityName": "TID_PET_DIGGY_ABILITY", - "SpecialAbilityInfo": "TID_PET_DIGGY_ABILITY_INFO", - "SpecialAbilityType": "StunTargetOnSurfacing", - "SpecialAbilityAttribute": 2500, - "SpecialAbilityEffect": "Stun_Building_2_5s", - "LeashLength": 0, - "DefaultSkin": "PetDiggyDefault", - "HeroDeathAbilityLevel": 1, - "HeroDeathAbilityType": "SwitchHero", - "PreferMasterTarget": true, - "PreviewScenario": "Pet1" - }, - "10": { - "TroopLevel": 10, - "TID": "TID_PET_DIGGY", - "InfoTID": "TID_PET_DIGGY_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 6, - "Speed": 400, - "Hitpoints": 5000, - "TrainingTime": 120, - "TrainingResource": "DarkElixir", - "TrainingCost": 10, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 245000, - "DonateCost": 20, - "AttackRange": 80, - "AttackSpeed": 1100, - "DPS": 150, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_diggy", - "BigPicture": "unit_pet_diggy_big", - "BigPictureSWF": "sc/info_pet_diggy.sc", - "DeployEffect": "Diggy Deploy", - "AttackEffect": "Diggy Attack", - "HitEffect": "Diggy Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Diggy Die", - "Animation": "DiggyDefault", - "IsJumper": false, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 768, - "StrengthWeight": 2450, - "TargetedEffectOffset": "-50", - "IsUnderground": true, - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "UndergroundEffect": "Diggy Move", - "BecomesTargetableEffect": "Diggy Appear", - "HideEffect": "Diggy Hide", - "SpecialAbilityName": "TID_PET_DIGGY_ABILITY", - "SpecialAbilityInfo": "TID_PET_DIGGY_ABILITY_INFO", - "SpecialAbilityType": "StunTargetOnSurfacing", - "SpecialAbilityAttribute": 3000, - "SpecialAbilityEffect": "Stun_Building_3s", - "LeashLength": 0, - "DefaultSkin": "PetDiggyDefault", - "HeroDeathAbilityLevel": 1, - "HeroDeathAbilityType": "SwitchHero", - "PreferMasterTarget": true, - "PreviewScenario": "Pet1" - } - }, - "Frosty": { - "1": { - "TroopLevel": 1, - "TID": "TID_PET_FROSTY", - "InfoTID": "TID_PET_FROSTY_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 5, - "Speed": 300, - "Hitpoints": 2350, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 1, - "UpgradeTimeH": 72, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 185000, - "DonateCost": 20, - "AttackRange": 350, - "AttackSpeed": 1200, - "DPS": 94, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_frosty", - "BigPicture": "unit_pet_frosty_big", - "BigPictureSWF": "sc/info_pet_frosty.sc", - "Projectile": "Frosty_projectile", - "DeployEffect": "Frosty Deploy", - "AttackEffect": "Frosty Attack", - "HitEffect": "IceWizard Hit1", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Frosty Die", - "Animation": "FrostyDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SecondarySpawnDist": 150, - "SummonTroop": "Icemite", - "SummonTroopCount": 1, - "SummonCooldown": 8000, - "SummonEffect": "Frosty Summon", - "SummonLimit": 4, - "SpawnIdle": 100, - "StrengthWeight": 3270, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_FROSTY_ABILITY", - "SpecialAbilityInfo": "TID_PET_FROSTY_ABILITY_INFO", - "FrostOnHitTime": 4000, - "FrostOnHitPercent": 50, - "LeashLength": 100, - "DefaultSkin": "PetFrostyDefault", - "PreviewScenario": "Pet1" - }, - "2": { - "TroopLevel": 2, - "TID": "TID_PET_FROSTY", - "InfoTID": "TID_PET_FROSTY_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 5, - "Speed": 300, - "Hitpoints": 2450, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 2, - "UpgradeTimeH": 96, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 190000, - "DonateCost": 20, - "AttackRange": 350, - "AttackSpeed": 1200, - "DPS": 98, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_frosty", - "BigPicture": "unit_pet_frosty_big", - "BigPictureSWF": "sc/info_pet_frosty.sc", - "Projectile": "Frosty_projectile", - "DeployEffect": "Frosty Deploy", - "AttackEffect": "Frosty Attack", - "HitEffect": "IceWizard Hit1", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Frosty Die", - "Animation": "FrostyDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SecondarySpawnDist": 150, - "SummonTroop": "Icemite", - "SummonTroopCount": 1, - "SummonCooldown": 8000, - "SummonEffect": "Frosty Summon", - "SummonLimit": 4, - "SpawnIdle": 100, - "StrengthWeight": 3300, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_FROSTY_ABILITY", - "SpecialAbilityInfo": "TID_PET_FROSTY_ABILITY_INFO", - "FrostOnHitTime": 4000, - "FrostOnHitPercent": 50, - "LeashLength": 100, - "DefaultSkin": "PetFrostyDefault", - "PreviewScenario": "Pet1" - }, - "3": { - "TroopLevel": 3, - "TID": "TID_PET_FROSTY", - "InfoTID": "TID_PET_FROSTY_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 5, - "Speed": 300, - "Hitpoints": 2550, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 3, - "UpgradeTimeH": 120, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 200000, - "DonateCost": 20, - "AttackRange": 350, - "AttackSpeed": 1200, - "DPS": 102, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_frosty", - "BigPicture": "unit_pet_frosty_big", - "BigPictureSWF": "sc/info_pet_frosty.sc", - "Projectile": "Frosty_projectile", - "DeployEffect": "Frosty Deploy", - "AttackEffect": "Frosty Attack", - "HitEffect": "IceWizard Hit1", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Frosty Die", - "Animation": "FrostyDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SecondarySpawnDist": 150, - "SummonTroop": "Icemite", - "SummonTroopCount": 1, - "SummonCooldown": 8000, - "SummonEffect": "Frosty Summon", - "SummonLimit": 4, - "SpawnIdle": 100, - "StrengthWeight": 3330, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_FROSTY_ABILITY", - "SpecialAbilityInfo": "TID_PET_FROSTY_ABILITY_INFO", - "FrostOnHitTime": 4000, - "FrostOnHitPercent": 50, - "LeashLength": 100, - "DefaultSkin": "PetFrostyDefault", - "PreviewScenario": "Pet1" - }, - "4": { - "TroopLevel": 4, - "TID": "TID_PET_FROSTY", - "InfoTID": "TID_PET_FROSTY_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 5, - "Speed": 300, - "Hitpoints": 2650, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 4, - "UpgradeTimeH": 132, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 210000, - "DonateCost": 20, - "AttackRange": 350, - "AttackSpeed": 1200, - "DPS": 106, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_frosty", - "BigPicture": "unit_pet_frosty_big", - "BigPictureSWF": "sc/info_pet_frosty.sc", - "Projectile": "Frosty_projectile", - "DeployEffect": "Frosty Deploy", - "AttackEffect": "Frosty Attack", - "HitEffect": "IceWizard Hit1", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Frosty Die", - "Animation": "FrostyDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SecondarySpawnDist": 150, - "SummonTroop": "Icemite", - "SummonTroopCount": 1, - "SummonCooldown": 8000, - "SummonEffect": "Frosty Summon", - "SummonLimit": 4, - "SpawnIdle": 100, - "StrengthWeight": 3360, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_FROSTY_ABILITY", - "SpecialAbilityInfo": "TID_PET_FROSTY_ABILITY_INFO", - "FrostOnHitTime": 4000, - "FrostOnHitPercent": 50, - "LeashLength": 100, - "DefaultSkin": "PetFrostyDefault", - "PreviewScenario": "Pet1" - }, - "5": { - "TroopLevel": 5, - "TID": "TID_PET_FROSTY", - "InfoTID": "TID_PET_FROSTY_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 5, - "Speed": 300, - "Hitpoints": 2800, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 5, - "UpgradeTimeH": 144, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 215000, - "DonateCost": 20, - "AttackRange": 350, - "AttackSpeed": 1200, - "DPS": 110, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_frosty", - "BigPicture": "unit_pet_frosty_big", - "BigPictureSWF": "sc/info_pet_frosty.sc", - "Projectile": "Frosty_projectile", - "DeployEffect": "Frosty Deploy", - "AttackEffect": "Frosty Attack", - "HitEffect": "IceWizard Hit1", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Frosty Die", - "Animation": "FrostyDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SecondarySpawnDist": 150, - "SummonTroop": "Icemite", - "SummonTroopCount": 2, - "SummonCooldown": 8000, - "SummonEffect": "Frosty Summon", - "SummonLimit": 8, - "SpawnIdle": 100, - "StrengthWeight": 3390, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_FROSTY_ABILITY", - "SpecialAbilityInfo": "TID_PET_FROSTY_ABILITY_INFO", - "FrostOnHitTime": 4000, - "FrostOnHitPercent": 50, - "LeashLength": 100, - "DefaultSkin": "PetFrostyDefault", - "PreviewScenario": "Pet1" - }, - "6": { - "TroopLevel": 6, - "TID": "TID_PET_FROSTY", - "InfoTID": "TID_PET_FROSTY_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 5, - "Speed": 300, - "Hitpoints": 2900, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 6, - "UpgradeTimeH": 156, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 225000, - "DonateCost": 20, - "AttackRange": 350, - "AttackSpeed": 1200, - "DPS": 114, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_frosty", - "BigPicture": "unit_pet_frosty_big", - "BigPictureSWF": "sc/info_pet_frosty.sc", - "Projectile": "Frosty_projectile", - "DeployEffect": "Frosty Deploy", - "AttackEffect": "Frosty Attack", - "HitEffect": "IceWizard Hit1", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Frosty Die", - "Animation": "FrostyDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SecondarySpawnDist": 150, - "SummonTroop": "Icemite", - "SummonTroopCount": 2, - "SummonCooldown": 8000, - "SummonEffect": "Frosty Summon", - "SummonLimit": 8, - "SpawnIdle": 100, - "StrengthWeight": 3420, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_FROSTY_ABILITY", - "SpecialAbilityInfo": "TID_PET_FROSTY_ABILITY_INFO", - "FrostOnHitTime": 4000, - "FrostOnHitPercent": 50, - "LeashLength": 100, - "DefaultSkin": "PetFrostyDefault", - "PreviewScenario": "Pet1" - }, - "7": { - "TroopLevel": 7, - "TID": "TID_PET_FROSTY", - "InfoTID": "TID_PET_FROSTY_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 5, - "Speed": 300, - "Hitpoints": 3000, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 7, - "UpgradeTimeH": 168, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 235000, - "DonateCost": 20, - "AttackRange": 350, - "AttackSpeed": 1200, - "DPS": 118, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_frosty", - "BigPicture": "unit_pet_frosty_big", - "BigPictureSWF": "sc/info_pet_frosty.sc", - "Projectile": "Frosty_projectile", - "DeployEffect": "Frosty Deploy", - "AttackEffect": "Frosty Attack", - "HitEffect": "IceWizard Hit1", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Frosty Die", - "Animation": "FrostyDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SecondarySpawnDist": 150, - "SummonTroop": "Icemite", - "SummonTroopCount": 2, - "SummonCooldown": 8000, - "SummonEffect": "Frosty Summon", - "SummonLimit": 8, - "SpawnIdle": 100, - "StrengthWeight": 3440, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_FROSTY_ABILITY", - "SpecialAbilityInfo": "TID_PET_FROSTY_ABILITY_INFO", - "FrostOnHitTime": 4000, - "FrostOnHitPercent": 50, - "LeashLength": 100, - "DefaultSkin": "PetFrostyDefault", - "PreviewScenario": "Pet1" - }, - "8": { - "TroopLevel": 8, - "TID": "TID_PET_FROSTY", - "InfoTID": "TID_PET_FROSTY_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 5, - "Speed": 300, - "Hitpoints": 3100, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 8, - "UpgradeTimeH": 180, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 240000, - "DonateCost": 20, - "AttackRange": 350, - "AttackSpeed": 1200, - "DPS": 122, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_frosty", - "BigPicture": "unit_pet_frosty_big", - "BigPictureSWF": "sc/info_pet_frosty.sc", - "Projectile": "Frosty_projectile", - "DeployEffect": "Frosty Deploy", - "AttackEffect": "Frosty Attack", - "HitEffect": "IceWizard Hit1", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Frosty Die", - "Animation": "FrostyDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SecondarySpawnDist": 150, - "SummonTroop": "Icemite", - "SummonTroopCount": 2, - "SummonCooldown": 8000, - "SummonEffect": "Frosty Summon", - "SummonLimit": 8, - "SpawnIdle": 100, - "StrengthWeight": 3470, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_FROSTY_ABILITY", - "SpecialAbilityInfo": "TID_PET_FROSTY_ABILITY_INFO", - "FrostOnHitTime": 4000, - "FrostOnHitPercent": 50, - "LeashLength": 100, - "DefaultSkin": "PetFrostyDefault", - "PreviewScenario": "Pet1" - }, - "9": { - "TroopLevel": 9, - "TID": "TID_PET_FROSTY", - "InfoTID": "TID_PET_FROSTY_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 5, - "Speed": 300, - "Hitpoints": 3200, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 9, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 250000, - "DonateCost": 20, - "AttackRange": 350, - "AttackSpeed": 1200, - "DPS": 126, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_frosty", - "BigPicture": "unit_pet_frosty_big", - "BigPictureSWF": "sc/info_pet_frosty.sc", - "Projectile": "Frosty_projectile", - "DeployEffect": "Frosty Deploy", - "AttackEffect": "Frosty Attack", - "HitEffect": "IceWizard Hit1", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Frosty Die", - "Animation": "FrostyDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SecondarySpawnDist": 150, - "SummonTroop": "Icemite", - "SummonTroopCount": 2, - "SummonCooldown": 8000, - "SummonEffect": "Frosty Summon", - "SummonLimit": 8, - "SpawnIdle": 100, - "StrengthWeight": 3500, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_FROSTY_ABILITY", - "SpecialAbilityInfo": "TID_PET_FROSTY_ABILITY_INFO", - "FrostOnHitTime": 4000, - "FrostOnHitPercent": 50, - "LeashLength": 100, - "DefaultSkin": "PetFrostyDefault", - "PreviewScenario": "Pet1" - }, - "10": { - "TroopLevel": 10, - "TID": "TID_PET_FROSTY", - "InfoTID": "TID_PET_FROSTY_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 5, - "Speed": 300, - "Hitpoints": 3300, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 10, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 250000, - "DonateCost": 20, - "AttackRange": 350, - "AttackSpeed": 1200, - "DPS": 130, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_frosty", - "BigPicture": "unit_pet_frosty_big", - "BigPictureSWF": "sc/info_pet_frosty.sc", - "Projectile": "Frosty_projectile", - "DeployEffect": "Frosty Deploy", - "AttackEffect": "Frosty Attack", - "HitEffect": "IceWizard Hit1", - "IsFlying": false, - "AirTargets": true, - "GroundTargets": true, - "DieEffect": "Frosty Die", - "Animation": "FrostyDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SecondarySpawnDist": 150, - "SummonTroop": "Icemite", - "SummonTroopCount": 2, - "SummonCooldown": 8000, - "SummonEffect": "Frosty Summon", - "SummonLimit": 10, - "SpawnIdle": 100, - "StrengthWeight": 3530, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_FROSTY_ABILITY", - "SpecialAbilityInfo": "TID_PET_FROSTY_ABILITY_INFO", - "FrostOnHitTime": 4000, - "FrostOnHitPercent": 50, - "LeashLength": 100, - "DefaultSkin": "PetFrostyDefault", - "PreviewScenario": "Pet1" - } - }, - "Spirit Fox": { - "1": { - "TroopLevel": 1, - "TID": "TID_PET_SPIRIT_FOX", - "InfoTID": "TID_PET_SPIRIT_FOX_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 9, - "Speed": 300, - "Hitpoints": 1900, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 1, - "UpgradeTimeH": 72, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 225000, - "DonateCost": 20, - "AttackRange": 250, - "AttackSpeed": 1600, - "DPS": 108, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_phasefennec", - "BigPicture": "unit_pet_phasefennec_big", - "BigPictureSWF": "sc/info_pet_phasefennec.sc", - "Projectile": "Fennec_projectile", - "DeployEffect": "Barky Fennec Deploy", - "AttackEffect": "Barky Fennec Attack", - "HitEffect": "Miner Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Barky Fennec Die", - "Animation": "FennecDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 3525, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_SPIRIT_FOX", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_SPIRIT_FOX", - "SpecialAbilities": "PhaseFennecInvis", - "SpecialAbilitiesLevel": 1, - "LeashLength": 200, - "DefaultSkin": "PetFennecDefault", - "PreviewScenario": "Pet2" - }, - "2": { - "TroopLevel": 2, - "TID": "TID_PET_SPIRIT_FOX", - "InfoTID": "TID_PET_SPIRIT_FOX_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 9, - "Speed": 300, - "Hitpoints": 2000, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 2, - "UpgradeTimeH": 96, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 235000, - "DonateCost": 20, - "AttackRange": 250, - "AttackSpeed": 1600, - "DPS": 116, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_phasefennec", - "BigPicture": "unit_pet_phasefennec_big", - "BigPictureSWF": "sc/info_pet_phasefennec.sc", - "Projectile": "Fennec_projectile", - "DeployEffect": "Barky Fennec Deploy", - "AttackEffect": "Barky Fennec Attack", - "HitEffect": "Miner Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Barky Fennec Die", - "Animation": "FennecDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 3550, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_SPIRIT_FOX", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_SPIRIT_FOX", - "SpecialAbilities": "PhaseFennecInvis", - "SpecialAbilitiesLevel": 1, - "LeashLength": 200, - "DefaultSkin": "PetFennecDefault", - "PreviewScenario": "Pet2" - }, - "3": { - "TroopLevel": 3, - "TID": "TID_PET_SPIRIT_FOX", - "InfoTID": "TID_PET_SPIRIT_FOX_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 9, - "Speed": 300, - "Hitpoints": 2100, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 3, - "UpgradeTimeH": 120, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 245000, - "DonateCost": 20, - "AttackRange": 250, - "AttackSpeed": 1600, - "DPS": 124, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_phasefennec", - "BigPicture": "unit_pet_phasefennec_big", - "BigPictureSWF": "sc/info_pet_phasefennec.sc", - "Projectile": "Fennec_projectile", - "DeployEffect": "Barky Fennec Deploy", - "AttackEffect": "Barky Fennec Attack", - "HitEffect": "Miner Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Barky Fennec Die", - "Animation": "FennecDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 3575, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_SPIRIT_FOX", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_SPIRIT_FOX", - "SpecialAbilities": "PhaseFennecInvis", - "SpecialAbilitiesLevel": 1, - "LeashLength": 200, - "DefaultSkin": "PetFennecDefault", - "PreviewScenario": "Pet2" - }, - "4": { - "TroopLevel": 4, - "TID": "TID_PET_SPIRIT_FOX", - "InfoTID": "TID_PET_SPIRIT_FOX_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 9, - "Speed": 300, - "Hitpoints": 2200, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 4, - "UpgradeTimeH": 132, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 255000, - "DonateCost": 20, - "AttackRange": 250, - "AttackSpeed": 1600, - "DPS": 132, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_phasefennec", - "BigPicture": "unit_pet_phasefennec_big", - "BigPictureSWF": "sc/info_pet_phasefennec.sc", - "Projectile": "Fennec_projectile", - "DeployEffect": "Barky Fennec Deploy", - "AttackEffect": "Barky Fennec Attack", - "HitEffect": "Miner Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Barky Fennec Die", - "Animation": "FennecDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 3600, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_SPIRIT_FOX", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_SPIRIT_FOX", - "SpecialAbilities": "PhaseFennecInvis", - "SpecialAbilitiesLevel": 1, - "LeashLength": 200, - "DefaultSkin": "PetFennecDefault", - "PreviewScenario": "Pet2" - }, - "5": { - "TroopLevel": 5, - "TID": "TID_PET_SPIRIT_FOX", - "InfoTID": "TID_PET_SPIRIT_FOX_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 9, - "Speed": 300, - "Hitpoints": 2300, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 5, - "UpgradeTimeH": 144, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 265000, - "DonateCost": 20, - "AttackRange": 250, - "AttackSpeed": 1600, - "DPS": 140, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_phasefennec", - "BigPicture": "unit_pet_phasefennec_big", - "BigPictureSWF": "sc/info_pet_phasefennec.sc", - "Projectile": "Fennec_projectile", - "DeployEffect": "Barky Fennec Deploy", - "AttackEffect": "Barky Fennec Attack", - "HitEffect": "Miner Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Barky Fennec Die", - "Animation": "FennecDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 3625, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_SPIRIT_FOX", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_SPIRIT_FOX", - "SpecialAbilities": "PhaseFennecInvis", - "SpecialAbilitiesLevel": 2, - "LeashLength": 200, - "DefaultSkin": "PetFennecDefault", - "PreviewScenario": "Pet2" - }, - "6": { - "TroopLevel": 6, - "TID": "TID_PET_SPIRIT_FOX", - "InfoTID": "TID_PET_SPIRIT_FOX_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 9, - "Speed": 300, - "Hitpoints": 2400, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 6, - "UpgradeTimeH": 156, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 275000, - "DonateCost": 20, - "AttackRange": 250, - "AttackSpeed": 1600, - "DPS": 148, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_phasefennec", - "BigPicture": "unit_pet_phasefennec_big", - "BigPictureSWF": "sc/info_pet_phasefennec.sc", - "Projectile": "Fennec_projectile", - "DeployEffect": "Barky Fennec Deploy", - "AttackEffect": "Barky Fennec Attack", - "HitEffect": "Miner Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Barky Fennec Die", - "Animation": "FennecDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 3650, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_SPIRIT_FOX", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_SPIRIT_FOX", - "SpecialAbilities": "PhaseFennecInvis", - "SpecialAbilitiesLevel": 2, - "LeashLength": 200, - "DefaultSkin": "PetFennecDefault", - "PreviewScenario": "Pet2" - }, - "7": { - "TroopLevel": 7, - "TID": "TID_PET_SPIRIT_FOX", - "InfoTID": "TID_PET_SPIRIT_FOX_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 9, - "Speed": 300, - "Hitpoints": 2500, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 7, - "UpgradeTimeH": 168, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 285000, - "DonateCost": 20, - "AttackRange": 250, - "AttackSpeed": 1600, - "DPS": 156, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_phasefennec", - "BigPicture": "unit_pet_phasefennec_big", - "BigPictureSWF": "sc/info_pet_phasefennec.sc", - "Projectile": "Fennec_projectile", - "DeployEffect": "Barky Fennec Deploy", - "AttackEffect": "Barky Fennec Attack", - "HitEffect": "Miner Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Barky Fennec Die", - "Animation": "FennecDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 3675, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_SPIRIT_FOX", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_SPIRIT_FOX", - "SpecialAbilities": "PhaseFennecInvis", - "SpecialAbilitiesLevel": 2, - "LeashLength": 200, - "DefaultSkin": "PetFennecDefault", - "PreviewScenario": "Pet2" - }, - "8": { - "TroopLevel": 8, - "TID": "TID_PET_SPIRIT_FOX", - "InfoTID": "TID_PET_SPIRIT_FOX_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 9, - "Speed": 300, - "Hitpoints": 2600, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 8, - "UpgradeTimeH": 180, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 295000, - "DonateCost": 20, - "AttackRange": 250, - "AttackSpeed": 1600, - "DPS": 164, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_phasefennec", - "BigPicture": "unit_pet_phasefennec_big", - "BigPictureSWF": "sc/info_pet_phasefennec.sc", - "Projectile": "Fennec_projectile", - "DeployEffect": "Barky Fennec Deploy", - "AttackEffect": "Barky Fennec Attack", - "HitEffect": "Miner Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Barky Fennec Die", - "Animation": "FennecDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 3700, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_SPIRIT_FOX", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_SPIRIT_FOX", - "SpecialAbilities": "PhaseFennecInvis", - "SpecialAbilitiesLevel": 2, - "LeashLength": 200, - "DefaultSkin": "PetFennecDefault", - "PreviewScenario": "Pet2" - }, - "9": { - "TroopLevel": 9, - "TID": "TID_PET_SPIRIT_FOX", - "InfoTID": "TID_PET_SPIRIT_FOX_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 9, - "Speed": 300, - "Hitpoints": 2700, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 9, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 315000, - "DonateCost": 20, - "AttackRange": 250, - "AttackSpeed": 1600, - "DPS": 172, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_phasefennec", - "BigPicture": "unit_pet_phasefennec_big", - "BigPictureSWF": "sc/info_pet_phasefennec.sc", - "Projectile": "Fennec_projectile", - "DeployEffect": "Barky Fennec Deploy", - "AttackEffect": "Barky Fennec Attack", - "HitEffect": "Miner Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Barky Fennec Die", - "Animation": "FennecDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 3725, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_SPIRIT_FOX", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_SPIRIT_FOX", - "SpecialAbilities": "PhaseFennecInvis", - "SpecialAbilitiesLevel": 2, - "LeashLength": 200, - "DefaultSkin": "PetFennecDefault", - "PreviewScenario": "Pet2" - }, - "10": { - "TroopLevel": 10, - "TID": "TID_PET_SPIRIT_FOX", - "InfoTID": "TID_PET_SPIRIT_FOX_INFO", - "HousingSpace": 20, - "LaboratoryLevel": 9, - "Speed": 300, - "Hitpoints": 2800, - "TrainingTime": 999, - "TrainingResource": "DarkElixir", - "TrainingCost": 10, - "UpgradeTimeH": 192, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 315000, - "DonateCost": 20, - "AttackRange": 250, - "AttackSpeed": 1600, - "DPS": 180, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_unit_pet_phasefennec", - "BigPicture": "unit_pet_phasefennec_big", - "BigPictureSWF": "sc/info_pet_phasefennec.sc", - "Projectile": "Fennec_projectile", - "DeployEffect": "Barky Fennec Deploy", - "AttackEffect": "Barky Fennec Attack", - "HitEffect": "Miner Hit", - "IsFlying": false, - "AirTargets": false, - "GroundTargets": true, - "DieEffect": "Barky Fennec Die", - "Animation": "FennecDefault", - "IsJumper": true, - "MovementOffsetSpeed": 0, - "DisableProduction": true, - "SpawnIdle": 100, - "StrengthWeight": 3750, - "TargetedEffectOffset": "-50", - "FriendlyGroupWeight": 300, - "EnemyGroupWeight": 400, - "TriggersTraps": true, - "SpecialAbilityName": "TID_PET_ABILITY_SPIRIT_FOX", - "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_SPIRIT_FOX", - "SpecialAbilities": "PhaseFennecInvis", - "SpecialAbilitiesLevel": 3, - "LeashLength": 200, - "DefaultSkin": "PetFennecDefault", - "PreviewScenario": "Pet2" - } - } +{ + "L.A.S.S.I": { + "1": { + "TroopLevel": 1, + "TID": "TID_PET_MELEEJUMPER", + "InfoTID": "TID_PET_MELEEJUMPER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 1, + "Speed": 400, + "Hitpoints": 2700, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 1, + "UpgradeTimeH": 72, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 100000, + "DonateCost": 20, + "AttackRange": 60, + "AttackSpeed": 900, + "DPS": 150, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_barksy", + "BigPicture": "unit_pet_lassi_big", + "BigPictureSWF": "sc/info_pet_lassi.sc", + "DeployEffect": "Barky Deploy", + "AttackEffect": "Barky Attack", + "HitEffect": "Miner Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Barky Die", + "Animation": "PetLassiDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 1960, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_BARKY", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BARKY", + "LeashLength": 200, + "DefaultSkin": "PetLassiDefault", + "PreviewScenario": "Pet1" + }, + "2": { + "TroopLevel": 2, + "TID": "TID_PET_MELEEJUMPER", + "InfoTID": "TID_PET_MELEEJUMPER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 1, + "Speed": 400, + "Hitpoints": 2800, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 2, + "UpgradeTimeH": 96, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 110000, + "DonateCost": 20, + "AttackRange": 60, + "AttackSpeed": 900, + "DPS": 160, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_barksy", + "BigPicture": "unit_pet_lassi_big", + "BigPictureSWF": "sc/info_pet_lassi.sc", + "DeployEffect": "Barky Deploy", + "AttackEffect": "Barky Attack", + "HitEffect": "Miner Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Barky Die", + "Animation": "PetLassiDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 2020, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_BARKY", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BARKY", + "LeashLength": 200, + "DefaultSkin": "PetLassiDefault", + "PreviewScenario": "Pet1" + }, + "3": { + "TroopLevel": 3, + "TID": "TID_PET_MELEEJUMPER", + "InfoTID": "TID_PET_MELEEJUMPER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 1, + "Speed": 400, + "Hitpoints": 2900, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 3, + "UpgradeTimeH": 108, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 125000, + "DonateCost": 20, + "AttackRange": 60, + "AttackSpeed": 900, + "DPS": 170, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_barksy", + "BigPicture": "unit_pet_lassi_big", + "BigPictureSWF": "sc/info_pet_lassi.sc", + "DeployEffect": "Barky Deploy", + "AttackEffect": "Barky Attack", + "HitEffect": "Miner Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Barky Die", + "Animation": "PetLassiDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 2080, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_BARKY", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BARKY", + "LeashLength": 200, + "DefaultSkin": "PetLassiDefault", + "PreviewScenario": "Pet1" + }, + "4": { + "TroopLevel": 4, + "TID": "TID_PET_MELEEJUMPER", + "InfoTID": "TID_PET_MELEEJUMPER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 1, + "Speed": 400, + "Hitpoints": 3000, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 4, + "UpgradeTimeH": 120, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 135000, + "DonateCost": 20, + "AttackRange": 60, + "AttackSpeed": 900, + "DPS": 180, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_barksy", + "BigPicture": "unit_pet_lassi_big", + "BigPictureSWF": "sc/info_pet_lassi.sc", + "DeployEffect": "Barky Deploy", + "AttackEffect": "Barky Attack", + "HitEffect": "Miner Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Barky Die", + "Animation": "PetLassiDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 2140, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_BARKY", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BARKY", + "LeashLength": 200, + "DefaultSkin": "PetLassiDefault", + "PreviewScenario": "Pet1" + }, + "5": { + "TroopLevel": 5, + "TID": "TID_PET_MELEEJUMPER", + "InfoTID": "TID_PET_MELEEJUMPER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 1, + "Speed": 400, + "Hitpoints": 3100, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 5, + "UpgradeTimeH": 132, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 150000, + "DonateCost": 20, + "AttackRange": 60, + "AttackSpeed": 900, + "DPS": 190, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_barksy", + "BigPicture": "unit_pet_lassi_big", + "BigPictureSWF": "sc/info_pet_lassi.sc", + "DeployEffect": "Barky Deploy", + "AttackEffect": "Barky Attack", + "HitEffect": "Miner Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Barky Die", + "Animation": "PetLassiDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 2200, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_BARKY", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BARKY", + "LeashLength": 200, + "DefaultSkin": "PetLassiDefault", + "PreviewScenario": "Pet1" + }, + "6": { + "TroopLevel": 6, + "TID": "TID_PET_MELEEJUMPER", + "InfoTID": "TID_PET_MELEEJUMPER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 1, + "Speed": 400, + "Hitpoints": 3200, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 6, + "UpgradeTimeH": 144, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 160000, + "DonateCost": 20, + "AttackRange": 60, + "AttackSpeed": 900, + "DPS": 200, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_barksy", + "BigPicture": "unit_pet_lassi_big", + "BigPictureSWF": "sc/info_pet_lassi.sc", + "DeployEffect": "Barky Deploy", + "AttackEffect": "Barky Attack", + "HitEffect": "Miner Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Barky Die", + "Animation": "PetLassiDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 2260, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_BARKY", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BARKY", + "LeashLength": 200, + "DefaultSkin": "PetLassiDefault", + "PreviewScenario": "Pet1" + }, + "7": { + "TroopLevel": 7, + "TID": "TID_PET_MELEEJUMPER", + "InfoTID": "TID_PET_MELEEJUMPER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 1, + "Speed": 400, + "Hitpoints": 3300, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 7, + "UpgradeTimeH": 156, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 175000, + "DonateCost": 20, + "AttackRange": 60, + "AttackSpeed": 900, + "DPS": 210, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_barksy", + "BigPicture": "unit_pet_lassi_big", + "BigPictureSWF": "sc/info_pet_lassi.sc", + "DeployEffect": "Barky Deploy", + "AttackEffect": "Barky Attack", + "HitEffect": "Miner Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Barky Die", + "Animation": "PetLassiDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 2320, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_BARKY", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BARKY", + "LeashLength": 200, + "DefaultSkin": "PetLassiDefault", + "PreviewScenario": "Pet1" + }, + "8": { + "TroopLevel": 8, + "TID": "TID_PET_MELEEJUMPER", + "InfoTID": "TID_PET_MELEEJUMPER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 1, + "Speed": 400, + "Hitpoints": 3400, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 8, + "UpgradeTimeH": 168, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 185000, + "DonateCost": 20, + "AttackRange": 60, + "AttackSpeed": 900, + "DPS": 220, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_barksy", + "BigPicture": "unit_pet_lassi_big", + "BigPictureSWF": "sc/info_pet_lassi.sc", + "DeployEffect": "Barky Deploy", + "AttackEffect": "Barky Attack", + "HitEffect": "Miner Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Barky Die", + "Animation": "PetLassiDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 2380, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_BARKY", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BARKY", + "LeashLength": 200, + "DefaultSkin": "PetLassiDefault", + "PreviewScenario": "Pet1" + }, + "9": { + "TroopLevel": 9, + "TID": "TID_PET_MELEEJUMPER", + "InfoTID": "TID_PET_MELEEJUMPER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 1, + "Speed": 400, + "Hitpoints": 3500, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 9, + "UpgradeTimeH": 180, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 200000, + "DonateCost": 20, + "AttackRange": 60, + "AttackSpeed": 900, + "DPS": 230, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_barksy", + "BigPicture": "unit_pet_lassi_big", + "BigPictureSWF": "sc/info_pet_lassi.sc", + "DeployEffect": "Barky Deploy", + "AttackEffect": "Barky Attack", + "HitEffect": "Miner Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Barky Die", + "Animation": "PetLassiDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 2440, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_BARKY", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BARKY", + "LeashLength": 200, + "DefaultSkin": "PetLassiDefault", + "PreviewScenario": "Pet1" + }, + "10": { + "TroopLevel": 10, + "TID": "TID_PET_MELEEJUMPER", + "InfoTID": "TID_PET_MELEEJUMPER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 1, + "Speed": 400, + "Hitpoints": 3600, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 10, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 215000, + "DonateCost": 20, + "AttackRange": 60, + "AttackSpeed": 900, + "DPS": 240, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_barksy", + "BigPicture": "unit_pet_lassi_big", + "BigPictureSWF": "sc/info_pet_lassi.sc", + "DeployEffect": "Barky Deploy", + "AttackEffect": "Barky Attack", + "HitEffect": "Miner Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Barky Die", + "Animation": "PetLassiDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 2500, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_BARKY", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BARKY", + "LeashLength": 200, + "DefaultSkin": "PetLassiDefault", + "PreviewScenario": "Pet1" + }, + "11": { + "TroopLevel": 11, + "TID": "TID_PET_MELEEJUMPER", + "InfoTID": "TID_PET_MELEEJUMPER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 5, + "Speed": 400, + "Hitpoints": 3700, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 11, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 230000, + "DonateCost": 20, + "AttackRange": 60, + "AttackSpeed": 900, + "DPS": 250, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_barksy", + "BigPicture": "unit_pet_lassi_big", + "BigPictureSWF": "sc/info_pet_lassi.sc", + "DeployEffect": "Barky Deploy", + "AttackEffect": "Barky Attack", + "HitEffect": "Miner Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Barky Die", + "Animation": "PetLassiDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 2520, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_BARKY", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BARKY", + "LeashLength": 200, + "DefaultSkin": "PetLassiDefault", + "PreviewScenario": "Pet1" + }, + "12": { + "TroopLevel": 12, + "TID": "TID_PET_MELEEJUMPER", + "InfoTID": "TID_PET_MELEEJUMPER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 5, + "Speed": 400, + "Hitpoints": 3800, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 12, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 245000, + "DonateCost": 20, + "AttackRange": 60, + "AttackSpeed": 900, + "DPS": 260, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_barksy", + "BigPicture": "unit_pet_lassi_big", + "BigPictureSWF": "sc/info_pet_lassi.sc", + "DeployEffect": "Barky Deploy", + "AttackEffect": "Barky Attack", + "HitEffect": "Miner Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Barky Die", + "Animation": "PetLassiDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 2540, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_BARKY", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BARKY", + "LeashLength": 200, + "DefaultSkin": "PetLassiDefault", + "PreviewScenario": "Pet1" + }, + "13": { + "TroopLevel": 13, + "TID": "TID_PET_MELEEJUMPER", + "InfoTID": "TID_PET_MELEEJUMPER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 5, + "Speed": 400, + "Hitpoints": 3900, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 13, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 260000, + "DonateCost": 20, + "AttackRange": 60, + "AttackSpeed": 900, + "DPS": 270, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_barksy", + "BigPicture": "unit_pet_lassi_big", + "BigPictureSWF": "sc/info_pet_lassi.sc", + "DeployEffect": "Barky Deploy", + "AttackEffect": "Barky Attack", + "HitEffect": "Miner Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Barky Die", + "Animation": "PetLassiDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 2560, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_BARKY", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BARKY", + "LeashLength": 200, + "DefaultSkin": "PetLassiDefault", + "PreviewScenario": "Pet1" + }, + "14": { + "TroopLevel": 14, + "TID": "TID_PET_MELEEJUMPER", + "InfoTID": "TID_PET_MELEEJUMPER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 5, + "Speed": 400, + "Hitpoints": 4000, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 14, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 275000, + "DonateCost": 20, + "AttackRange": 60, + "AttackSpeed": 900, + "DPS": 280, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_barksy", + "BigPicture": "unit_pet_lassi_big", + "BigPictureSWF": "sc/info_pet_lassi.sc", + "DeployEffect": "Barky Deploy", + "AttackEffect": "Barky Attack", + "HitEffect": "Miner Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Barky Die", + "Animation": "PetLassiDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 2580, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_BARKY", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BARKY", + "LeashLength": 200, + "DefaultSkin": "PetLassiDefault", + "PreviewScenario": "Pet1" + }, + "15": { + "TroopLevel": 15, + "TID": "TID_PET_MELEEJUMPER", + "InfoTID": "TID_PET_MELEEJUMPER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 5, + "Speed": 400, + "Hitpoints": 4100, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 15, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 275000, + "DonateCost": 20, + "AttackRange": 60, + "AttackSpeed": 900, + "DPS": 290, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_barksy", + "BigPicture": "unit_pet_lassi_big", + "BigPictureSWF": "sc/info_pet_lassi.sc", + "DeployEffect": "Barky Deploy", + "AttackEffect": "Barky Attack", + "HitEffect": "Miner Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Barky Die", + "Animation": "PetLassiDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 2600, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_BARKY", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BARKY", + "LeashLength": 200, + "DefaultSkin": "PetLassiDefault", + "PreviewScenario": "Pet1" + } + }, + "Mighty Yak": { + "1": { + "TroopLevel": 1, + "TID": "TID_PET_WALLBUSTER", + "InfoTID": "TID_PET_WALLBUSTER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 3, + "Speed": 300, + "Hitpoints": 3750, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 1, + "UpgradeTimeH": 72, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 140000, + "DonateCost": 20, + "AttackRange": 120, + "AttackSpeed": 2100, + "DPS": 60, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_bulldozer", + "BigPicture": "unit_pet_mightyyak_big", + "BigPictureSWF": "sc/info_pet_mightyyak.sc", + "DeployEffect": "Bulldozer Deploy", + "AttackEffect": "Bulldozer Attack", + "HitEffect": "Golem Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Bulldozer Die", + "Animation": "PetYakDefault", + "IsJumper": false, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 1750, + "WallMovementCost": 64, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "NewTargetAttackDelay": 100, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_BULLDOZER", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BULLDOZER", + "DamageMultiplierTarget": "Wall", + "DamageMultiplierPercent": 2000, + "LeashLength": 581, + "DefaultSkin": "PetYakDefault", + "HeroDeathAbilityLevel": 2, + "HeroDeathAbilityType": "BoostSelf", + "HeroDeathAbilitySpell": "TroopRage", + "PreviewScenario": "Pet3" + }, + "2": { + "TroopLevel": 2, + "TID": "TID_PET_WALLBUSTER", + "InfoTID": "TID_PET_WALLBUSTER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 3, + "Speed": 300, + "Hitpoints": 4000, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 2, + "UpgradeTimeH": 96, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 155000, + "DonateCost": 20, + "AttackRange": 120, + "AttackSpeed": 2100, + "DPS": 64, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_bulldozer", + "BigPicture": "unit_pet_mightyyak_big", + "BigPictureSWF": "sc/info_pet_mightyyak.sc", + "DeployEffect": "Bulldozer Deploy", + "AttackEffect": "Bulldozer Attack", + "HitEffect": "Golem Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Bulldozer Die", + "Animation": "PetYakDefault", + "IsJumper": false, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 1780, + "WallMovementCost": 64, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "NewTargetAttackDelay": 100, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_BULLDOZER", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BULLDOZER", + "DamageMultiplierTarget": "Wall", + "DamageMultiplierPercent": 2000, + "LeashLength": 581, + "DefaultSkin": "PetYakDefault", + "HeroDeathAbilityLevel": 2, + "HeroDeathAbilityType": "BoostSelf", + "HeroDeathAbilitySpell": "TroopRage", + "PreviewScenario": "Pet3" + }, + "3": { + "TroopLevel": 3, + "TID": "TID_PET_WALLBUSTER", + "InfoTID": "TID_PET_WALLBUSTER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 3, + "Speed": 300, + "Hitpoints": 4250, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 3, + "UpgradeTimeH": 108, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 175000, + "DonateCost": 20, + "AttackRange": 120, + "AttackSpeed": 2100, + "DPS": 68, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_bulldozer", + "BigPicture": "unit_pet_mightyyak_big", + "BigPictureSWF": "sc/info_pet_mightyyak.sc", + "DeployEffect": "Bulldozer Deploy", + "AttackEffect": "Bulldozer Attack", + "HitEffect": "Golem Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Bulldozer Die", + "Animation": "PetYakDefault", + "IsJumper": false, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 1810, + "WallMovementCost": 64, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "NewTargetAttackDelay": 100, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_BULLDOZER", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BULLDOZER", + "DamageMultiplierTarget": "Wall", + "DamageMultiplierPercent": 2000, + "LeashLength": 581, + "DefaultSkin": "PetYakDefault", + "HeroDeathAbilityLevel": 2, + "HeroDeathAbilityType": "BoostSelf", + "HeroDeathAbilitySpell": "TroopRage", + "PreviewScenario": "Pet3" + }, + "4": { + "TroopLevel": 4, + "TID": "TID_PET_WALLBUSTER", + "InfoTID": "TID_PET_WALLBUSTER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 3, + "Speed": 300, + "Hitpoints": 4500, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 4, + "UpgradeTimeH": 120, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 190000, + "DonateCost": 20, + "AttackRange": 120, + "AttackSpeed": 2100, + "DPS": 72, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_bulldozer", + "BigPicture": "unit_pet_mightyyak_big", + "BigPictureSWF": "sc/info_pet_mightyyak.sc", + "DeployEffect": "Bulldozer Deploy", + "AttackEffect": "Bulldozer Attack", + "HitEffect": "Golem Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Bulldozer Die", + "Animation": "PetYakDefault", + "IsJumper": false, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 1840, + "WallMovementCost": 64, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "NewTargetAttackDelay": 100, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_BULLDOZER", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BULLDOZER", + "DamageMultiplierTarget": "Wall", + "DamageMultiplierPercent": 2000, + "LeashLength": 581, + "DefaultSkin": "PetYakDefault", + "HeroDeathAbilityLevel": 2, + "HeroDeathAbilityType": "BoostSelf", + "HeroDeathAbilitySpell": "TroopRage", + "PreviewScenario": "Pet3" + }, + "5": { + "TroopLevel": 5, + "TID": "TID_PET_WALLBUSTER", + "InfoTID": "TID_PET_WALLBUSTER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 3, + "Speed": 300, + "Hitpoints": 4750, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 5, + "UpgradeTimeH": 132, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 210000, + "DonateCost": 20, + "AttackRange": 120, + "AttackSpeed": 2100, + "DPS": 76, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_bulldozer", + "BigPicture": "unit_pet_mightyyak_big", + "BigPictureSWF": "sc/info_pet_mightyyak.sc", + "DeployEffect": "Bulldozer Deploy", + "AttackEffect": "Bulldozer Attack", + "HitEffect": "Golem Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Bulldozer Die", + "Animation": "PetYakDefault", + "IsJumper": false, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 1870, + "WallMovementCost": 64, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "NewTargetAttackDelay": 100, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_BULLDOZER", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BULLDOZER", + "DamageMultiplierTarget": "Wall", + "DamageMultiplierPercent": 2000, + "LeashLength": 581, + "DefaultSkin": "PetYakDefault", + "HeroDeathAbilityLevel": 2, + "HeroDeathAbilityType": "BoostSelf", + "HeroDeathAbilitySpell": "TroopRage", + "PreviewScenario": "Pet3" + }, + "6": { + "TroopLevel": 6, + "TID": "TID_PET_WALLBUSTER", + "InfoTID": "TID_PET_WALLBUSTER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 3, + "Speed": 300, + "Hitpoints": 4950, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 6, + "UpgradeTimeH": 144, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 215000, + "DonateCost": 20, + "AttackRange": 120, + "AttackSpeed": 2100, + "DPS": 80, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_bulldozer", + "BigPicture": "unit_pet_mightyyak_big", + "BigPictureSWF": "sc/info_pet_mightyyak.sc", + "DeployEffect": "Bulldozer Deploy", + "AttackEffect": "Bulldozer Attack", + "HitEffect": "Golem Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Bulldozer Die", + "Animation": "PetYakDefault", + "IsJumper": false, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 1900, + "WallMovementCost": 64, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "NewTargetAttackDelay": 100, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_BULLDOZER", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BULLDOZER", + "DamageMultiplierTarget": "Wall", + "DamageMultiplierPercent": 2000, + "LeashLength": 581, + "DefaultSkin": "PetYakDefault", + "HeroDeathAbilityLevel": 2, + "HeroDeathAbilityType": "BoostSelf", + "HeroDeathAbilitySpell": "TroopRage", + "PreviewScenario": "Pet3" + }, + "7": { + "TroopLevel": 7, + "TID": "TID_PET_WALLBUSTER", + "InfoTID": "TID_PET_WALLBUSTER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 3, + "Speed": 300, + "Hitpoints": 5100, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 7, + "UpgradeTimeH": 156, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 225000, + "DonateCost": 20, + "AttackRange": 120, + "AttackSpeed": 2100, + "DPS": 84, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_bulldozer", + "BigPicture": "unit_pet_mightyyak_big", + "BigPictureSWF": "sc/info_pet_mightyyak.sc", + "DeployEffect": "Bulldozer Deploy", + "AttackEffect": "Bulldozer Attack", + "HitEffect": "Golem Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Bulldozer Die", + "Animation": "PetYakDefault", + "IsJumper": false, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 1930, + "WallMovementCost": 64, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "NewTargetAttackDelay": 100, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_BULLDOZER", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BULLDOZER", + "DamageMultiplierTarget": "Wall", + "DamageMultiplierPercent": 2000, + "LeashLength": 581, + "DefaultSkin": "PetYakDefault", + "HeroDeathAbilityLevel": 2, + "HeroDeathAbilityType": "BoostSelf", + "HeroDeathAbilitySpell": "TroopRage", + "PreviewScenario": "Pet3" + }, + "8": { + "TroopLevel": 8, + "TID": "TID_PET_WALLBUSTER", + "InfoTID": "TID_PET_WALLBUSTER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 3, + "Speed": 300, + "Hitpoints": 5250, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 8, + "UpgradeTimeH": 168, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 230000, + "DonateCost": 20, + "AttackRange": 120, + "AttackSpeed": 2100, + "DPS": 88, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_bulldozer", + "BigPicture": "unit_pet_mightyyak_big", + "BigPictureSWF": "sc/info_pet_mightyyak.sc", + "DeployEffect": "Bulldozer Deploy", + "AttackEffect": "Bulldozer Attack", + "HitEffect": "Golem Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Bulldozer Die", + "Animation": "PetYakDefault", + "IsJumper": false, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 1960, + "WallMovementCost": 64, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "NewTargetAttackDelay": 100, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_BULLDOZER", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BULLDOZER", + "DamageMultiplierTarget": "Wall", + "DamageMultiplierPercent": 2000, + "LeashLength": 581, + "DefaultSkin": "PetYakDefault", + "HeroDeathAbilityLevel": 2, + "HeroDeathAbilityType": "BoostSelf", + "HeroDeathAbilitySpell": "TroopRage", + "PreviewScenario": "Pet3" + }, + "9": { + "TroopLevel": 9, + "TID": "TID_PET_WALLBUSTER", + "InfoTID": "TID_PET_WALLBUSTER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 3, + "Speed": 300, + "Hitpoints": 5400, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 9, + "UpgradeTimeH": 180, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 240000, + "DonateCost": 20, + "AttackRange": 120, + "AttackSpeed": 2100, + "DPS": 92, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_bulldozer", + "BigPicture": "unit_pet_mightyyak_big", + "BigPictureSWF": "sc/info_pet_mightyyak.sc", + "DeployEffect": "Bulldozer Deploy", + "AttackEffect": "Bulldozer Attack", + "HitEffect": "Golem Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Bulldozer Die", + "Animation": "PetYakDefault", + "IsJumper": false, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 1990, + "WallMovementCost": 64, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "NewTargetAttackDelay": 100, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_BULLDOZER", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BULLDOZER", + "DamageMultiplierTarget": "Wall", + "DamageMultiplierPercent": 2000, + "LeashLength": 581, + "DefaultSkin": "PetYakDefault", + "HeroDeathAbilityLevel": 2, + "HeroDeathAbilityType": "BoostSelf", + "HeroDeathAbilitySpell": "TroopRage", + "PreviewScenario": "Pet3" + }, + "10": { + "TroopLevel": 10, + "TID": "TID_PET_WALLBUSTER", + "InfoTID": "TID_PET_WALLBUSTER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 3, + "Speed": 300, + "Hitpoints": 5550, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 10, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 250000, + "DonateCost": 20, + "AttackRange": 120, + "AttackSpeed": 2100, + "DPS": 96, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_bulldozer", + "BigPicture": "unit_pet_mightyyak_big", + "BigPictureSWF": "sc/info_pet_mightyyak.sc", + "DeployEffect": "Bulldozer Deploy", + "AttackEffect": "Bulldozer Attack", + "HitEffect": "Golem Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Bulldozer Die", + "Animation": "PetYakDefault", + "IsJumper": false, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 2020, + "WallMovementCost": 64, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "NewTargetAttackDelay": 100, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_BULLDOZER", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BULLDOZER", + "DamageMultiplierTarget": "Wall", + "DamageMultiplierPercent": 2000, + "LeashLength": 581, + "DefaultSkin": "PetYakDefault", + "HeroDeathAbilityLevel": 2, + "HeroDeathAbilityType": "BoostSelf", + "HeroDeathAbilitySpell": "TroopRage", + "PreviewScenario": "Pet3" + }, + "11": { + "TroopLevel": 11, + "TID": "TID_PET_WALLBUSTER", + "InfoTID": "TID_PET_WALLBUSTER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 7, + "Speed": 300, + "Hitpoints": 5700, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 11, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 260000, + "DonateCost": 20, + "AttackRange": 120, + "AttackSpeed": 2100, + "DPS": 100, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_bulldozer", + "BigPicture": "unit_pet_mightyyak_big", + "BigPictureSWF": "sc/info_pet_mightyyak.sc", + "DeployEffect": "Bulldozer Deploy", + "AttackEffect": "Bulldozer Attack", + "HitEffect": "Golem Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Bulldozer Die", + "Animation": "PetYakDefault", + "IsJumper": false, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 2040, + "WallMovementCost": 64, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "NewTargetAttackDelay": 100, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_BULLDOZER", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BULLDOZER", + "DamageMultiplierTarget": "Wall", + "DamageMultiplierPercent": 2000, + "LeashLength": 581, + "DefaultSkin": "PetYakDefault", + "HeroDeathAbilityLevel": 2, + "HeroDeathAbilityType": "BoostSelf", + "HeroDeathAbilitySpell": "TroopRage", + "PreviewScenario": "Pet3" + }, + "12": { + "TroopLevel": 12, + "TID": "TID_PET_WALLBUSTER", + "InfoTID": "TID_PET_WALLBUSTER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 7, + "Speed": 300, + "Hitpoints": 5850, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 12, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 270000, + "DonateCost": 20, + "AttackRange": 120, + "AttackSpeed": 2100, + "DPS": 104, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_bulldozer", + "BigPicture": "unit_pet_mightyyak_big", + "BigPictureSWF": "sc/info_pet_mightyyak.sc", + "DeployEffect": "Bulldozer Deploy", + "AttackEffect": "Bulldozer Attack", + "HitEffect": "Golem Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Bulldozer Die", + "Animation": "PetYakDefault", + "IsJumper": false, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 2060, + "WallMovementCost": 64, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "NewTargetAttackDelay": 100, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_BULLDOZER", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BULLDOZER", + "DamageMultiplierTarget": "Wall", + "DamageMultiplierPercent": 2000, + "LeashLength": 581, + "DefaultSkin": "PetYakDefault", + "HeroDeathAbilityLevel": 2, + "HeroDeathAbilityType": "BoostSelf", + "HeroDeathAbilitySpell": "TroopRage", + "PreviewScenario": "Pet3" + }, + "13": { + "TroopLevel": 13, + "TID": "TID_PET_WALLBUSTER", + "InfoTID": "TID_PET_WALLBUSTER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 7, + "Speed": 300, + "Hitpoints": 6000, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 13, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 280000, + "DonateCost": 20, + "AttackRange": 120, + "AttackSpeed": 2100, + "DPS": 108, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_bulldozer", + "BigPicture": "unit_pet_mightyyak_big", + "BigPictureSWF": "sc/info_pet_mightyyak.sc", + "DeployEffect": "Bulldozer Deploy", + "AttackEffect": "Bulldozer Attack", + "HitEffect": "Golem Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Bulldozer Die", + "Animation": "PetYakDefault", + "IsJumper": false, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 2080, + "WallMovementCost": 64, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "NewTargetAttackDelay": 100, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_BULLDOZER", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BULLDOZER", + "DamageMultiplierTarget": "Wall", + "DamageMultiplierPercent": 2000, + "LeashLength": 581, + "DefaultSkin": "PetYakDefault", + "HeroDeathAbilityLevel": 2, + "HeroDeathAbilityType": "BoostSelf", + "HeroDeathAbilitySpell": "TroopRage", + "PreviewScenario": "Pet3" + }, + "14": { + "TroopLevel": 14, + "TID": "TID_PET_WALLBUSTER", + "InfoTID": "TID_PET_WALLBUSTER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 7, + "Speed": 300, + "Hitpoints": 6150, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 14, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 290000, + "DonateCost": 20, + "AttackRange": 120, + "AttackSpeed": 2100, + "DPS": 112, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_bulldozer", + "BigPicture": "unit_pet_mightyyak_big", + "BigPictureSWF": "sc/info_pet_mightyyak.sc", + "DeployEffect": "Bulldozer Deploy", + "AttackEffect": "Bulldozer Attack", + "HitEffect": "Golem Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Bulldozer Die", + "Animation": "PetYakDefault", + "IsJumper": false, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 2100, + "WallMovementCost": 64, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "NewTargetAttackDelay": 100, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_BULLDOZER", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BULLDOZER", + "DamageMultiplierTarget": "Wall", + "DamageMultiplierPercent": 2000, + "LeashLength": 581, + "DefaultSkin": "PetYakDefault", + "HeroDeathAbilityLevel": 2, + "HeroDeathAbilityType": "BoostSelf", + "HeroDeathAbilitySpell": "TroopRage", + "PreviewScenario": "Pet3" + }, + "15": { + "TroopLevel": 15, + "TID": "TID_PET_WALLBUSTER", + "InfoTID": "TID_PET_WALLBUSTER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 7, + "Speed": 300, + "Hitpoints": 6300, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 15, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 290000, + "DonateCost": 20, + "AttackRange": 120, + "AttackSpeed": 2100, + "DPS": 116, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_bulldozer", + "BigPicture": "unit_pet_mightyyak_big", + "BigPictureSWF": "sc/info_pet_mightyyak.sc", + "DeployEffect": "Bulldozer Deploy", + "AttackEffect": "Bulldozer Attack", + "HitEffect": "Golem Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Bulldozer Die", + "Animation": "PetYakDefault", + "IsJumper": false, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 2120, + "WallMovementCost": 64, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "NewTargetAttackDelay": 100, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_BULLDOZER", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_BULLDOZER", + "DamageMultiplierTarget": "Wall", + "DamageMultiplierPercent": 2000, + "LeashLength": 581, + "DefaultSkin": "PetYakDefault", + "HeroDeathAbilityLevel": 2, + "HeroDeathAbilityType": "BoostSelf", + "HeroDeathAbilitySpell": "TroopRage", + "PreviewScenario": "Pet3" + } + }, + "Electro Owl": { + "1": { + "TroopLevel": 1, + "TID": "TID_PET_RANGEDATTACKER", + "InfoTID": "TID_PET_RANGEDATTACKER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 2, + "Speed": 250, + "Hitpoints": 1600, + "TrainingTime": 9999, + "TrainingResource": "DarkElixir", + "TrainingCost": 1, + "UpgradeTimeH": 72, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 115000, + "DonateCost": 20, + "AttackRange": 550, + "AttackSpeed": 1400, + "DPS": 100, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_electrowl", + "BigPicture": "unit_pet_electro_owl_big", + "BigPictureSWF": "sc/info_pet_electro_owl.sc", + "DeployEffect": "Laser Owl Deploy", + "AttackEffect": "Laser Owl Attack", + "HitEffect": "Mega Tesla Hit", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Laser Owl Die", + "Animation": "PetEowlDefault", + "IsJumper": false, + "MovementOffsetSpeed": 30, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 3550, + "TargetedEffectOffset": 60, + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": false, + "ChainAttackDistance": 300, + "ChainAttackMaxTargets": 2, + "ChainAttackDelay": 128, + "ChainAttackDamageReductionPercent": 20, + "ChainAttackEffect": "MegaTesla Attack_1_chain", + "SpecialAbilityName": "TID_PET_ABILITY_ELECTROWL", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_ELECTROWL", + "LeashLength": 0, + "DefaultSkin": "PetEowlDefault", + "PreviewScenario": "Pet2" + }, + "2": { + "TroopLevel": 2, + "TID": "TID_PET_RANGEDATTACKER", + "InfoTID": "TID_PET_RANGEDATTACKER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 2, + "Speed": 250, + "Hitpoints": 1700, + "TrainingTime": 9999, + "TrainingResource": "DarkElixir", + "TrainingCost": 2, + "UpgradeTimeH": 96, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 130000, + "DonateCost": 20, + "AttackRange": 550, + "AttackSpeed": 1400, + "DPS": 105, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_electrowl", + "BigPicture": "unit_pet_electro_owl_big", + "BigPictureSWF": "sc/info_pet_electro_owl.sc", + "DeployEffect": "Laser Owl Deploy", + "AttackEffect": "Laser Owl Attack", + "HitEffect": "Mega Tesla Hit", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Laser Owl Die", + "Animation": "PetEowlDefault", + "IsJumper": false, + "MovementOffsetSpeed": 30, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 3600, + "TargetedEffectOffset": 60, + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": false, + "ChainAttackDistance": 300, + "ChainAttackMaxTargets": 2, + "ChainAttackDelay": 128, + "ChainAttackDamageReductionPercent": 20, + "ChainAttackEffect": "MegaTesla Attack_1_chain", + "SpecialAbilityName": "TID_PET_ABILITY_ELECTROWL", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_ELECTROWL", + "LeashLength": 0, + "DefaultSkin": "PetEowlDefault", + "PreviewScenario": "Pet2" + }, + "3": { + "TroopLevel": 3, + "TID": "TID_PET_RANGEDATTACKER", + "InfoTID": "TID_PET_RANGEDATTACKER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 2, + "Speed": 250, + "Hitpoints": 1800, + "TrainingTime": 9999, + "TrainingResource": "DarkElixir", + "TrainingCost": 3, + "UpgradeTimeH": 108, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 140000, + "DonateCost": 20, + "AttackRange": 550, + "AttackSpeed": 1400, + "DPS": 110, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_electrowl", + "BigPicture": "unit_pet_electro_owl_big", + "BigPictureSWF": "sc/info_pet_electro_owl.sc", + "DeployEffect": "Laser Owl Deploy", + "AttackEffect": "Laser Owl Attack", + "HitEffect": "Mega Tesla Hit", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Laser Owl Die", + "Animation": "PetEowlDefault", + "IsJumper": false, + "MovementOffsetSpeed": 30, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 3650, + "TargetedEffectOffset": 60, + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": false, + "ChainAttackDistance": 300, + "ChainAttackMaxTargets": 2, + "ChainAttackDelay": 128, + "ChainAttackDamageReductionPercent": 20, + "ChainAttackEffect": "MegaTesla Attack_1_chain", + "SpecialAbilityName": "TID_PET_ABILITY_ELECTROWL", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_ELECTROWL", + "LeashLength": 0, + "DefaultSkin": "PetEowlDefault", + "PreviewScenario": "Pet2" + }, + "4": { + "TroopLevel": 4, + "TID": "TID_PET_RANGEDATTACKER", + "InfoTID": "TID_PET_RANGEDATTACKER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 2, + "Speed": 250, + "Hitpoints": 1900, + "TrainingTime": 9999, + "TrainingResource": "DarkElixir", + "TrainingCost": 4, + "UpgradeTimeH": 120, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 155000, + "DonateCost": 20, + "AttackRange": 550, + "AttackSpeed": 1400, + "DPS": 115, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_electrowl", + "BigPicture": "unit_pet_electro_owl_big", + "BigPictureSWF": "sc/info_pet_electro_owl.sc", + "DeployEffect": "Laser Owl Deploy", + "AttackEffect": "Laser Owl Attack", + "HitEffect": "Mega Tesla Hit", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Laser Owl Die", + "Animation": "PetEowlDefault", + "IsJumper": false, + "MovementOffsetSpeed": 30, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 3700, + "TargetedEffectOffset": 60, + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": false, + "ChainAttackDistance": 300, + "ChainAttackMaxTargets": 2, + "ChainAttackDelay": 128, + "ChainAttackDamageReductionPercent": 20, + "ChainAttackEffect": "MegaTesla Attack_1_chain", + "SpecialAbilityName": "TID_PET_ABILITY_ELECTROWL", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_ELECTROWL", + "LeashLength": 0, + "DefaultSkin": "PetEowlDefault", + "PreviewScenario": "Pet2" + }, + "5": { + "TroopLevel": 5, + "TID": "TID_PET_RANGEDATTACKER", + "InfoTID": "TID_PET_RANGEDATTACKER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 2, + "Speed": 250, + "Hitpoints": 2000, + "TrainingTime": 9999, + "TrainingResource": "DarkElixir", + "TrainingCost": 5, + "UpgradeTimeH": 132, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 165000, + "DonateCost": 20, + "AttackRange": 550, + "AttackSpeed": 1400, + "DPS": 120, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_electrowl", + "BigPicture": "unit_pet_electro_owl_big", + "BigPictureSWF": "sc/info_pet_electro_owl.sc", + "DeployEffect": "Laser Owl Deploy", + "AttackEffect": "Laser Owl Attack", + "HitEffect": "Mega Tesla Hit", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Laser Owl Die", + "Animation": "PetEowlDefault", + "IsJumper": false, + "MovementOffsetSpeed": 30, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 3750, + "TargetedEffectOffset": 60, + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": false, + "ChainAttackDistance": 300, + "ChainAttackMaxTargets": 2, + "ChainAttackDelay": 128, + "ChainAttackDamageReductionPercent": 20, + "ChainAttackEffect": "MegaTesla Attack_1_chain", + "SpecialAbilityName": "TID_PET_ABILITY_ELECTROWL", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_ELECTROWL", + "LeashLength": 0, + "DefaultSkin": "PetEowlDefault", + "PreviewScenario": "Pet2" + }, + "6": { + "TroopLevel": 6, + "TID": "TID_PET_RANGEDATTACKER", + "InfoTID": "TID_PET_RANGEDATTACKER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 2, + "Speed": 250, + "Hitpoints": 2100, + "TrainingTime": 9999, + "TrainingResource": "DarkElixir", + "TrainingCost": 6, + "UpgradeTimeH": 144, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 180000, + "DonateCost": 20, + "AttackRange": 550, + "AttackSpeed": 1400, + "DPS": 125, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_electrowl", + "BigPicture": "unit_pet_electro_owl_big", + "BigPictureSWF": "sc/info_pet_electro_owl.sc", + "DeployEffect": "Laser Owl Deploy", + "AttackEffect": "Laser Owl Attack", + "HitEffect": "Mega Tesla Hit", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Laser Owl Die", + "Animation": "PetEowlDefault", + "IsJumper": false, + "MovementOffsetSpeed": 30, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 3800, + "TargetedEffectOffset": 60, + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": false, + "ChainAttackDistance": 300, + "ChainAttackMaxTargets": 2, + "ChainAttackDelay": 128, + "ChainAttackDamageReductionPercent": 20, + "ChainAttackEffect": "MegaTesla Attack_1_chain", + "SpecialAbilityName": "TID_PET_ABILITY_ELECTROWL", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_ELECTROWL", + "LeashLength": 0, + "DefaultSkin": "PetEowlDefault", + "PreviewScenario": "Pet2" + }, + "7": { + "TroopLevel": 7, + "TID": "TID_PET_RANGEDATTACKER", + "InfoTID": "TID_PET_RANGEDATTACKER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 2, + "Speed": 250, + "Hitpoints": 2200, + "TrainingTime": 9999, + "TrainingResource": "DarkElixir", + "TrainingCost": 7, + "UpgradeTimeH": 156, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 190000, + "DonateCost": 20, + "AttackRange": 550, + "AttackSpeed": 1400, + "DPS": 130, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_electrowl", + "BigPicture": "unit_pet_electro_owl_big", + "BigPictureSWF": "sc/info_pet_electro_owl.sc", + "DeployEffect": "Laser Owl Deploy", + "AttackEffect": "Laser Owl Attack", + "HitEffect": "Mega Tesla Hit", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Laser Owl Die", + "Animation": "PetEowlDefault", + "IsJumper": false, + "MovementOffsetSpeed": 30, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 3850, + "TargetedEffectOffset": 60, + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": false, + "ChainAttackDistance": 300, + "ChainAttackMaxTargets": 2, + "ChainAttackDelay": 128, + "ChainAttackDamageReductionPercent": 20, + "ChainAttackEffect": "MegaTesla Attack_1_chain", + "SpecialAbilityName": "TID_PET_ABILITY_ELECTROWL", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_ELECTROWL", + "LeashLength": 0, + "DefaultSkin": "PetEowlDefault", + "PreviewScenario": "Pet2" + }, + "8": { + "TroopLevel": 8, + "TID": "TID_PET_RANGEDATTACKER", + "InfoTID": "TID_PET_RANGEDATTACKER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 2, + "Speed": 250, + "Hitpoints": 2300, + "TrainingTime": 9999, + "TrainingResource": "DarkElixir", + "TrainingCost": 8, + "UpgradeTimeH": 168, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 205000, + "DonateCost": 20, + "AttackRange": 550, + "AttackSpeed": 1400, + "DPS": 135, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_electrowl", + "BigPicture": "unit_pet_electro_owl_big", + "BigPictureSWF": "sc/info_pet_electro_owl.sc", + "DeployEffect": "Laser Owl Deploy", + "AttackEffect": "Laser Owl Attack", + "HitEffect": "Mega Tesla Hit", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Laser Owl Die", + "Animation": "PetEowlDefault", + "IsJumper": false, + "MovementOffsetSpeed": 30, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 3900, + "TargetedEffectOffset": 60, + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": false, + "ChainAttackDistance": 300, + "ChainAttackMaxTargets": 2, + "ChainAttackDelay": 128, + "ChainAttackDamageReductionPercent": 20, + "ChainAttackEffect": "MegaTesla Attack_1_chain", + "SpecialAbilityName": "TID_PET_ABILITY_ELECTROWL", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_ELECTROWL", + "LeashLength": 0, + "DefaultSkin": "PetEowlDefault", + "PreviewScenario": "Pet2" + }, + "9": { + "TroopLevel": 9, + "TID": "TID_PET_RANGEDATTACKER", + "InfoTID": "TID_PET_RANGEDATTACKER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 2, + "Speed": 250, + "Hitpoints": 2400, + "TrainingTime": 9999, + "TrainingResource": "DarkElixir", + "TrainingCost": 9, + "UpgradeTimeH": 180, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 215000, + "DonateCost": 20, + "AttackRange": 550, + "AttackSpeed": 1400, + "DPS": 140, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_electrowl", + "BigPicture": "unit_pet_electro_owl_big", + "BigPictureSWF": "sc/info_pet_electro_owl.sc", + "DeployEffect": "Laser Owl Deploy", + "AttackEffect": "Laser Owl Attack", + "HitEffect": "Mega Tesla Hit", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Laser Owl Die", + "Animation": "PetEowlDefault", + "IsJumper": false, + "MovementOffsetSpeed": 30, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 3950, + "TargetedEffectOffset": 60, + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": false, + "ChainAttackDistance": 300, + "ChainAttackMaxTargets": 2, + "ChainAttackDelay": 128, + "ChainAttackDamageReductionPercent": 20, + "ChainAttackEffect": "MegaTesla Attack_1_chain", + "SpecialAbilityName": "TID_PET_ABILITY_ELECTROWL", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_ELECTROWL", + "LeashLength": 0, + "DefaultSkin": "PetEowlDefault", + "PreviewScenario": "Pet2" + }, + "10": { + "TroopLevel": 10, + "TID": "TID_PET_RANGEDATTACKER", + "InfoTID": "TID_PET_RANGEDATTACKER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 2, + "Speed": 250, + "Hitpoints": 2500, + "TrainingTime": 9999, + "TrainingResource": "DarkElixir", + "TrainingCost": 10, + "UpgradeTimeH": 180, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 215000, + "DonateCost": 20, + "AttackRange": 550, + "AttackSpeed": 1400, + "DPS": 145, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_electrowl", + "BigPicture": "unit_pet_electro_owl_big", + "BigPictureSWF": "sc/info_pet_electro_owl.sc", + "DeployEffect": "Laser Owl Deploy", + "AttackEffect": "Laser Owl Attack", + "HitEffect": "Mega Tesla Hit", + "IsFlying": true, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Laser Owl Die", + "Animation": "PetEowlDefault", + "IsJumper": false, + "MovementOffsetSpeed": 30, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 4000, + "TargetedEffectOffset": 60, + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": false, + "ChainAttackDistance": 300, + "ChainAttackMaxTargets": 2, + "ChainAttackDelay": 128, + "ChainAttackDamageReductionPercent": 20, + "ChainAttackEffect": "MegaTesla Attack_1_chain", + "SpecialAbilityName": "TID_PET_ABILITY_ELECTROWL", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_ELECTROWL", + "LeashLength": 0, + "DefaultSkin": "PetEowlDefault", + "PreviewScenario": "Pet2" + } + }, + "Unicorn": { + "1": { + "TroopLevel": 1, + "TID": "TID_PET_HEALER", + "InfoTID": "TID_PET_HEALER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 4, + "Speed": 200, + "Hitpoints": 1400, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 1, + "UpgradeTimeH": 72, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 180000, + "DonateCost": 20, + "AttackRange": 250, + "AttackSpeed": 1000, + "DPS": "-50", + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_unipony", + "BigPicture": "unit_pet_unicorn_big", + "BigPictureSWF": "sc/info_pet_unicorn.sc", + "Projectile": "UnicornHealEnergy", + "DeployEffect": "Pony Deploy", + "AttackEffect": "Pony Attack", + "HitEffect": "Unicorn Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Pony Die", + "Animation": "PetUnicornDefault", + "IsJumper": true, + "MovementOffsetSpeed": 50, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 4550, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_UNIPONY", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_UNIPONY", + "HeroDamageMultiplier": 100, + "LeashLength": 0, + "DefaultSkin": "PetUnicornDefault", + "PreviewScenario": "Pet2" + }, + "2": { + "TroopLevel": 2, + "TID": "TID_PET_HEALER", + "InfoTID": "TID_PET_HEALER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 4, + "Speed": 200, + "Hitpoints": 1450, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 2, + "UpgradeTimeH": 96, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 190000, + "DonateCost": 20, + "AttackRange": 250, + "AttackSpeed": 1000, + "DPS": "-53", + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_unipony", + "BigPicture": "unit_pet_unicorn_big", + "BigPictureSWF": "sc/info_pet_unicorn.sc", + "Projectile": "UnicornHealEnergy", + "DeployEffect": "Pony Deploy", + "AttackEffect": "Pony Attack", + "HitEffect": "Unicorn Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Pony Die", + "Animation": "PetUnicornDefault", + "IsJumper": true, + "MovementOffsetSpeed": 50, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 4600, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_UNIPONY", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_UNIPONY", + "HeroDamageMultiplier": 100, + "LeashLength": 0, + "DefaultSkin": "PetUnicornDefault", + "PreviewScenario": "Pet2" + }, + "3": { + "TroopLevel": 3, + "TID": "TID_PET_HEALER", + "InfoTID": "TID_PET_HEALER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 4, + "Speed": 200, + "Hitpoints": 1500, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 3, + "UpgradeTimeH": 108, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 200000, + "DonateCost": 20, + "AttackRange": 250, + "AttackSpeed": 1000, + "DPS": "-56", + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_unipony", + "BigPicture": "unit_pet_unicorn_big", + "BigPictureSWF": "sc/info_pet_unicorn.sc", + "Projectile": "UnicornHealEnergy", + "DeployEffect": "Pony Deploy", + "AttackEffect": "Pony Attack", + "HitEffect": "Unicorn Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Pony Die", + "Animation": "PetUnicornDefault", + "IsJumper": true, + "MovementOffsetSpeed": 50, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 4650, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_UNIPONY", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_UNIPONY", + "HeroDamageMultiplier": 100, + "LeashLength": 0, + "DefaultSkin": "PetUnicornDefault", + "PreviewScenario": "Pet2" + }, + "4": { + "TroopLevel": 4, + "TID": "TID_PET_HEALER", + "InfoTID": "TID_PET_HEALER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 4, + "Speed": 200, + "Hitpoints": 1550, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 4, + "UpgradeTimeH": 120, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 210000, + "DonateCost": 20, + "AttackRange": 250, + "AttackSpeed": 1000, + "DPS": "-58", + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_unipony", + "BigPicture": "unit_pet_unicorn_big", + "BigPictureSWF": "sc/info_pet_unicorn.sc", + "Projectile": "UnicornHealEnergy", + "DeployEffect": "Pony Deploy", + "AttackEffect": "Pony Attack", + "HitEffect": "Unicorn Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Pony Die", + "Animation": "PetUnicornDefault", + "IsJumper": true, + "MovementOffsetSpeed": 50, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 4700, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_UNIPONY", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_UNIPONY", + "HeroDamageMultiplier": 100, + "LeashLength": 0, + "DefaultSkin": "PetUnicornDefault", + "PreviewScenario": "Pet2" + }, + "5": { + "TroopLevel": 5, + "TID": "TID_PET_HEALER", + "InfoTID": "TID_PET_HEALER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 4, + "Speed": 200, + "Hitpoints": 1600, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 5, + "UpgradeTimeH": 132, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 220000, + "DonateCost": 20, + "AttackRange": 250, + "AttackSpeed": 1000, + "DPS": "-60", + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_unipony", + "BigPicture": "unit_pet_unicorn_big", + "BigPictureSWF": "sc/info_pet_unicorn.sc", + "Projectile": "UnicornHealEnergy", + "DeployEffect": "Pony Deploy", + "AttackEffect": "Pony Attack", + "HitEffect": "Unicorn Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Pony Die", + "Animation": "PetUnicornDefault", + "IsJumper": true, + "MovementOffsetSpeed": 50, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 4750, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_UNIPONY", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_UNIPONY", + "HeroDamageMultiplier": 100, + "LeashLength": 0, + "DefaultSkin": "PetUnicornDefault", + "PreviewScenario": "Pet2" + }, + "6": { + "TroopLevel": 6, + "TID": "TID_PET_HEALER", + "InfoTID": "TID_PET_HEALER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 4, + "Speed": 200, + "Hitpoints": 1675, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 6, + "UpgradeTimeH": 144, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 230000, + "DonateCost": 20, + "AttackRange": 250, + "AttackSpeed": 1000, + "DPS": "-62", + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_unipony", + "BigPicture": "unit_pet_unicorn_big", + "BigPictureSWF": "sc/info_pet_unicorn.sc", + "Projectile": "UnicornHealEnergy", + "DeployEffect": "Pony Deploy", + "AttackEffect": "Pony Attack", + "HitEffect": "Unicorn Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Pony Die", + "Animation": "PetUnicornDefault", + "IsJumper": true, + "MovementOffsetSpeed": 50, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 4800, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_UNIPONY", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_UNIPONY", + "HeroDamageMultiplier": 100, + "LeashLength": 0, + "DefaultSkin": "PetUnicornDefault", + "PreviewScenario": "Pet2" + }, + "7": { + "TroopLevel": 7, + "TID": "TID_PET_HEALER", + "InfoTID": "TID_PET_HEALER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 4, + "Speed": 200, + "Hitpoints": 1725, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 7, + "UpgradeTimeH": 156, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 240000, + "DonateCost": 20, + "AttackRange": 250, + "AttackSpeed": 1000, + "DPS": "-64", + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_unipony", + "BigPicture": "unit_pet_unicorn_big", + "BigPictureSWF": "sc/info_pet_unicorn.sc", + "Projectile": "UnicornHealEnergy", + "DeployEffect": "Pony Deploy", + "AttackEffect": "Pony Attack", + "HitEffect": "Unicorn Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Pony Die", + "Animation": "PetUnicornDefault", + "IsJumper": true, + "MovementOffsetSpeed": 50, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 4850, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_UNIPONY", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_UNIPONY", + "HeroDamageMultiplier": 100, + "LeashLength": 0, + "DefaultSkin": "PetUnicornDefault", + "PreviewScenario": "Pet2" + }, + "8": { + "TroopLevel": 8, + "TID": "TID_PET_HEALER", + "InfoTID": "TID_PET_HEALER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 4, + "Speed": 200, + "Hitpoints": 1800, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 8, + "UpgradeTimeH": 168, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 250000, + "DonateCost": 20, + "AttackRange": 250, + "AttackSpeed": 1000, + "DPS": "-66", + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_unipony", + "BigPicture": "unit_pet_unicorn_big", + "BigPictureSWF": "sc/info_pet_unicorn.sc", + "Projectile": "UnicornHealEnergy", + "DeployEffect": "Pony Deploy", + "AttackEffect": "Pony Attack", + "HitEffect": "Unicorn Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Pony Die", + "Animation": "PetUnicornDefault", + "IsJumper": true, + "MovementOffsetSpeed": 50, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 4900, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_UNIPONY", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_UNIPONY", + "HeroDamageMultiplier": 100, + "LeashLength": 0, + "DefaultSkin": "PetUnicornDefault", + "PreviewScenario": "Pet2" + }, + "9": { + "TroopLevel": 9, + "TID": "TID_PET_HEALER", + "InfoTID": "TID_PET_HEALER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 4, + "Speed": 200, + "Hitpoints": 1875, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 9, + "UpgradeTimeH": 180, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 260000, + "DonateCost": 20, + "AttackRange": 250, + "AttackSpeed": 1000, + "DPS": "-68", + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_unipony", + "BigPicture": "unit_pet_unicorn_big", + "BigPictureSWF": "sc/info_pet_unicorn.sc", + "Projectile": "UnicornHealEnergy", + "DeployEffect": "Pony Deploy", + "AttackEffect": "Pony Attack", + "HitEffect": "Unicorn Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Pony Die", + "Animation": "PetUnicornDefault", + "IsJumper": true, + "MovementOffsetSpeed": 50, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 4950, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_UNIPONY", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_UNIPONY", + "HeroDamageMultiplier": 100, + "LeashLength": 0, + "DefaultSkin": "PetUnicornDefault", + "PreviewScenario": "Pet2" + }, + "10": { + "TroopLevel": 10, + "TID": "TID_PET_HEALER", + "InfoTID": "TID_PET_HEALER_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 4, + "Speed": 200, + "Hitpoints": 1950, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 10, + "UpgradeTimeH": 180, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 260000, + "DonateCost": 20, + "AttackRange": 250, + "AttackSpeed": 1000, + "DPS": "-70", + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_unipony", + "BigPicture": "unit_pet_unicorn_big", + "BigPictureSWF": "sc/info_pet_unicorn.sc", + "Projectile": "UnicornHealEnergy", + "DeployEffect": "Pony Deploy", + "AttackEffect": "Pony Attack", + "HitEffect": "Unicorn Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Pony Die", + "Animation": "PetUnicornDefault", + "IsJumper": true, + "MovementOffsetSpeed": 50, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 5000, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_UNIPONY", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_UNIPONY", + "HeroDamageMultiplier": 100, + "LeashLength": 0, + "DefaultSkin": "PetUnicornDefault", + "PreviewScenario": "Pet2" + } + }, + "Phoenix": { + "1": { + "TroopLevel": 1, + "TID": "TID_PET_PHOENIX", + "InfoTID": "TID_PET_PHOENIX_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 8, + "Speed": 300, + "Hitpoints": 8000, + "TrainingTime": 360, + "TrainingResource": "DarkElixir", + "TrainingCost": 1, + "UpgradeTimeH": 1, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 200000, + "DonateCost": 20, + "AttackRange": 200, + "AttackSpeed": 3000, + "DPS": 0, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_phoenix", + "BigPicture": "unit_pet_phoenix_big", + "BigPictureSWF": "sc/info_pet_phoenix.sc", + "AltProjectile": "PhoenixResurrect", + "DeployEffect": "Phoenix_Egg_Deploy", + "AttackEffect": "Phoenix_Egg_Attack", + "HitEffect": "Phoenix_Egg_Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "AttackCount": 1, + "DieEffect": "Bdragon Die", + "Animation": "PhoenixEggDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "IsSecondaryTroop": true, + "SecondarySpawnDist": 0, + "SpawnIdle": 100, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 0, + "TriggersTraps": false, + "SpecialAbilityLevel": 1, + "SpecialAbilityName": "TID_PET_PHOENIX_ABILITY", + "SpecialAbilityInfo": "TID_PET_PHOENIX_ABILITY_INFO", + "SpecialAbilityType": "PhoenixEgg", + "DoesNotOpenCC": true, + "LeashLength": 0, + "DefaultSkin": "PetPhoenixEggDefault", + "HeroDeathAbilityLevel": 1, + "HeroDeathAbilityType": "ResurrectHero", + "HeroDeathAbilitySpell": "TroopImmortality", + "RecallWithMaster": true + }, + "2": { + "TroopLevel": 2, + "TID": "TID_PET_PHOENIX", + "InfoTID": "TID_PET_PHOENIX_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 8, + "Speed": 300, + "Hitpoints": 8100, + "TrainingTime": 360, + "TrainingResource": "DarkElixir", + "TrainingCost": 1, + "UpgradeTimeH": 1, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 200000, + "DonateCost": 20, + "AttackRange": 200, + "AttackSpeed": 3000, + "DPS": 0, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_phoenix", + "BigPicture": "unit_pet_phoenix_big", + "BigPictureSWF": "sc/info_pet_phoenix.sc", + "AltProjectile": "PhoenixResurrect", + "DeployEffect": "Phoenix_Egg_Deploy", + "AttackEffect": "Phoenix_Egg_Attack", + "HitEffect": "Phoenix_Egg_Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "AttackCount": 1, + "DieEffect": "Bdragon Die", + "Animation": "PhoenixEggDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "IsSecondaryTroop": true, + "SecondarySpawnDist": 0, + "SpawnIdle": 100, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 0, + "TriggersTraps": false, + "SpecialAbilityLevel": 1, + "SpecialAbilityName": "TID_PET_PHOENIX_ABILITY", + "SpecialAbilityInfo": "TID_PET_PHOENIX_ABILITY_INFO", + "SpecialAbilityType": "PhoenixEgg", + "DoesNotOpenCC": true, + "LeashLength": 0, + "DefaultSkin": "PetPhoenixEggDefault", + "HeroDeathAbilityLevel": 1, + "HeroDeathAbilityType": "ResurrectHero", + "HeroDeathAbilitySpell": "TroopImmortality", + "RecallWithMaster": true + }, + "3": { + "TroopLevel": 3, + "TID": "TID_PET_PHOENIX", + "InfoTID": "TID_PET_PHOENIX_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 8, + "Speed": 300, + "Hitpoints": 8200, + "TrainingTime": 360, + "TrainingResource": "DarkElixir", + "TrainingCost": 1, + "UpgradeTimeH": 1, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 200000, + "DonateCost": 20, + "AttackRange": 200, + "AttackSpeed": 3000, + "DPS": 0, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_phoenix", + "BigPicture": "unit_pet_phoenix_big", + "BigPictureSWF": "sc/info_pet_phoenix.sc", + "AltProjectile": "PhoenixResurrect", + "DeployEffect": "Phoenix_Egg_Deploy", + "AttackEffect": "Phoenix_Egg_Attack", + "HitEffect": "Phoenix_Egg_Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "AttackCount": 1, + "DieEffect": "Bdragon Die", + "Animation": "PhoenixEggDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "IsSecondaryTroop": true, + "SecondarySpawnDist": 0, + "SpawnIdle": 100, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 0, + "TriggersTraps": false, + "SpecialAbilityLevel": 1, + "SpecialAbilityName": "TID_PET_PHOENIX_ABILITY", + "SpecialAbilityInfo": "TID_PET_PHOENIX_ABILITY_INFO", + "SpecialAbilityType": "PhoenixEgg", + "DoesNotOpenCC": true, + "LeashLength": 0, + "DefaultSkin": "PetPhoenixEggDefault", + "HeroDeathAbilityLevel": 1, + "HeroDeathAbilityType": "ResurrectHero", + "HeroDeathAbilitySpell": "TroopImmortality", + "RecallWithMaster": true + }, + "4": { + "TroopLevel": 4, + "TID": "TID_PET_PHOENIX", + "InfoTID": "TID_PET_PHOENIX_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 8, + "Speed": 300, + "Hitpoints": 8300, + "TrainingTime": 360, + "TrainingResource": "DarkElixir", + "TrainingCost": 1, + "UpgradeTimeH": 1, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 200000, + "DonateCost": 20, + "AttackRange": 200, + "AttackSpeed": 3000, + "DPS": 0, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_phoenix", + "BigPicture": "unit_pet_phoenix_big", + "BigPictureSWF": "sc/info_pet_phoenix.sc", + "AltProjectile": "PhoenixResurrect", + "DeployEffect": "Phoenix_Egg_Deploy", + "AttackEffect": "Phoenix_Egg_Attack", + "HitEffect": "Phoenix_Egg_Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "AttackCount": 1, + "DieEffect": "Bdragon Die", + "Animation": "PhoenixEggDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "IsSecondaryTroop": true, + "SecondarySpawnDist": 0, + "SpawnIdle": 100, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 0, + "TriggersTraps": false, + "SpecialAbilityLevel": 1, + "SpecialAbilityName": "TID_PET_PHOENIX_ABILITY", + "SpecialAbilityInfo": "TID_PET_PHOENIX_ABILITY_INFO", + "SpecialAbilityType": "PhoenixEgg", + "DoesNotOpenCC": true, + "LeashLength": 0, + "DefaultSkin": "PetPhoenixEggDefault", + "HeroDeathAbilityLevel": 1, + "HeroDeathAbilityType": "ResurrectHero", + "HeroDeathAbilitySpell": "TroopImmortality", + "RecallWithMaster": true + }, + "5": { + "TroopLevel": 5, + "TID": "TID_PET_PHOENIX", + "InfoTID": "TID_PET_PHOENIX_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 8, + "Speed": 300, + "Hitpoints": 8400, + "TrainingTime": 360, + "TrainingResource": "DarkElixir", + "TrainingCost": 1, + "UpgradeTimeH": 1, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 200000, + "DonateCost": 20, + "AttackRange": 200, + "AttackSpeed": 3000, + "DPS": 0, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_phoenix", + "BigPicture": "unit_pet_phoenix_big", + "BigPictureSWF": "sc/info_pet_phoenix.sc", + "AltProjectile": "PhoenixResurrect", + "DeployEffect": "Phoenix_Egg_Deploy", + "AttackEffect": "Phoenix_Egg_Attack", + "HitEffect": "Phoenix_Egg_Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "AttackCount": 1, + "DieEffect": "Bdragon Die", + "Animation": "PhoenixEggDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "IsSecondaryTroop": true, + "SecondarySpawnDist": 0, + "SpawnIdle": 100, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 0, + "TriggersTraps": false, + "SpecialAbilityLevel": 1, + "SpecialAbilityName": "TID_PET_PHOENIX_ABILITY", + "SpecialAbilityInfo": "TID_PET_PHOENIX_ABILITY_INFO", + "SpecialAbilityType": "PhoenixEgg", + "DoesNotOpenCC": true, + "LeashLength": 0, + "DefaultSkin": "PetPhoenixEggDefault", + "HeroDeathAbilityLevel": 2, + "HeroDeathAbilityType": "ResurrectHero", + "HeroDeathAbilitySpell": "TroopImmortality", + "RecallWithMaster": true + }, + "6": { + "TroopLevel": 6, + "TID": "TID_PET_PHOENIX", + "InfoTID": "TID_PET_PHOENIX_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 8, + "Speed": 300, + "Hitpoints": 8500, + "TrainingTime": 360, + "TrainingResource": "DarkElixir", + "TrainingCost": 1, + "UpgradeTimeH": 1, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 200000, + "DonateCost": 20, + "AttackRange": 200, + "AttackSpeed": 3000, + "DPS": 0, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_phoenix", + "BigPicture": "unit_pet_phoenix_big", + "BigPictureSWF": "sc/info_pet_phoenix.sc", + "AltProjectile": "PhoenixResurrect", + "DeployEffect": "Phoenix_Egg_Deploy", + "AttackEffect": "Phoenix_Egg_Attack", + "HitEffect": "Phoenix_Egg_Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "AttackCount": 1, + "DieEffect": "Bdragon Die", + "Animation": "PhoenixEggDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "IsSecondaryTroop": true, + "SecondarySpawnDist": 0, + "SpawnIdle": 100, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 0, + "TriggersTraps": false, + "SpecialAbilityLevel": 1, + "SpecialAbilityName": "TID_PET_PHOENIX_ABILITY", + "SpecialAbilityInfo": "TID_PET_PHOENIX_ABILITY_INFO", + "SpecialAbilityType": "PhoenixEgg", + "DoesNotOpenCC": true, + "LeashLength": 0, + "DefaultSkin": "PetPhoenixEggDefault", + "HeroDeathAbilityLevel": 2, + "HeroDeathAbilityType": "ResurrectHero", + "HeroDeathAbilitySpell": "TroopImmortality", + "RecallWithMaster": true + }, + "7": { + "TroopLevel": 7, + "TID": "TID_PET_PHOENIX", + "InfoTID": "TID_PET_PHOENIX_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 8, + "Speed": 300, + "Hitpoints": 8600, + "TrainingTime": 360, + "TrainingResource": "DarkElixir", + "TrainingCost": 1, + "UpgradeTimeH": 1, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 200000, + "DonateCost": 20, + "AttackRange": 200, + "AttackSpeed": 3000, + "DPS": 0, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_phoenix", + "BigPicture": "unit_pet_phoenix_big", + "BigPictureSWF": "sc/info_pet_phoenix.sc", + "AltProjectile": "PhoenixResurrect", + "DeployEffect": "Phoenix_Egg_Deploy", + "AttackEffect": "Phoenix_Egg_Attack", + "HitEffect": "Phoenix_Egg_Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "AttackCount": 1, + "DieEffect": "Bdragon Die", + "Animation": "PhoenixEggDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "IsSecondaryTroop": true, + "SecondarySpawnDist": 0, + "SpawnIdle": 100, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 0, + "TriggersTraps": false, + "SpecialAbilityLevel": 1, + "SpecialAbilityName": "TID_PET_PHOENIX_ABILITY", + "SpecialAbilityInfo": "TID_PET_PHOENIX_ABILITY_INFO", + "SpecialAbilityType": "PhoenixEgg", + "DoesNotOpenCC": true, + "LeashLength": 0, + "DefaultSkin": "PetPhoenixEggDefault", + "HeroDeathAbilityLevel": 2, + "HeroDeathAbilityType": "ResurrectHero", + "HeroDeathAbilitySpell": "TroopImmortality", + "RecallWithMaster": true + }, + "8": { + "TroopLevel": 8, + "TID": "TID_PET_PHOENIX", + "InfoTID": "TID_PET_PHOENIX_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 8, + "Speed": 300, + "Hitpoints": 8700, + "TrainingTime": 360, + "TrainingResource": "DarkElixir", + "TrainingCost": 1, + "UpgradeTimeH": 1, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 200000, + "DonateCost": 20, + "AttackRange": 200, + "AttackSpeed": 3000, + "DPS": 0, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_phoenix", + "BigPicture": "unit_pet_phoenix_big", + "BigPictureSWF": "sc/info_pet_phoenix.sc", + "AltProjectile": "PhoenixResurrect", + "DeployEffect": "Phoenix_Egg_Deploy", + "AttackEffect": "Phoenix_Egg_Attack", + "HitEffect": "Phoenix_Egg_Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "AttackCount": 1, + "DieEffect": "Bdragon Die", + "Animation": "PhoenixEggDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "IsSecondaryTroop": true, + "SecondarySpawnDist": 0, + "SpawnIdle": 100, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 0, + "TriggersTraps": false, + "SpecialAbilityLevel": 1, + "SpecialAbilityName": "TID_PET_PHOENIX_ABILITY", + "SpecialAbilityInfo": "TID_PET_PHOENIX_ABILITY_INFO", + "SpecialAbilityType": "PhoenixEgg", + "DoesNotOpenCC": true, + "LeashLength": 0, + "DefaultSkin": "PetPhoenixEggDefault", + "HeroDeathAbilityLevel": 2, + "HeroDeathAbilityType": "ResurrectHero", + "HeroDeathAbilitySpell": "TroopImmortality", + "RecallWithMaster": true + }, + "9": { + "TroopLevel": 9, + "TID": "TID_PET_PHOENIX", + "InfoTID": "TID_PET_PHOENIX_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 8, + "Speed": 300, + "Hitpoints": 8800, + "TrainingTime": 360, + "TrainingResource": "DarkElixir", + "TrainingCost": 1, + "UpgradeTimeH": 1, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 200000, + "DonateCost": 20, + "AttackRange": 200, + "AttackSpeed": 3000, + "DPS": 0, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_phoenix", + "BigPicture": "unit_pet_phoenix_big", + "BigPictureSWF": "sc/info_pet_phoenix.sc", + "AltProjectile": "PhoenixResurrect", + "DeployEffect": "Phoenix_Egg_Deploy", + "AttackEffect": "Phoenix_Egg_Attack", + "HitEffect": "Phoenix_Egg_Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "AttackCount": 1, + "DieEffect": "Bdragon Die", + "Animation": "PhoenixEggDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "IsSecondaryTroop": true, + "SecondarySpawnDist": 0, + "SpawnIdle": 100, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 0, + "TriggersTraps": false, + "SpecialAbilityLevel": 1, + "SpecialAbilityName": "TID_PET_PHOENIX_ABILITY", + "SpecialAbilityInfo": "TID_PET_PHOENIX_ABILITY_INFO", + "SpecialAbilityType": "PhoenixEgg", + "DoesNotOpenCC": true, + "LeashLength": 0, + "DefaultSkin": "PetPhoenixEggDefault", + "HeroDeathAbilityLevel": 2, + "HeroDeathAbilityType": "ResurrectHero", + "HeroDeathAbilitySpell": "TroopImmortality", + "RecallWithMaster": true + }, + "10": { + "TroopLevel": 10, + "TID": "TID_PET_PHOENIX", + "InfoTID": "TID_PET_PHOENIX_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 8, + "Speed": 300, + "Hitpoints": 8900, + "TrainingTime": 360, + "TrainingResource": "DarkElixir", + "TrainingCost": 1, + "UpgradeTimeH": 1, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 200000, + "DonateCost": 20, + "AttackRange": 200, + "AttackSpeed": 3000, + "DPS": 0, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_phoenix", + "BigPicture": "unit_pet_phoenix_big", + "BigPictureSWF": "sc/info_pet_phoenix.sc", + "AltProjectile": "PhoenixResurrect", + "DeployEffect": "Phoenix_Egg_Deploy", + "AttackEffect": "Phoenix_Egg_Attack", + "HitEffect": "Phoenix_Egg_Hit", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "AttackCount": 1, + "DieEffect": "Bdragon Die", + "Animation": "PhoenixEggDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "IsSecondaryTroop": true, + "SecondarySpawnDist": 0, + "SpawnIdle": 100, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 0, + "EnemyGroupWeight": 0, + "TriggersTraps": false, + "SpecialAbilityLevel": 1, + "SpecialAbilityName": "TID_PET_PHOENIX_ABILITY", + "SpecialAbilityInfo": "TID_PET_PHOENIX_ABILITY_INFO", + "SpecialAbilityType": "PhoenixEgg", + "DoesNotOpenCC": true, + "LeashLength": 0, + "DefaultSkin": "PetPhoenixEggDefault", + "HeroDeathAbilityLevel": 3, + "HeroDeathAbilityType": "ResurrectHero", + "HeroDeathAbilitySpell": "TroopImmortality", + "RecallWithMaster": true + } + }, + "Poison Lizard": { + "1": { + "TroopLevel": 1, + "TID": "TID_PET_POISON_LIZARD", + "InfoTID": "TID_PET_POISON_LIZARD_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 7, + "Speed": 450, + "Hitpoints": 1250, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 1, + "UpgradeTimeH": 72, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 190000, + "DonateCost": 20, + "AttackRange": 350, + "AttackSpeed": 350, + "DPS": 181, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_poison_lizard", + "BigPicture": "unit_pet_poison_lizard_big", + "BigPictureSWF": "sc/info_pet_poison_lizard.sc", + "Projectile": "fireIguanaProto", + "DeployEffect": "Poison Lizard Deploy", + "AttackEffect": "Poison Lizard Attack", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Poison Lizard Die", + "Animation": "PoisonIguanaDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 4050, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": false, + "SpecialAbilityName": "TID_PET_POISON_LIZARD_ABILITY", + "SpecialAbilityInfo": "TID_PET_POISON_LIZARD_ABILITY_INFO", + "SpecialAbilityType": "PoisonTarget", + "SpecialAbilityAttribute": 1, + "SpecialAbilityAttribute2": 3000, + "SpecialAbilitySpell": "PoisonLizardAttack", + "HeroDamageMultiplier": 100, + "PreferHeroes": true, + "LeashLength": 400, + "DefaultSkin": "PetPoisonIguanaDefault", + "PreferMasterTarget": true, + "PreviewScenario": "Pet4" + }, + "2": { + "TroopLevel": 2, + "TID": "TID_PET_POISON_LIZARD", + "InfoTID": "TID_PET_POISON_LIZARD_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 7, + "Speed": 450, + "Hitpoints": 1300, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 2, + "UpgradeTimeH": 96, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 195000, + "DonateCost": 20, + "AttackRange": 350, + "AttackSpeed": 350, + "DPS": 192, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_poison_lizard", + "BigPicture": "unit_pet_poison_lizard_big", + "BigPictureSWF": "sc/info_pet_poison_lizard.sc", + "Projectile": "fireIguanaProto", + "DeployEffect": "Poison Lizard Deploy", + "AttackEffect": "Poison Lizard Attack", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Poison Lizard Die", + "Animation": "PoisonIguanaDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 4100, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": false, + "SpecialAbilityName": "TID_PET_POISON_LIZARD_ABILITY", + "SpecialAbilityInfo": "TID_PET_POISON_LIZARD_ABILITY_INFO", + "SpecialAbilityType": "PoisonTarget", + "SpecialAbilityAttribute": 1, + "SpecialAbilityAttribute2": 3000, + "SpecialAbilitySpell": "PoisonLizardAttack", + "HeroDamageMultiplier": 100, + "PreferHeroes": true, + "LeashLength": 400, + "DefaultSkin": "PetPoisonIguanaDefault", + "PreferMasterTarget": true, + "PreviewScenario": "Pet4" + }, + "3": { + "TroopLevel": 3, + "TID": "TID_PET_POISON_LIZARD", + "InfoTID": "TID_PET_POISON_LIZARD_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 7, + "Speed": 450, + "Hitpoints": 1350, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 3, + "UpgradeTimeH": 120, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 200000, + "DonateCost": 20, + "AttackRange": 350, + "AttackSpeed": 350, + "DPS": 203, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_poison_lizard", + "BigPicture": "unit_pet_poison_lizard_big", + "BigPictureSWF": "sc/info_pet_poison_lizard.sc", + "Projectile": "fireIguanaProto", + "DeployEffect": "Poison Lizard Deploy", + "AttackEffect": "Poison Lizard Attack", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Poison Lizard Die", + "Animation": "PoisonIguanaDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 4150, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": false, + "SpecialAbilityName": "TID_PET_POISON_LIZARD_ABILITY", + "SpecialAbilityInfo": "TID_PET_POISON_LIZARD_ABILITY_INFO", + "SpecialAbilityType": "PoisonTarget", + "SpecialAbilityAttribute": 1, + "SpecialAbilityAttribute2": 3000, + "SpecialAbilitySpell": "PoisonLizardAttack", + "HeroDamageMultiplier": 100, + "PreferHeroes": true, + "LeashLength": 400, + "DefaultSkin": "PetPoisonIguanaDefault", + "PreferMasterTarget": true, + "PreviewScenario": "Pet4" + }, + "4": { + "TroopLevel": 4, + "TID": "TID_PET_POISON_LIZARD", + "InfoTID": "TID_PET_POISON_LIZARD_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 7, + "Speed": 450, + "Hitpoints": 1400, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 4, + "UpgradeTimeH": 132, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 210000, + "DonateCost": 20, + "AttackRange": 350, + "AttackSpeed": 350, + "DPS": 214, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_poison_lizard", + "BigPicture": "unit_pet_poison_lizard_big", + "BigPictureSWF": "sc/info_pet_poison_lizard.sc", + "Projectile": "fireIguanaProto", + "DeployEffect": "Poison Lizard Deploy", + "AttackEffect": "Poison Lizard Attack", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Poison Lizard Die", + "Animation": "PoisonIguanaDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 4200, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": false, + "SpecialAbilityName": "TID_PET_POISON_LIZARD_ABILITY", + "SpecialAbilityInfo": "TID_PET_POISON_LIZARD_ABILITY_INFO", + "SpecialAbilityType": "PoisonTarget", + "SpecialAbilityAttribute": 1, + "SpecialAbilityAttribute2": 3000, + "SpecialAbilitySpell": "PoisonLizardAttack", + "HeroDamageMultiplier": 100, + "PreferHeroes": true, + "LeashLength": 400, + "DefaultSkin": "PetPoisonIguanaDefault", + "PreferMasterTarget": true, + "PreviewScenario": "Pet4" + }, + "5": { + "TroopLevel": 5, + "TID": "TID_PET_POISON_LIZARD", + "InfoTID": "TID_PET_POISON_LIZARD_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 7, + "Speed": 450, + "Hitpoints": 1450, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 5, + "UpgradeTimeH": 144, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 215000, + "DonateCost": 20, + "AttackRange": 350, + "AttackSpeed": 350, + "DPS": 225, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_poison_lizard", + "BigPicture": "unit_pet_poison_lizard_big", + "BigPictureSWF": "sc/info_pet_poison_lizard.sc", + "Projectile": "fireIguanaProto", + "DeployEffect": "Poison Lizard Deploy", + "AttackEffect": "Poison Lizard Attack", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Poison Lizard Die", + "Animation": "PoisonIguanaDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 4250, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": false, + "SpecialAbilityName": "TID_PET_POISON_LIZARD_ABILITY", + "SpecialAbilityInfo": "TID_PET_POISON_LIZARD_ABILITY_INFO", + "SpecialAbilityType": "PoisonTarget", + "SpecialAbilityAttribute": 2, + "SpecialAbilityAttribute2": 3000, + "SpecialAbilitySpell": "PoisonLizardAttack", + "HeroDamageMultiplier": 100, + "PreferHeroes": true, + "LeashLength": 400, + "DefaultSkin": "PetPoisonIguanaDefault", + "PreferMasterTarget": true, + "PreviewScenario": "Pet4" + }, + "6": { + "TroopLevel": 6, + "TID": "TID_PET_POISON_LIZARD", + "InfoTID": "TID_PET_POISON_LIZARD_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 7, + "Speed": 450, + "Hitpoints": 1500, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 6, + "UpgradeTimeH": 156, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 225000, + "DonateCost": 20, + "AttackRange": 350, + "AttackSpeed": 350, + "DPS": 236, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_poison_lizard", + "BigPicture": "unit_pet_poison_lizard_big", + "BigPictureSWF": "sc/info_pet_poison_lizard.sc", + "Projectile": "fireIguanaProto", + "DeployEffect": "Poison Lizard Deploy", + "AttackEffect": "Poison Lizard Attack", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Poison Lizard Die", + "Animation": "PoisonIguanaDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 4300, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": false, + "SpecialAbilityName": "TID_PET_POISON_LIZARD_ABILITY", + "SpecialAbilityInfo": "TID_PET_POISON_LIZARD_ABILITY_INFO", + "SpecialAbilityType": "PoisonTarget", + "SpecialAbilityAttribute": 2, + "SpecialAbilityAttribute2": 3000, + "SpecialAbilitySpell": "PoisonLizardAttack", + "HeroDamageMultiplier": 100, + "PreferHeroes": true, + "LeashLength": 400, + "DefaultSkin": "PetPoisonIguanaDefault", + "PreferMasterTarget": true, + "PreviewScenario": "Pet4" + }, + "7": { + "TroopLevel": 7, + "TID": "TID_PET_POISON_LIZARD", + "InfoTID": "TID_PET_POISON_LIZARD_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 7, + "Speed": 450, + "Hitpoints": 1550, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 7, + "UpgradeTimeH": 168, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 230000, + "DonateCost": 20, + "AttackRange": 350, + "AttackSpeed": 350, + "DPS": 247, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_poison_lizard", + "BigPicture": "unit_pet_poison_lizard_big", + "BigPictureSWF": "sc/info_pet_poison_lizard.sc", + "Projectile": "fireIguanaProto", + "DeployEffect": "Poison Lizard Deploy", + "AttackEffect": "Poison Lizard Attack", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Poison Lizard Die", + "Animation": "PoisonIguanaDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 4350, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": false, + "SpecialAbilityName": "TID_PET_POISON_LIZARD_ABILITY", + "SpecialAbilityInfo": "TID_PET_POISON_LIZARD_ABILITY_INFO", + "SpecialAbilityType": "PoisonTarget", + "SpecialAbilityAttribute": 2, + "SpecialAbilityAttribute2": 3000, + "SpecialAbilitySpell": "PoisonLizardAttack", + "HeroDamageMultiplier": 100, + "PreferHeroes": true, + "LeashLength": 400, + "DefaultSkin": "PetPoisonIguanaDefault", + "PreferMasterTarget": true, + "PreviewScenario": "Pet4" + }, + "8": { + "TroopLevel": 8, + "TID": "TID_PET_POISON_LIZARD", + "InfoTID": "TID_PET_POISON_LIZARD_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 7, + "Speed": 450, + "Hitpoints": 1600, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 8, + "UpgradeTimeH": 180, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 240000, + "DonateCost": 20, + "AttackRange": 350, + "AttackSpeed": 350, + "DPS": 258, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_poison_lizard", + "BigPicture": "unit_pet_poison_lizard_big", + "BigPictureSWF": "sc/info_pet_poison_lizard.sc", + "Projectile": "fireIguanaProto", + "DeployEffect": "Poison Lizard Deploy", + "AttackEffect": "Poison Lizard Attack", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Poison Lizard Die", + "Animation": "PoisonIguanaDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 4400, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": false, + "SpecialAbilityName": "TID_PET_POISON_LIZARD_ABILITY", + "SpecialAbilityInfo": "TID_PET_POISON_LIZARD_ABILITY_INFO", + "SpecialAbilityType": "PoisonTarget", + "SpecialAbilityAttribute": 2, + "SpecialAbilityAttribute2": 3000, + "SpecialAbilitySpell": "PoisonLizardAttack", + "HeroDamageMultiplier": 100, + "PreferHeroes": true, + "LeashLength": 400, + "DefaultSkin": "PetPoisonIguanaDefault", + "PreferMasterTarget": true, + "PreviewScenario": "Pet4" + }, + "9": { + "TroopLevel": 9, + "TID": "TID_PET_POISON_LIZARD", + "InfoTID": "TID_PET_POISON_LIZARD_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 7, + "Speed": 450, + "Hitpoints": 1650, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 9, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 245000, + "DonateCost": 20, + "AttackRange": 350, + "AttackSpeed": 350, + "DPS": 269, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_poison_lizard", + "BigPicture": "unit_pet_poison_lizard_big", + "BigPictureSWF": "sc/info_pet_poison_lizard.sc", + "Projectile": "fireIguanaProto", + "DeployEffect": "Poison Lizard Deploy", + "AttackEffect": "Poison Lizard Attack", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Poison Lizard Die", + "Animation": "PoisonIguanaDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 4450, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": false, + "SpecialAbilityName": "TID_PET_POISON_LIZARD_ABILITY", + "SpecialAbilityInfo": "TID_PET_POISON_LIZARD_ABILITY_INFO", + "SpecialAbilityType": "PoisonTarget", + "SpecialAbilityAttribute": 2, + "SpecialAbilityAttribute2": 3000, + "SpecialAbilitySpell": "PoisonLizardAttack", + "HeroDamageMultiplier": 100, + "PreferHeroes": true, + "LeashLength": 400, + "DefaultSkin": "PetPoisonIguanaDefault", + "PreferMasterTarget": true, + "PreviewScenario": "Pet4" + }, + "10": { + "TroopLevel": 10, + "TID": "TID_PET_POISON_LIZARD", + "InfoTID": "TID_PET_POISON_LIZARD_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 7, + "Speed": 450, + "Hitpoints": 1700, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 10, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 245000, + "DonateCost": 20, + "AttackRange": 350, + "AttackSpeed": 350, + "DPS": 280, + "PreferedTargetDamageMod": 1, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_poison_lizard", + "BigPicture": "unit_pet_poison_lizard_big", + "BigPictureSWF": "sc/info_pet_poison_lizard.sc", + "Projectile": "fireIguanaProto", + "DeployEffect": "Poison Lizard Deploy", + "AttackEffect": "Poison Lizard Attack", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Poison Lizard Die", + "Animation": "PoisonIguanaDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 4500, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": false, + "SpecialAbilityName": "TID_PET_POISON_LIZARD_ABILITY", + "SpecialAbilityInfo": "TID_PET_POISON_LIZARD_ABILITY_INFO", + "SpecialAbilityType": "PoisonTarget", + "SpecialAbilityAttribute": 3, + "SpecialAbilityAttribute2": 3000, + "SpecialAbilitySpell": "PoisonLizardAttack", + "HeroDamageMultiplier": 100, + "PreferHeroes": true, + "LeashLength": 400, + "DefaultSkin": "PetPoisonIguanaDefault", + "PreferMasterTarget": true, + "PreviewScenario": "Pet4" + } + }, + "Diggy": { + "1": { + "TroopLevel": 1, + "TID": "TID_PET_DIGGY", + "InfoTID": "TID_PET_DIGGY_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 6, + "Speed": 400, + "Hitpoints": 3650, + "TrainingTime": 120, + "TrainingResource": "DarkElixir", + "TrainingCost": 1, + "UpgradeTimeH": 72, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 185000, + "DonateCost": 20, + "AttackRange": 80, + "AttackSpeed": 1100, + "DPS": 105, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_diggy", + "BigPicture": "unit_pet_diggy_big", + "BigPictureSWF": "sc/info_pet_diggy.sc", + "DeployEffect": "Diggy Deploy", + "AttackEffect": "Diggy Attack", + "HitEffect": "Diggy Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Diggy Die", + "Animation": "DiggyDefault", + "IsJumper": false, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 768, + "StrengthWeight": 2135, + "TargetedEffectOffset": "-50", + "IsUnderground": true, + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "UndergroundEffect": "Diggy Move", + "BecomesTargetableEffect": "Diggy Appear", + "HideEffect": "Diggy Hide", + "SpecialAbilityName": "TID_PET_DIGGY_ABILITY", + "SpecialAbilityInfo": "TID_PET_DIGGY_ABILITY_INFO", + "SpecialAbilityType": "StunTargetOnSurfacing", + "SpecialAbilityAttribute": 2000, + "SpecialAbilityEffect": "Stun_Building_2s", + "LeashLength": 0, + "DefaultSkin": "PetDiggyDefault", + "HeroDeathAbilityLevel": 1, + "HeroDeathAbilityType": "SwitchHero", + "PreferMasterTarget": true, + "PreviewScenario": "Pet1" + }, + "2": { + "TroopLevel": 2, + "TID": "TID_PET_DIGGY", + "InfoTID": "TID_PET_DIGGY_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 6, + "Speed": 400, + "Hitpoints": 3800, + "TrainingTime": 120, + "TrainingResource": "DarkElixir", + "TrainingCost": 2, + "UpgradeTimeH": 96, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 195000, + "DonateCost": 20, + "AttackRange": 80, + "AttackSpeed": 1100, + "DPS": 110, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_diggy", + "BigPicture": "unit_pet_diggy_big", + "BigPictureSWF": "sc/info_pet_diggy.sc", + "DeployEffect": "Diggy Deploy", + "AttackEffect": "Diggy Attack", + "HitEffect": "Diggy Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Diggy Die", + "Animation": "DiggyDefault", + "IsJumper": false, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 768, + "StrengthWeight": 2170, + "TargetedEffectOffset": "-50", + "IsUnderground": true, + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "UndergroundEffect": "Diggy Move", + "BecomesTargetableEffect": "Diggy Appear", + "HideEffect": "Diggy Hide", + "SpecialAbilityName": "TID_PET_DIGGY_ABILITY", + "SpecialAbilityInfo": "TID_PET_DIGGY_ABILITY_INFO", + "SpecialAbilityType": "StunTargetOnSurfacing", + "SpecialAbilityAttribute": 2000, + "SpecialAbilityEffect": "Stun_Building_2s", + "LeashLength": 0, + "DefaultSkin": "PetDiggyDefault", + "HeroDeathAbilityLevel": 1, + "HeroDeathAbilityType": "SwitchHero", + "PreferMasterTarget": true, + "PreviewScenario": "Pet1" + }, + "3": { + "TroopLevel": 3, + "TID": "TID_PET_DIGGY", + "InfoTID": "TID_PET_DIGGY_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 6, + "Speed": 400, + "Hitpoints": 3950, + "TrainingTime": 120, + "TrainingResource": "DarkElixir", + "TrainingCost": 3, + "UpgradeTimeH": 120, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 200000, + "DonateCost": 20, + "AttackRange": 80, + "AttackSpeed": 1100, + "DPS": 115, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_diggy", + "BigPicture": "unit_pet_diggy_big", + "BigPictureSWF": "sc/info_pet_diggy.sc", + "DeployEffect": "Diggy Deploy", + "AttackEffect": "Diggy Attack", + "HitEffect": "Diggy Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Diggy Die", + "Animation": "DiggyDefault", + "IsJumper": false, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 768, + "StrengthWeight": 2205, + "TargetedEffectOffset": "-50", + "IsUnderground": true, + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "UndergroundEffect": "Diggy Move", + "BecomesTargetableEffect": "Diggy Appear", + "HideEffect": "Diggy Hide", + "SpecialAbilityName": "TID_PET_DIGGY_ABILITY", + "SpecialAbilityInfo": "TID_PET_DIGGY_ABILITY_INFO", + "SpecialAbilityType": "StunTargetOnSurfacing", + "SpecialAbilityAttribute": 2000, + "SpecialAbilityEffect": "Stun_Building_2s", + "LeashLength": 0, + "DefaultSkin": "PetDiggyDefault", + "HeroDeathAbilityLevel": 1, + "HeroDeathAbilityType": "SwitchHero", + "PreferMasterTarget": true, + "PreviewScenario": "Pet1" + }, + "4": { + "TroopLevel": 4, + "TID": "TID_PET_DIGGY", + "InfoTID": "TID_PET_DIGGY_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 6, + "Speed": 400, + "Hitpoints": 4100, + "TrainingTime": 120, + "TrainingResource": "DarkElixir", + "TrainingCost": 4, + "UpgradeTimeH": 132, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 210000, + "DonateCost": 20, + "AttackRange": 80, + "AttackSpeed": 1100, + "DPS": 120, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_diggy", + "BigPicture": "unit_pet_diggy_big", + "BigPictureSWF": "sc/info_pet_diggy.sc", + "DeployEffect": "Diggy Deploy", + "AttackEffect": "Diggy Attack", + "HitEffect": "Diggy Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Diggy Die", + "Animation": "DiggyDefault", + "IsJumper": false, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 768, + "StrengthWeight": 2240, + "TargetedEffectOffset": "-50", + "IsUnderground": true, + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "UndergroundEffect": "Diggy Move", + "BecomesTargetableEffect": "Diggy Appear", + "HideEffect": "Diggy Hide", + "SpecialAbilityName": "TID_PET_DIGGY_ABILITY", + "SpecialAbilityInfo": "TID_PET_DIGGY_ABILITY_INFO", + "SpecialAbilityType": "StunTargetOnSurfacing", + "SpecialAbilityAttribute": 2000, + "SpecialAbilityEffect": "Stun_Building_2s", + "LeashLength": 0, + "DefaultSkin": "PetDiggyDefault", + "HeroDeathAbilityLevel": 1, + "HeroDeathAbilityType": "SwitchHero", + "PreferMasterTarget": true, + "PreviewScenario": "Pet1" + }, + "5": { + "TroopLevel": 5, + "TID": "TID_PET_DIGGY", + "InfoTID": "TID_PET_DIGGY_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 6, + "Speed": 400, + "Hitpoints": 4250, + "TrainingTime": 120, + "TrainingResource": "DarkElixir", + "TrainingCost": 5, + "UpgradeTimeH": 144, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 215000, + "DonateCost": 20, + "AttackRange": 80, + "AttackSpeed": 1100, + "DPS": 125, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_diggy", + "BigPicture": "unit_pet_diggy_big", + "BigPictureSWF": "sc/info_pet_diggy.sc", + "DeployEffect": "Diggy Deploy", + "AttackEffect": "Diggy Attack", + "HitEffect": "Diggy Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Diggy Die", + "Animation": "DiggyDefault", + "IsJumper": false, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 768, + "StrengthWeight": 2275, + "TargetedEffectOffset": "-50", + "IsUnderground": true, + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "UndergroundEffect": "Diggy Move", + "BecomesTargetableEffect": "Diggy Appear", + "HideEffect": "Diggy Hide", + "SpecialAbilityName": "TID_PET_DIGGY_ABILITY", + "SpecialAbilityInfo": "TID_PET_DIGGY_ABILITY_INFO", + "SpecialAbilityType": "StunTargetOnSurfacing", + "SpecialAbilityAttribute": 2500, + "SpecialAbilityEffect": "Stun_Building_2_5s", + "LeashLength": 0, + "DefaultSkin": "PetDiggyDefault", + "HeroDeathAbilityLevel": 1, + "HeroDeathAbilityType": "SwitchHero", + "PreferMasterTarget": true, + "PreviewScenario": "Pet1" + }, + "6": { + "TroopLevel": 6, + "TID": "TID_PET_DIGGY", + "InfoTID": "TID_PET_DIGGY_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 6, + "Speed": 400, + "Hitpoints": 4400, + "TrainingTime": 120, + "TrainingResource": "DarkElixir", + "TrainingCost": 6, + "UpgradeTimeH": 156, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 225000, + "DonateCost": 20, + "AttackRange": 80, + "AttackSpeed": 1100, + "DPS": 130, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_diggy", + "BigPicture": "unit_pet_diggy_big", + "BigPictureSWF": "sc/info_pet_diggy.sc", + "DeployEffect": "Diggy Deploy", + "AttackEffect": "Diggy Attack", + "HitEffect": "Diggy Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Diggy Die", + "Animation": "DiggyDefault", + "IsJumper": false, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 768, + "StrengthWeight": 2310, + "TargetedEffectOffset": "-50", + "IsUnderground": true, + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "UndergroundEffect": "Diggy Move", + "BecomesTargetableEffect": "Diggy Appear", + "HideEffect": "Diggy Hide", + "SpecialAbilityName": "TID_PET_DIGGY_ABILITY", + "SpecialAbilityInfo": "TID_PET_DIGGY_ABILITY_INFO", + "SpecialAbilityType": "StunTargetOnSurfacing", + "SpecialAbilityAttribute": 2500, + "SpecialAbilityEffect": "Stun_Building_2_5s", + "LeashLength": 0, + "DefaultSkin": "PetDiggyDefault", + "HeroDeathAbilityLevel": 1, + "HeroDeathAbilityType": "SwitchHero", + "PreferMasterTarget": true, + "PreviewScenario": "Pet1" + }, + "7": { + "TroopLevel": 7, + "TID": "TID_PET_DIGGY", + "InfoTID": "TID_PET_DIGGY_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 6, + "Speed": 400, + "Hitpoints": 4550, + "TrainingTime": 120, + "TrainingResource": "DarkElixir", + "TrainingCost": 7, + "UpgradeTimeH": 168, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 230000, + "DonateCost": 20, + "AttackRange": 80, + "AttackSpeed": 1100, + "DPS": 135, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_diggy", + "BigPicture": "unit_pet_diggy_big", + "BigPictureSWF": "sc/info_pet_diggy.sc", + "DeployEffect": "Diggy Deploy", + "AttackEffect": "Diggy Attack", + "HitEffect": "Diggy Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Diggy Die", + "Animation": "DiggyDefault", + "IsJumper": false, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 768, + "StrengthWeight": 2345, + "TargetedEffectOffset": "-50", + "IsUnderground": true, + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "UndergroundEffect": "Diggy Move", + "BecomesTargetableEffect": "Diggy Appear", + "HideEffect": "Diggy Hide", + "SpecialAbilityName": "TID_PET_DIGGY_ABILITY", + "SpecialAbilityInfo": "TID_PET_DIGGY_ABILITY_INFO", + "SpecialAbilityType": "StunTargetOnSurfacing", + "SpecialAbilityAttribute": 2500, + "SpecialAbilityEffect": "Stun_Building_2_5s", + "LeashLength": 0, + "DefaultSkin": "PetDiggyDefault", + "HeroDeathAbilityLevel": 1, + "HeroDeathAbilityType": "SwitchHero", + "PreferMasterTarget": true, + "PreviewScenario": "Pet1" + }, + "8": { + "TroopLevel": 8, + "TID": "TID_PET_DIGGY", + "InfoTID": "TID_PET_DIGGY_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 6, + "Speed": 400, + "Hitpoints": 4700, + "TrainingTime": 120, + "TrainingResource": "DarkElixir", + "TrainingCost": 8, + "UpgradeTimeH": 180, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 240000, + "DonateCost": 20, + "AttackRange": 80, + "AttackSpeed": 1100, + "DPS": 140, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_diggy", + "BigPicture": "unit_pet_diggy_big", + "BigPictureSWF": "sc/info_pet_diggy.sc", + "DeployEffect": "Diggy Deploy", + "AttackEffect": "Diggy Attack", + "HitEffect": "Diggy Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Diggy Die", + "Animation": "DiggyDefault", + "IsJumper": false, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 768, + "StrengthWeight": 2380, + "TargetedEffectOffset": "-50", + "IsUnderground": true, + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "UndergroundEffect": "Diggy Move", + "BecomesTargetableEffect": "Diggy Appear", + "HideEffect": "Diggy Hide", + "SpecialAbilityName": "TID_PET_DIGGY_ABILITY", + "SpecialAbilityInfo": "TID_PET_DIGGY_ABILITY_INFO", + "SpecialAbilityType": "StunTargetOnSurfacing", + "SpecialAbilityAttribute": 2500, + "SpecialAbilityEffect": "Stun_Building_2_5s", + "LeashLength": 0, + "DefaultSkin": "PetDiggyDefault", + "HeroDeathAbilityLevel": 1, + "HeroDeathAbilityType": "SwitchHero", + "PreferMasterTarget": true, + "PreviewScenario": "Pet1" + }, + "9": { + "TroopLevel": 9, + "TID": "TID_PET_DIGGY", + "InfoTID": "TID_PET_DIGGY_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 6, + "Speed": 400, + "Hitpoints": 4850, + "TrainingTime": 120, + "TrainingResource": "DarkElixir", + "TrainingCost": 9, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 245000, + "DonateCost": 20, + "AttackRange": 80, + "AttackSpeed": 1100, + "DPS": 145, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_diggy", + "BigPicture": "unit_pet_diggy_big", + "BigPictureSWF": "sc/info_pet_diggy.sc", + "DeployEffect": "Diggy Deploy", + "AttackEffect": "Diggy Attack", + "HitEffect": "Diggy Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Diggy Die", + "Animation": "DiggyDefault", + "IsJumper": false, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 768, + "StrengthWeight": 2415, + "TargetedEffectOffset": "-50", + "IsUnderground": true, + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "UndergroundEffect": "Diggy Move", + "BecomesTargetableEffect": "Diggy Appear", + "HideEffect": "Diggy Hide", + "SpecialAbilityName": "TID_PET_DIGGY_ABILITY", + "SpecialAbilityInfo": "TID_PET_DIGGY_ABILITY_INFO", + "SpecialAbilityType": "StunTargetOnSurfacing", + "SpecialAbilityAttribute": 2500, + "SpecialAbilityEffect": "Stun_Building_2_5s", + "LeashLength": 0, + "DefaultSkin": "PetDiggyDefault", + "HeroDeathAbilityLevel": 1, + "HeroDeathAbilityType": "SwitchHero", + "PreferMasterTarget": true, + "PreviewScenario": "Pet1" + }, + "10": { + "TroopLevel": 10, + "TID": "TID_PET_DIGGY", + "InfoTID": "TID_PET_DIGGY_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 6, + "Speed": 400, + "Hitpoints": 5000, + "TrainingTime": 120, + "TrainingResource": "DarkElixir", + "TrainingCost": 10, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 245000, + "DonateCost": 20, + "AttackRange": 80, + "AttackSpeed": 1100, + "DPS": 150, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_diggy", + "BigPicture": "unit_pet_diggy_big", + "BigPictureSWF": "sc/info_pet_diggy.sc", + "DeployEffect": "Diggy Deploy", + "AttackEffect": "Diggy Attack", + "HitEffect": "Diggy Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Diggy Die", + "Animation": "DiggyDefault", + "IsJumper": false, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 768, + "StrengthWeight": 2450, + "TargetedEffectOffset": "-50", + "IsUnderground": true, + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "UndergroundEffect": "Diggy Move", + "BecomesTargetableEffect": "Diggy Appear", + "HideEffect": "Diggy Hide", + "SpecialAbilityName": "TID_PET_DIGGY_ABILITY", + "SpecialAbilityInfo": "TID_PET_DIGGY_ABILITY_INFO", + "SpecialAbilityType": "StunTargetOnSurfacing", + "SpecialAbilityAttribute": 3000, + "SpecialAbilityEffect": "Stun_Building_3s", + "LeashLength": 0, + "DefaultSkin": "PetDiggyDefault", + "HeroDeathAbilityLevel": 1, + "HeroDeathAbilityType": "SwitchHero", + "PreferMasterTarget": true, + "PreviewScenario": "Pet1" + } + }, + "Frosty": { + "1": { + "TroopLevel": 1, + "TID": "TID_PET_FROSTY", + "InfoTID": "TID_PET_FROSTY_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 5, + "Speed": 300, + "Hitpoints": 2350, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 1, + "UpgradeTimeH": 72, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 185000, + "DonateCost": 20, + "AttackRange": 350, + "AttackSpeed": 1200, + "DPS": 94, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_frosty", + "BigPicture": "unit_pet_frosty_big", + "BigPictureSWF": "sc/info_pet_frosty.sc", + "Projectile": "Frosty_projectile", + "DeployEffect": "Frosty Deploy", + "AttackEffect": "Frosty Attack", + "HitEffect": "IceWizard Hit1", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Frosty Die", + "Animation": "FrostyDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SecondarySpawnDist": 150, + "SummonTroop": "Icemite", + "SummonTroopCount": 1, + "SummonCooldown": 8000, + "SummonEffect": "Frosty Summon", + "SummonLimit": 4, + "SpawnIdle": 100, + "StrengthWeight": 3270, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_FROSTY_ABILITY", + "SpecialAbilityInfo": "TID_PET_FROSTY_ABILITY_INFO", + "FrostOnHitTime": 4000, + "FrostOnHitPercent": 50, + "LeashLength": 100, + "DefaultSkin": "PetFrostyDefault", + "PreviewScenario": "Pet1" + }, + "2": { + "TroopLevel": 2, + "TID": "TID_PET_FROSTY", + "InfoTID": "TID_PET_FROSTY_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 5, + "Speed": 300, + "Hitpoints": 2450, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 2, + "UpgradeTimeH": 96, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 190000, + "DonateCost": 20, + "AttackRange": 350, + "AttackSpeed": 1200, + "DPS": 98, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_frosty", + "BigPicture": "unit_pet_frosty_big", + "BigPictureSWF": "sc/info_pet_frosty.sc", + "Projectile": "Frosty_projectile", + "DeployEffect": "Frosty Deploy", + "AttackEffect": "Frosty Attack", + "HitEffect": "IceWizard Hit1", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Frosty Die", + "Animation": "FrostyDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SecondarySpawnDist": 150, + "SummonTroop": "Icemite", + "SummonTroopCount": 1, + "SummonCooldown": 8000, + "SummonEffect": "Frosty Summon", + "SummonLimit": 4, + "SpawnIdle": 100, + "StrengthWeight": 3300, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_FROSTY_ABILITY", + "SpecialAbilityInfo": "TID_PET_FROSTY_ABILITY_INFO", + "FrostOnHitTime": 4000, + "FrostOnHitPercent": 50, + "LeashLength": 100, + "DefaultSkin": "PetFrostyDefault", + "PreviewScenario": "Pet1" + }, + "3": { + "TroopLevel": 3, + "TID": "TID_PET_FROSTY", + "InfoTID": "TID_PET_FROSTY_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 5, + "Speed": 300, + "Hitpoints": 2550, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 3, + "UpgradeTimeH": 120, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 200000, + "DonateCost": 20, + "AttackRange": 350, + "AttackSpeed": 1200, + "DPS": 102, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_frosty", + "BigPicture": "unit_pet_frosty_big", + "BigPictureSWF": "sc/info_pet_frosty.sc", + "Projectile": "Frosty_projectile", + "DeployEffect": "Frosty Deploy", + "AttackEffect": "Frosty Attack", + "HitEffect": "IceWizard Hit1", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Frosty Die", + "Animation": "FrostyDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SecondarySpawnDist": 150, + "SummonTroop": "Icemite", + "SummonTroopCount": 1, + "SummonCooldown": 8000, + "SummonEffect": "Frosty Summon", + "SummonLimit": 4, + "SpawnIdle": 100, + "StrengthWeight": 3330, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_FROSTY_ABILITY", + "SpecialAbilityInfo": "TID_PET_FROSTY_ABILITY_INFO", + "FrostOnHitTime": 4000, + "FrostOnHitPercent": 50, + "LeashLength": 100, + "DefaultSkin": "PetFrostyDefault", + "PreviewScenario": "Pet1" + }, + "4": { + "TroopLevel": 4, + "TID": "TID_PET_FROSTY", + "InfoTID": "TID_PET_FROSTY_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 5, + "Speed": 300, + "Hitpoints": 2650, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 4, + "UpgradeTimeH": 132, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 210000, + "DonateCost": 20, + "AttackRange": 350, + "AttackSpeed": 1200, + "DPS": 106, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_frosty", + "BigPicture": "unit_pet_frosty_big", + "BigPictureSWF": "sc/info_pet_frosty.sc", + "Projectile": "Frosty_projectile", + "DeployEffect": "Frosty Deploy", + "AttackEffect": "Frosty Attack", + "HitEffect": "IceWizard Hit1", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Frosty Die", + "Animation": "FrostyDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SecondarySpawnDist": 150, + "SummonTroop": "Icemite", + "SummonTroopCount": 1, + "SummonCooldown": 8000, + "SummonEffect": "Frosty Summon", + "SummonLimit": 4, + "SpawnIdle": 100, + "StrengthWeight": 3360, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_FROSTY_ABILITY", + "SpecialAbilityInfo": "TID_PET_FROSTY_ABILITY_INFO", + "FrostOnHitTime": 4000, + "FrostOnHitPercent": 50, + "LeashLength": 100, + "DefaultSkin": "PetFrostyDefault", + "PreviewScenario": "Pet1" + }, + "5": { + "TroopLevel": 5, + "TID": "TID_PET_FROSTY", + "InfoTID": "TID_PET_FROSTY_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 5, + "Speed": 300, + "Hitpoints": 2800, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 5, + "UpgradeTimeH": 144, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 215000, + "DonateCost": 20, + "AttackRange": 350, + "AttackSpeed": 1200, + "DPS": 110, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_frosty", + "BigPicture": "unit_pet_frosty_big", + "BigPictureSWF": "sc/info_pet_frosty.sc", + "Projectile": "Frosty_projectile", + "DeployEffect": "Frosty Deploy", + "AttackEffect": "Frosty Attack", + "HitEffect": "IceWizard Hit1", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Frosty Die", + "Animation": "FrostyDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SecondarySpawnDist": 150, + "SummonTroop": "Icemite", + "SummonTroopCount": 2, + "SummonCooldown": 8000, + "SummonEffect": "Frosty Summon", + "SummonLimit": 8, + "SpawnIdle": 100, + "StrengthWeight": 3390, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_FROSTY_ABILITY", + "SpecialAbilityInfo": "TID_PET_FROSTY_ABILITY_INFO", + "FrostOnHitTime": 4000, + "FrostOnHitPercent": 50, + "LeashLength": 100, + "DefaultSkin": "PetFrostyDefault", + "PreviewScenario": "Pet1" + }, + "6": { + "TroopLevel": 6, + "TID": "TID_PET_FROSTY", + "InfoTID": "TID_PET_FROSTY_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 5, + "Speed": 300, + "Hitpoints": 2900, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 6, + "UpgradeTimeH": 156, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 225000, + "DonateCost": 20, + "AttackRange": 350, + "AttackSpeed": 1200, + "DPS": 114, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_frosty", + "BigPicture": "unit_pet_frosty_big", + "BigPictureSWF": "sc/info_pet_frosty.sc", + "Projectile": "Frosty_projectile", + "DeployEffect": "Frosty Deploy", + "AttackEffect": "Frosty Attack", + "HitEffect": "IceWizard Hit1", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Frosty Die", + "Animation": "FrostyDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SecondarySpawnDist": 150, + "SummonTroop": "Icemite", + "SummonTroopCount": 2, + "SummonCooldown": 8000, + "SummonEffect": "Frosty Summon", + "SummonLimit": 8, + "SpawnIdle": 100, + "StrengthWeight": 3420, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_FROSTY_ABILITY", + "SpecialAbilityInfo": "TID_PET_FROSTY_ABILITY_INFO", + "FrostOnHitTime": 4000, + "FrostOnHitPercent": 50, + "LeashLength": 100, + "DefaultSkin": "PetFrostyDefault", + "PreviewScenario": "Pet1" + }, + "7": { + "TroopLevel": 7, + "TID": "TID_PET_FROSTY", + "InfoTID": "TID_PET_FROSTY_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 5, + "Speed": 300, + "Hitpoints": 3000, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 7, + "UpgradeTimeH": 168, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 235000, + "DonateCost": 20, + "AttackRange": 350, + "AttackSpeed": 1200, + "DPS": 118, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_frosty", + "BigPicture": "unit_pet_frosty_big", + "BigPictureSWF": "sc/info_pet_frosty.sc", + "Projectile": "Frosty_projectile", + "DeployEffect": "Frosty Deploy", + "AttackEffect": "Frosty Attack", + "HitEffect": "IceWizard Hit1", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Frosty Die", + "Animation": "FrostyDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SecondarySpawnDist": 150, + "SummonTroop": "Icemite", + "SummonTroopCount": 2, + "SummonCooldown": 8000, + "SummonEffect": "Frosty Summon", + "SummonLimit": 8, + "SpawnIdle": 100, + "StrengthWeight": 3440, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_FROSTY_ABILITY", + "SpecialAbilityInfo": "TID_PET_FROSTY_ABILITY_INFO", + "FrostOnHitTime": 4000, + "FrostOnHitPercent": 50, + "LeashLength": 100, + "DefaultSkin": "PetFrostyDefault", + "PreviewScenario": "Pet1" + }, + "8": { + "TroopLevel": 8, + "TID": "TID_PET_FROSTY", + "InfoTID": "TID_PET_FROSTY_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 5, + "Speed": 300, + "Hitpoints": 3100, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 8, + "UpgradeTimeH": 180, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 240000, + "DonateCost": 20, + "AttackRange": 350, + "AttackSpeed": 1200, + "DPS": 122, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_frosty", + "BigPicture": "unit_pet_frosty_big", + "BigPictureSWF": "sc/info_pet_frosty.sc", + "Projectile": "Frosty_projectile", + "DeployEffect": "Frosty Deploy", + "AttackEffect": "Frosty Attack", + "HitEffect": "IceWizard Hit1", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Frosty Die", + "Animation": "FrostyDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SecondarySpawnDist": 150, + "SummonTroop": "Icemite", + "SummonTroopCount": 2, + "SummonCooldown": 8000, + "SummonEffect": "Frosty Summon", + "SummonLimit": 8, + "SpawnIdle": 100, + "StrengthWeight": 3470, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_FROSTY_ABILITY", + "SpecialAbilityInfo": "TID_PET_FROSTY_ABILITY_INFO", + "FrostOnHitTime": 4000, + "FrostOnHitPercent": 50, + "LeashLength": 100, + "DefaultSkin": "PetFrostyDefault", + "PreviewScenario": "Pet1" + }, + "9": { + "TroopLevel": 9, + "TID": "TID_PET_FROSTY", + "InfoTID": "TID_PET_FROSTY_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 5, + "Speed": 300, + "Hitpoints": 3200, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 9, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 250000, + "DonateCost": 20, + "AttackRange": 350, + "AttackSpeed": 1200, + "DPS": 126, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_frosty", + "BigPicture": "unit_pet_frosty_big", + "BigPictureSWF": "sc/info_pet_frosty.sc", + "Projectile": "Frosty_projectile", + "DeployEffect": "Frosty Deploy", + "AttackEffect": "Frosty Attack", + "HitEffect": "IceWizard Hit1", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Frosty Die", + "Animation": "FrostyDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SecondarySpawnDist": 150, + "SummonTroop": "Icemite", + "SummonTroopCount": 2, + "SummonCooldown": 8000, + "SummonEffect": "Frosty Summon", + "SummonLimit": 8, + "SpawnIdle": 100, + "StrengthWeight": 3500, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_FROSTY_ABILITY", + "SpecialAbilityInfo": "TID_PET_FROSTY_ABILITY_INFO", + "FrostOnHitTime": 4000, + "FrostOnHitPercent": 50, + "LeashLength": 100, + "DefaultSkin": "PetFrostyDefault", + "PreviewScenario": "Pet1" + }, + "10": { + "TroopLevel": 10, + "TID": "TID_PET_FROSTY", + "InfoTID": "TID_PET_FROSTY_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 5, + "Speed": 300, + "Hitpoints": 3300, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 10, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 250000, + "DonateCost": 20, + "AttackRange": 350, + "AttackSpeed": 1200, + "DPS": 130, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_frosty", + "BigPicture": "unit_pet_frosty_big", + "BigPictureSWF": "sc/info_pet_frosty.sc", + "Projectile": "Frosty_projectile", + "DeployEffect": "Frosty Deploy", + "AttackEffect": "Frosty Attack", + "HitEffect": "IceWizard Hit1", + "IsFlying": false, + "AirTargets": true, + "GroundTargets": true, + "DieEffect": "Frosty Die", + "Animation": "FrostyDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SecondarySpawnDist": 150, + "SummonTroop": "Icemite", + "SummonTroopCount": 2, + "SummonCooldown": 8000, + "SummonEffect": "Frosty Summon", + "SummonLimit": 10, + "SpawnIdle": 100, + "StrengthWeight": 3530, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_FROSTY_ABILITY", + "SpecialAbilityInfo": "TID_PET_FROSTY_ABILITY_INFO", + "FrostOnHitTime": 4000, + "FrostOnHitPercent": 50, + "LeashLength": 100, + "DefaultSkin": "PetFrostyDefault", + "PreviewScenario": "Pet1" + } + }, + "Spirit Fox": { + "1": { + "TroopLevel": 1, + "TID": "TID_PET_SPIRIT_FOX", + "InfoTID": "TID_PET_SPIRIT_FOX_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 9, + "Speed": 300, + "Hitpoints": 1900, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 1, + "UpgradeTimeH": 72, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 225000, + "DonateCost": 20, + "AttackRange": 250, + "AttackSpeed": 1600, + "DPS": 108, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_phasefennec", + "BigPicture": "unit_pet_phasefennec_big", + "BigPictureSWF": "sc/info_pet_phasefennec.sc", + "Projectile": "Fennec_projectile", + "DeployEffect": "Barky Fennec Deploy", + "AttackEffect": "Barky Fennec Attack", + "HitEffect": "Miner Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Barky Fennec Die", + "Animation": "FennecDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 3525, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_SPIRIT_FOX", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_SPIRIT_FOX", + "SpecialAbilities": "PhaseFennecInvis", + "SpecialAbilitiesLevel": 1, + "LeashLength": 200, + "DefaultSkin": "PetFennecDefault", + "PreviewScenario": "Pet2" + }, + "2": { + "TroopLevel": 2, + "TID": "TID_PET_SPIRIT_FOX", + "InfoTID": "TID_PET_SPIRIT_FOX_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 9, + "Speed": 300, + "Hitpoints": 2000, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 2, + "UpgradeTimeH": 96, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 235000, + "DonateCost": 20, + "AttackRange": 250, + "AttackSpeed": 1600, + "DPS": 116, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_phasefennec", + "BigPicture": "unit_pet_phasefennec_big", + "BigPictureSWF": "sc/info_pet_phasefennec.sc", + "Projectile": "Fennec_projectile", + "DeployEffect": "Barky Fennec Deploy", + "AttackEffect": "Barky Fennec Attack", + "HitEffect": "Miner Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Barky Fennec Die", + "Animation": "FennecDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 3550, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_SPIRIT_FOX", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_SPIRIT_FOX", + "SpecialAbilities": "PhaseFennecInvis", + "SpecialAbilitiesLevel": 1, + "LeashLength": 200, + "DefaultSkin": "PetFennecDefault", + "PreviewScenario": "Pet2" + }, + "3": { + "TroopLevel": 3, + "TID": "TID_PET_SPIRIT_FOX", + "InfoTID": "TID_PET_SPIRIT_FOX_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 9, + "Speed": 300, + "Hitpoints": 2100, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 3, + "UpgradeTimeH": 120, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 245000, + "DonateCost": 20, + "AttackRange": 250, + "AttackSpeed": 1600, + "DPS": 124, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_phasefennec", + "BigPicture": "unit_pet_phasefennec_big", + "BigPictureSWF": "sc/info_pet_phasefennec.sc", + "Projectile": "Fennec_projectile", + "DeployEffect": "Barky Fennec Deploy", + "AttackEffect": "Barky Fennec Attack", + "HitEffect": "Miner Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Barky Fennec Die", + "Animation": "FennecDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 3575, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_SPIRIT_FOX", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_SPIRIT_FOX", + "SpecialAbilities": "PhaseFennecInvis", + "SpecialAbilitiesLevel": 1, + "LeashLength": 200, + "DefaultSkin": "PetFennecDefault", + "PreviewScenario": "Pet2" + }, + "4": { + "TroopLevel": 4, + "TID": "TID_PET_SPIRIT_FOX", + "InfoTID": "TID_PET_SPIRIT_FOX_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 9, + "Speed": 300, + "Hitpoints": 2200, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 4, + "UpgradeTimeH": 132, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 255000, + "DonateCost": 20, + "AttackRange": 250, + "AttackSpeed": 1600, + "DPS": 132, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_phasefennec", + "BigPicture": "unit_pet_phasefennec_big", + "BigPictureSWF": "sc/info_pet_phasefennec.sc", + "Projectile": "Fennec_projectile", + "DeployEffect": "Barky Fennec Deploy", + "AttackEffect": "Barky Fennec Attack", + "HitEffect": "Miner Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Barky Fennec Die", + "Animation": "FennecDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 3600, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_SPIRIT_FOX", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_SPIRIT_FOX", + "SpecialAbilities": "PhaseFennecInvis", + "SpecialAbilitiesLevel": 1, + "LeashLength": 200, + "DefaultSkin": "PetFennecDefault", + "PreviewScenario": "Pet2" + }, + "5": { + "TroopLevel": 5, + "TID": "TID_PET_SPIRIT_FOX", + "InfoTID": "TID_PET_SPIRIT_FOX_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 9, + "Speed": 300, + "Hitpoints": 2300, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 5, + "UpgradeTimeH": 144, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 265000, + "DonateCost": 20, + "AttackRange": 250, + "AttackSpeed": 1600, + "DPS": 140, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_phasefennec", + "BigPicture": "unit_pet_phasefennec_big", + "BigPictureSWF": "sc/info_pet_phasefennec.sc", + "Projectile": "Fennec_projectile", + "DeployEffect": "Barky Fennec Deploy", + "AttackEffect": "Barky Fennec Attack", + "HitEffect": "Miner Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Barky Fennec Die", + "Animation": "FennecDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 3625, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_SPIRIT_FOX", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_SPIRIT_FOX", + "SpecialAbilities": "PhaseFennecInvis", + "SpecialAbilitiesLevel": 2, + "LeashLength": 200, + "DefaultSkin": "PetFennecDefault", + "PreviewScenario": "Pet2" + }, + "6": { + "TroopLevel": 6, + "TID": "TID_PET_SPIRIT_FOX", + "InfoTID": "TID_PET_SPIRIT_FOX_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 9, + "Speed": 300, + "Hitpoints": 2400, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 6, + "UpgradeTimeH": 156, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 275000, + "DonateCost": 20, + "AttackRange": 250, + "AttackSpeed": 1600, + "DPS": 148, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_phasefennec", + "BigPicture": "unit_pet_phasefennec_big", + "BigPictureSWF": "sc/info_pet_phasefennec.sc", + "Projectile": "Fennec_projectile", + "DeployEffect": "Barky Fennec Deploy", + "AttackEffect": "Barky Fennec Attack", + "HitEffect": "Miner Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Barky Fennec Die", + "Animation": "FennecDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 3650, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_SPIRIT_FOX", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_SPIRIT_FOX", + "SpecialAbilities": "PhaseFennecInvis", + "SpecialAbilitiesLevel": 2, + "LeashLength": 200, + "DefaultSkin": "PetFennecDefault", + "PreviewScenario": "Pet2" + }, + "7": { + "TroopLevel": 7, + "TID": "TID_PET_SPIRIT_FOX", + "InfoTID": "TID_PET_SPIRIT_FOX_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 9, + "Speed": 300, + "Hitpoints": 2500, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 7, + "UpgradeTimeH": 168, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 285000, + "DonateCost": 20, + "AttackRange": 250, + "AttackSpeed": 1600, + "DPS": 156, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_phasefennec", + "BigPicture": "unit_pet_phasefennec_big", + "BigPictureSWF": "sc/info_pet_phasefennec.sc", + "Projectile": "Fennec_projectile", + "DeployEffect": "Barky Fennec Deploy", + "AttackEffect": "Barky Fennec Attack", + "HitEffect": "Miner Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Barky Fennec Die", + "Animation": "FennecDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 3675, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_SPIRIT_FOX", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_SPIRIT_FOX", + "SpecialAbilities": "PhaseFennecInvis", + "SpecialAbilitiesLevel": 2, + "LeashLength": 200, + "DefaultSkin": "PetFennecDefault", + "PreviewScenario": "Pet2" + }, + "8": { + "TroopLevel": 8, + "TID": "TID_PET_SPIRIT_FOX", + "InfoTID": "TID_PET_SPIRIT_FOX_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 9, + "Speed": 300, + "Hitpoints": 2600, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 8, + "UpgradeTimeH": 180, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 295000, + "DonateCost": 20, + "AttackRange": 250, + "AttackSpeed": 1600, + "DPS": 164, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_phasefennec", + "BigPicture": "unit_pet_phasefennec_big", + "BigPictureSWF": "sc/info_pet_phasefennec.sc", + "Projectile": "Fennec_projectile", + "DeployEffect": "Barky Fennec Deploy", + "AttackEffect": "Barky Fennec Attack", + "HitEffect": "Miner Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Barky Fennec Die", + "Animation": "FennecDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 3700, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_SPIRIT_FOX", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_SPIRIT_FOX", + "SpecialAbilities": "PhaseFennecInvis", + "SpecialAbilitiesLevel": 2, + "LeashLength": 200, + "DefaultSkin": "PetFennecDefault", + "PreviewScenario": "Pet2" + }, + "9": { + "TroopLevel": 9, + "TID": "TID_PET_SPIRIT_FOX", + "InfoTID": "TID_PET_SPIRIT_FOX_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 9, + "Speed": 300, + "Hitpoints": 2700, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 9, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 315000, + "DonateCost": 20, + "AttackRange": 250, + "AttackSpeed": 1600, + "DPS": 172, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_phasefennec", + "BigPicture": "unit_pet_phasefennec_big", + "BigPictureSWF": "sc/info_pet_phasefennec.sc", + "Projectile": "Fennec_projectile", + "DeployEffect": "Barky Fennec Deploy", + "AttackEffect": "Barky Fennec Attack", + "HitEffect": "Miner Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Barky Fennec Die", + "Animation": "FennecDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 3725, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_SPIRIT_FOX", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_SPIRIT_FOX", + "SpecialAbilities": "PhaseFennecInvis", + "SpecialAbilitiesLevel": 2, + "LeashLength": 200, + "DefaultSkin": "PetFennecDefault", + "PreviewScenario": "Pet2" + }, + "10": { + "TroopLevel": 10, + "TID": "TID_PET_SPIRIT_FOX", + "InfoTID": "TID_PET_SPIRIT_FOX_INFO", + "HousingSpace": 20, + "LaboratoryLevel": 9, + "Speed": 300, + "Hitpoints": 2800, + "TrainingTime": 999, + "TrainingResource": "DarkElixir", + "TrainingCost": 10, + "UpgradeTimeH": 192, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 315000, + "DonateCost": 20, + "AttackRange": 250, + "AttackSpeed": 1600, + "DPS": 180, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_unit_pet_phasefennec", + "BigPicture": "unit_pet_phasefennec_big", + "BigPictureSWF": "sc/info_pet_phasefennec.sc", + "Projectile": "Fennec_projectile", + "DeployEffect": "Barky Fennec Deploy", + "AttackEffect": "Barky Fennec Attack", + "HitEffect": "Miner Hit", + "IsFlying": false, + "AirTargets": false, + "GroundTargets": true, + "DieEffect": "Barky Fennec Die", + "Animation": "FennecDefault", + "IsJumper": true, + "MovementOffsetSpeed": 0, + "DisableProduction": true, + "SpawnIdle": 100, + "StrengthWeight": 3750, + "TargetedEffectOffset": "-50", + "FriendlyGroupWeight": 300, + "EnemyGroupWeight": 400, + "TriggersTraps": true, + "SpecialAbilityName": "TID_PET_ABILITY_SPIRIT_FOX", + "SpecialAbilityInfo": "TID_PET_ABILITY_INFO_SPIRIT_FOX", + "SpecialAbilities": "PhaseFennecInvis", + "SpecialAbilitiesLevel": 3, + "LeashLength": 200, + "DefaultSkin": "PetFennecDefault", + "PreviewScenario": "Pet2" + } + } } \ No newline at end of file diff --git a/assets/json/spells.json b/assets/json/spells.json index eeab3238..94f5ee0b 100644 --- a/assets/json/spells.json +++ b/assets/json/spells.json @@ -1,4146 +1,4146 @@ -{ - "Lightning Spell": { - "1": { - "Level": 1, - "TID": "TID_LIGHTNING_STORM", - "InfoTID": "TID_LIGHTNING_STORM_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 1, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 0, - "HitTimeMS": 100, - "UpgradeTimeH": 4, - "UpgradeResource": "Elixir", - "UpgradeCost": 50000, - "Damage": 150, - "Radius": 200, - "NumberOfHits": 1, - "RandomRadius": 0, - "TimeBetweenHitsMS": 400, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_lightning", - "BigPicture": "icon_spell_lightning", - "PreDeployEffect": "Lightning predeploy", - "DeployEffect": "Lightning area small", - "ChargingEffect": "Lightning Spell", - "HitEffect": "Lightning Spell Hit", - "RandomRadiusAffectsOnlyGfx": true, - "FreezeTimeMS": 100, - "StrengthWeight": 30, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_PREFERRED_TARGET_ANY", - "FreezeOuterTimeMS": 100, - "ImmunityTH_CC": true, - "ImmunityStorages": true, - "PreviewScenario": "SpellLightning" - }, - "2": { - "Level": 2, - "TID": "TID_LIGHTNING_STORM", - "InfoTID": "TID_LIGHTNING_STORM_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 1, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 0, - "HitTimeMS": 100, - "UpgradeTimeH": 8, - "UpgradeResource": "Elixir", - "UpgradeCost": 100000, - "Damage": 180, - "Radius": 200, - "NumberOfHits": 1, - "RandomRadius": 0, - "TimeBetweenHitsMS": 400, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_lightning", - "BigPicture": "icon_spell_lightning", - "PreDeployEffect": "Lightning predeploy", - "DeployEffect": "Lightning area small", - "ChargingEffect": "Lightning Spell", - "HitEffect": "Lightning Spell Hit", - "RandomRadiusAffectsOnlyGfx": true, - "FreezeTimeMS": 100, - "StrengthWeight": 30, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_PREFERRED_TARGET_ANY", - "FreezeOuterTimeMS": 100, - "ImmunityTH_CC": true, - "ImmunityStorages": true, - "PreviewScenario": "SpellLightning" - }, - "3": { - "Level": 3, - "TID": "TID_LIGHTNING_STORM", - "InfoTID": "TID_LIGHTNING_STORM_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 2, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 0, - "HitTimeMS": 100, - "UpgradeTimeH": 12, - "UpgradeResource": "Elixir", - "UpgradeCost": 200000, - "Damage": 210, - "Radius": 200, - "NumberOfHits": 1, - "RandomRadius": 0, - "TimeBetweenHitsMS": 400, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_lightning", - "BigPicture": "icon_spell_lightning", - "PreDeployEffect": "Lightning predeploy", - "DeployEffect": "Lightning area small", - "ChargingEffect": "Lightning Spell", - "HitEffect": "Lightning Spell Hit", - "RandomRadiusAffectsOnlyGfx": true, - "FreezeTimeMS": 100, - "StrengthWeight": 30, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_PREFERRED_TARGET_ANY", - "FreezeOuterTimeMS": 100, - "ImmunityTH_CC": true, - "ImmunityStorages": true, - "PreviewScenario": "SpellLightning" - }, - "4": { - "Level": 4, - "TID": "TID_LIGHTNING_STORM", - "InfoTID": "TID_LIGHTNING_STORM_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 3, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 0, - "HitTimeMS": 100, - "UpgradeTimeH": 24, - "UpgradeResource": "Elixir", - "UpgradeCost": 600000, - "Damage": 240, - "Radius": 200, - "NumberOfHits": 1, - "RandomRadius": 0, - "TimeBetweenHitsMS": 400, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_lightning", - "BigPicture": "icon_spell_lightning", - "PreDeployEffect": "Lightning predeploy", - "DeployEffect": "Lightning area small", - "ChargingEffect": "Lightning Spell", - "HitEffect": "Lightning Spell Hit", - "RandomRadiusAffectsOnlyGfx": true, - "FreezeTimeMS": 100, - "StrengthWeight": 30, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_PREFERRED_TARGET_ANY", - "FreezeOuterTimeMS": 100, - "ImmunityTH_CC": true, - "ImmunityStorages": true, - "PreviewScenario": "SpellLightning" - }, - "5": { - "Level": 5, - "TID": "TID_LIGHTNING_STORM", - "InfoTID": "TID_LIGHTNING_STORM_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 6, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 0, - "HitTimeMS": 100, - "UpgradeTimeH": 72, - "UpgradeResource": "Elixir", - "UpgradeCost": 1500000, - "Damage": 270, - "Radius": 200, - "NumberOfHits": 1, - "RandomRadius": 0, - "TimeBetweenHitsMS": 400, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_lightning", - "BigPicture": "icon_spell_lightning", - "PreDeployEffect": "Lightning predeploy", - "DeployEffect": "Lightning area small", - "ChargingEffect": "Lightning Spell", - "HitEffect": "Lightning Spell Hit", - "RandomRadiusAffectsOnlyGfx": true, - "FreezeTimeMS": 100, - "StrengthWeight": 30, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_PREFERRED_TARGET_ANY", - "FreezeOuterTimeMS": 100, - "ImmunityTH_CC": true, - "ImmunityStorages": true, - "PreviewScenario": "SpellLightning" - }, - "6": { - "Level": 6, - "TID": "TID_LIGHTNING_STORM", - "InfoTID": "TID_LIGHTNING_STORM_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 7, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 0, - "HitTimeMS": 100, - "UpgradeTimeH": 96, - "UpgradeResource": "Elixir", - "UpgradeCost": 2500000, - "Damage": 320, - "Radius": 200, - "NumberOfHits": 1, - "RandomRadius": 0, - "TimeBetweenHitsMS": 400, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_lightning", - "BigPicture": "icon_spell_lightning", - "PreDeployEffect": "Lightning predeploy", - "DeployEffect": "Lightning area small", - "ChargingEffect": "Lightning Spell", - "HitEffect": "Lightning Spell Hit", - "RandomRadiusAffectsOnlyGfx": true, - "FreezeTimeMS": 100, - "StrengthWeight": 27, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_PREFERRED_TARGET_ANY", - "FreezeOuterTimeMS": 100, - "ImmunityTH_CC": true, - "ImmunityStorages": true, - "PreviewScenario": "SpellLightning" - }, - "7": { - "Level": 7, - "TID": "TID_LIGHTNING_STORM", - "InfoTID": "TID_LIGHTNING_STORM_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 8, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 0, - "HitTimeMS": 100, - "UpgradeTimeH": 144, - "UpgradeResource": "Elixir", - "UpgradeCost": 4200000, - "Damage": 400, - "Radius": 200, - "NumberOfHits": 1, - "RandomRadius": 0, - "TimeBetweenHitsMS": 400, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_lightning", - "BigPicture": "icon_spell_lightning", - "PreDeployEffect": "Lightning predeploy", - "DeployEffect": "Lightning area small", - "ChargingEffect": "Lightning Spell", - "HitEffect": "Lightning Spell Hit", - "RandomRadiusAffectsOnlyGfx": true, - "FreezeTimeMS": 100, - "StrengthWeight": 24, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_PREFERRED_TARGET_ANY", - "FreezeOuterTimeMS": 100, - "ImmunityTH_CC": true, - "ImmunityStorages": true, - "PreviewScenario": "SpellLightning" - }, - "8": { - "Level": 8, - "TID": "TID_LIGHTNING_STORM", - "InfoTID": "TID_LIGHTNING_STORM_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 9, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 0, - "HitTimeMS": 100, - "UpgradeTimeH": 168, - "UpgradeResource": "Elixir", - "UpgradeCost": 6300000, - "Damage": 480, - "Radius": 200, - "NumberOfHits": 1, - "RandomRadius": 0, - "TimeBetweenHitsMS": 400, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_lightning", - "BigPicture": "icon_spell_lightning", - "PreDeployEffect": "Lightning predeploy", - "DeployEffect": "Lightning area small", - "ChargingEffect": "Lightning Spell", - "HitEffect": "Lightning Spell Hit", - "RandomRadiusAffectsOnlyGfx": true, - "FreezeTimeMS": 100, - "StrengthWeight": 22, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_PREFERRED_TARGET_ANY", - "FreezeOuterTimeMS": 100, - "ImmunityTH_CC": true, - "ImmunityStorages": true, - "PreviewScenario": "SpellLightning" - }, - "9": { - "Level": 9, - "TID": "TID_LIGHTNING_STORM", - "InfoTID": "TID_LIGHTNING_STORM_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 10, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 0, - "HitTimeMS": 100, - "UpgradeTimeH": 300, - "UpgradeResource": "Elixir", - "UpgradeCost": 16000000, - "Damage": 560, - "Radius": 200, - "NumberOfHits": 1, - "RandomRadius": 0, - "TimeBetweenHitsMS": 400, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_lightning", - "BigPicture": "icon_spell_lightning", - "PreDeployEffect": "Lightning predeploy", - "DeployEffect": "Lightning area small", - "ChargingEffect": "Lightning Spell", - "HitEffect": "Lightning Spell Hit", - "RandomRadiusAffectsOnlyGfx": true, - "FreezeTimeMS": 100, - "StrengthWeight": 20, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_PREFERRED_TARGET_ANY", - "FreezeOuterTimeMS": 100, - "ImmunityTH_CC": true, - "ImmunityStorages": true, - "PreviewScenario": "SpellLightning" - }, - "10": { - "Level": 10, - "TID": "TID_LIGHTNING_STORM", - "InfoTID": "TID_LIGHTNING_STORM_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 13, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 0, - "HitTimeMS": 100, - "UpgradeTimeH": 336, - "UpgradeResource": "Elixir", - "UpgradeCost": 18500000, - "Damage": 600, - "Radius": 200, - "NumberOfHits": 1, - "RandomRadius": 0, - "TimeBetweenHitsMS": 400, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_lightning", - "BigPicture": "icon_spell_lightning", - "PreDeployEffect": "Lightning predeploy", - "DeployEffect": "Lightning area small", - "ChargingEffect": "Lightning Spell", - "HitEffect": "Lightning Spell Hit", - "RandomRadiusAffectsOnlyGfx": true, - "FreezeTimeMS": 100, - "StrengthWeight": 22, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_PREFERRED_TARGET_ANY", - "FreezeOuterTimeMS": 100, - "ImmunityTH_CC": true, - "ImmunityStorages": true, - "PreviewScenario": "SpellLightning" - }, - "11": { - "Level": 11, - "TID": "TID_LIGHTNING_STORM", - "InfoTID": "TID_LIGHTNING_STORM_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 14, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 0, - "HitTimeMS": 100, - "UpgradeTimeH": 336, - "UpgradeResource": "Elixir", - "UpgradeCost": 18500000, - "Damage": 640, - "Radius": 200, - "NumberOfHits": 1, - "RandomRadius": 0, - "TimeBetweenHitsMS": 400, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_lightning", - "BigPicture": "icon_spell_lightning", - "PreDeployEffect": "Lightning predeploy", - "DeployEffect": "Lightning area small", - "ChargingEffect": "Lightning Spell", - "HitEffect": "Lightning Spell Hit", - "RandomRadiusAffectsOnlyGfx": true, - "FreezeTimeMS": 100, - "StrengthWeight": 22, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_PREFERRED_TARGET_ANY", - "FreezeOuterTimeMS": 100, - "ImmunityTH_CC": true, - "ImmunityStorages": true, - "PreviewScenario": "SpellLightning" - } - }, - "Healing Spell": { - "1": { - "Level": 1, - "TID": "TID_HEALING_WAVE", - "InfoTID": "TID_HEALING_WAVE_INFO", - "SpellForgeLevel": 2, - "LaboratoryLevel": 2, - "DonateCost": 10, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 5, - "UpgradeResource": "Elixir", - "UpgradeCost": 75000, - "Damage": "-15", - "Radius": 500, - "NumberOfHits": 40, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_healing", - "BigPicture": "icon_spell_healing", - "PreDeployEffect": "Heal predeploy", - "DeployEffect": "Heal area", - "DeployEffect2": "Heal area top", - "HitEffect": "Heal spell", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 230, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "HeroDamageMultiplier": 55, - "PreviewScenario": "SpellHeal" - }, - "2": { - "Level": 2, - "TID": "TID_HEALING_WAVE", - "InfoTID": "TID_HEALING_WAVE_INFO", - "SpellForgeLevel": 2, - "LaboratoryLevel": 2, - "DonateCost": 10, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 10, - "UpgradeResource": "Elixir", - "UpgradeCost": 150000, - "Damage": "-20", - "Radius": 500, - "NumberOfHits": 40, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_healing", - "BigPicture": "icon_spell_healing", - "PreDeployEffect": "Heal predeploy", - "DeployEffect": "Heal area", - "DeployEffect2": "Heal area top", - "HitEffect": "Heal spell", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 215, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "HeroDamageMultiplier": 55, - "PreviewScenario": "SpellHeal" - }, - "3": { - "Level": 3, - "TID": "TID_HEALING_WAVE", - "InfoTID": "TID_HEALING_WAVE_INFO", - "SpellForgeLevel": 2, - "LaboratoryLevel": 4, - "DonateCost": 10, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 20, - "UpgradeResource": "Elixir", - "UpgradeCost": 300000, - "Damage": "-25", - "Radius": 500, - "NumberOfHits": 40, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_healing", - "BigPicture": "icon_spell_healing", - "PreDeployEffect": "Heal predeploy", - "DeployEffect": "Heal area", - "DeployEffect2": "Heal area top", - "HitEffect": "Heal spell", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 200, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "HeroDamageMultiplier": 55, - "PreviewScenario": "SpellHeal" - }, - "4": { - "Level": 4, - "TID": "TID_HEALING_WAVE", - "InfoTID": "TID_HEALING_WAVE_INFO", - "SpellForgeLevel": 2, - "LaboratoryLevel": 5, - "DonateCost": 10, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 36, - "UpgradeResource": "Elixir", - "UpgradeCost": 900000, - "Damage": "-30", - "Radius": 500, - "NumberOfHits": 40, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_healing", - "BigPicture": "icon_spell_healing", - "PreDeployEffect": "Heal predeploy", - "DeployEffect": "Heal area", - "DeployEffect2": "Heal area top", - "HitEffect": "Heal spell", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 190, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "HeroDamageMultiplier": 55, - "PreviewScenario": "SpellHeal" - }, - "5": { - "Level": 5, - "TID": "TID_HEALING_WAVE", - "InfoTID": "TID_HEALING_WAVE_INFO", - "SpellForgeLevel": 2, - "LaboratoryLevel": 6, - "DonateCost": 10, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 72, - "UpgradeResource": "Elixir", - "UpgradeCost": 1800000, - "Damage": "-35", - "Radius": 500, - "NumberOfHits": 40, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_healing", - "BigPicture": "icon_spell_healing", - "PreDeployEffect": "Heal predeploy", - "DeployEffect": "Heal area", - "DeployEffect2": "Heal area top", - "HitEffect": "Heal spell", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 180, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "HeroDamageMultiplier": 55, - "PreviewScenario": "SpellHeal" - }, - "6": { - "Level": 6, - "TID": "TID_HEALING_WAVE", - "InfoTID": "TID_HEALING_WAVE_INFO", - "SpellForgeLevel": 2, - "LaboratoryLevel": 7, - "DonateCost": 10, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 96, - "UpgradeResource": "Elixir", - "UpgradeCost": 3000000, - "Damage": "-40", - "Radius": 500, - "NumberOfHits": 40, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_healing", - "BigPicture": "icon_spell_healing", - "PreDeployEffect": "Heal predeploy", - "DeployEffect": "Heal area", - "DeployEffect2": "Heal area top", - "HitEffect": "Heal spell", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 170, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "HeroDamageMultiplier": 55, - "PreviewScenario": "SpellHeal" - }, - "7": { - "Level": 7, - "TID": "TID_HEALING_WAVE", - "InfoTID": "TID_HEALING_WAVE_INFO", - "SpellForgeLevel": 2, - "LaboratoryLevel": 8, - "DonateCost": 10, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 144, - "UpgradeResource": "Elixir", - "UpgradeCost": 8500000, - "Damage": "-45", - "Radius": 500, - "NumberOfHits": 40, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_healing", - "BigPicture": "icon_spell_healing", - "PreDeployEffect": "Heal predeploy", - "DeployEffect": "Heal area", - "DeployEffect2": "Heal area top", - "HitEffect": "Heal spell", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 170, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "HeroDamageMultiplier": 55, - "PreviewScenario": "SpellHeal" - }, - "8": { - "Level": 8, - "TID": "TID_HEALING_WAVE", - "InfoTID": "TID_HEALING_WAVE_INFO", - "SpellForgeLevel": 2, - "LaboratoryLevel": 11, - "DonateCost": 10, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 318, - "UpgradeResource": "Elixir", - "UpgradeCost": 17000000, - "Damage": "-50", - "Radius": 500, - "NumberOfHits": 40, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_healing", - "BigPicture": "icon_spell_healing", - "PreDeployEffect": "Heal predeploy", - "DeployEffect": "Heal area", - "DeployEffect2": "Heal area top", - "HitEffect": "Heal spell", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 200, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "HeroDamageMultiplier": 55, - "PreviewScenario": "SpellHeal" - }, - "9": { - "Level": 9, - "TID": "TID_HEALING_WAVE", - "InfoTID": "TID_HEALING_WAVE_INFO", - "SpellForgeLevel": 2, - "LaboratoryLevel": 13, - "DonateCost": 10, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 360, - "UpgradeResource": "Elixir", - "UpgradeCost": 19000000, - "Damage": "-55", - "Radius": 500, - "NumberOfHits": 40, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_healing", - "BigPicture": "icon_spell_healing", - "PreDeployEffect": "Heal predeploy", - "DeployEffect": "Heal area", - "DeployEffect2": "Heal area top", - "HitEffect": "Heal spell", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 200, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "HeroDamageMultiplier": 55, - "PreviewScenario": "SpellHeal" - }, - "10": { - "Level": 10, - "TID": "TID_HEALING_WAVE", - "InfoTID": "TID_HEALING_WAVE_INFO", - "SpellForgeLevel": 2, - "LaboratoryLevel": 14, - "DonateCost": 10, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 360, - "UpgradeResource": "Elixir", - "UpgradeCost": 19000000, - "Damage": "-60", - "Radius": 500, - "NumberOfHits": 40, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_healing", - "BigPicture": "icon_spell_healing", - "PreDeployEffect": "Heal predeploy", - "DeployEffect": "Heal area", - "DeployEffect2": "Heal area top", - "HitEffect": "Heal spell", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 200, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "HeroDamageMultiplier": 55, - "PreviewScenario": "SpellHeal" - } - }, - "Rage Spell": { - "1": { - "Level": 1, - "TID": "TID_HASTE", - "InfoTID": "TID_HASTE_INFO", - "SpellForgeLevel": 3, - "LaboratoryLevel": 3, - "DonateCost": 10, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 12, - "UpgradeResource": "Elixir", - "UpgradeCost": 400000, - "BoostTimeMS": 1000, - "SpeedBoost": 20, - "SpeedBoost2": 10, - "DamageBoostPercent": 130, - "Radius": 500, - "NumberOfHits": 60, - "RandomRadius": 400, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_rage", - "BigPicture": "icon_spell_rage", - "PreDeployEffect": "Rage predeploy", - "DeployEffect": "Rage deploy", - "DeployEffect2": "Rage deploy top", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 100, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "PreviewScenario": "SpellRage" - }, - "2": { - "Level": 2, - "TID": "TID_HASTE", - "InfoTID": "TID_HASTE_INFO", - "SpellForgeLevel": 3, - "LaboratoryLevel": 3, - "DonateCost": 10, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 24, - "UpgradeResource": "Elixir", - "UpgradeCost": 800000, - "BoostTimeMS": 1000, - "SpeedBoost": 22, - "SpeedBoost2": 11, - "DamageBoostPercent": 140, - "Radius": 500, - "NumberOfHits": 60, - "RandomRadius": 400, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_rage", - "BigPicture": "icon_spell_rage", - "PreDeployEffect": "Rage predeploy", - "DeployEffect": "Rage deploy", - "DeployEffect2": "Rage deploy top", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 95, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "PreviewScenario": "SpellRage" - }, - "3": { - "Level": 3, - "TID": "TID_HASTE", - "InfoTID": "TID_HASTE_INFO", - "SpellForgeLevel": 3, - "LaboratoryLevel": 4, - "DonateCost": 10, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 48, - "UpgradeResource": "Elixir", - "UpgradeCost": 1600000, - "BoostTimeMS": 1000, - "SpeedBoost": 24, - "SpeedBoost2": 12, - "DamageBoostPercent": 150, - "Radius": 500, - "NumberOfHits": 60, - "RandomRadius": 400, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_rage", - "BigPicture": "icon_spell_rage", - "PreDeployEffect": "Rage predeploy", - "DeployEffect": "Rage deploy", - "DeployEffect2": "Rage deploy top", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 90, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "PreviewScenario": "SpellRage" - }, - "4": { - "Level": 4, - "TID": "TID_HASTE", - "InfoTID": "TID_HASTE_INFO", - "SpellForgeLevel": 3, - "LaboratoryLevel": 5, - "DonateCost": 10, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 96, - "UpgradeResource": "Elixir", - "UpgradeCost": 2400000, - "BoostTimeMS": 1000, - "SpeedBoost": 26, - "SpeedBoost2": 13, - "DamageBoostPercent": 160, - "Radius": 500, - "NumberOfHits": 60, - "RandomRadius": 400, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_rage", - "BigPicture": "icon_spell_rage", - "PreDeployEffect": "Rage predeploy", - "DeployEffect": "Rage deploy", - "DeployEffect2": "Rage deploy top", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 85, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "PreviewScenario": "SpellRage" - }, - "5": { - "Level": 5, - "TID": "TID_HASTE", - "InfoTID": "TID_HASTE_INFO", - "SpellForgeLevel": 3, - "LaboratoryLevel": 6, - "DonateCost": 10, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 144, - "UpgradeResource": "Elixir", - "UpgradeCost": 7000000, - "BoostTimeMS": 1000, - "SpeedBoost": 28, - "SpeedBoost2": 14, - "DamageBoostPercent": 170, - "Radius": 500, - "NumberOfHits": 60, - "RandomRadius": 400, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_rage", - "BigPicture": "icon_spell_rage", - "PreDeployEffect": "Rage predeploy", - "DeployEffect": "Rage deploy", - "DeployEffect2": "Rage deploy top", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 80, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "PreviewScenario": "SpellRage" - }, - "6": { - "Level": 6, - "TID": "TID_HASTE", - "InfoTID": "TID_HASTE_INFO", - "SpellForgeLevel": 3, - "LaboratoryLevel": 10, - "DonateCost": 10, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 144, - "UpgradeResource": "Elixir", - "UpgradeCost": 7000000, - "BoostTimeMS": 1000, - "SpeedBoost": 30, - "SpeedBoost2": 15, - "DamageBoostPercent": 180, - "Radius": 500, - "NumberOfHits": 60, - "RandomRadius": 400, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_rage", - "BigPicture": "icon_spell_rage", - "PreDeployEffect": "Rage predeploy", - "DeployEffect": "Rage deploy", - "DeployEffect2": "Rage deploy top", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 95, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "PreviewScenario": "SpellRage" - } - }, - "Jump Spell": { - "1": { - "Level": 1, - "TID": "TID_JUMP_SPELL", - "InfoTID": "TID_JUMP_SPELL_INFO", - "SpellForgeLevel": 4, - "LaboratoryLevel": 4, - "DonateCost": 10, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 72, - "UpgradeResource": "Elixir", - "UpgradeCost": 2000000, - "JumpHousingLimit": 100, - "JumpBoostMS": 400, - "Radius": 350, - "NumberOfHits": 66, - "RandomRadius": 400, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_jump", - "BigPicture": "icon_spell_jump", - "PreDeployEffect": "Jump predeploy", - "DeployEffect": "Jump deploy lvl1", - "DeployEffect2": "Jump deploy top lvl1", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 250, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND", - "PreviewScenario": "SpellJump" - }, - "2": { - "Level": 2, - "TID": "TID_JUMP_SPELL", - "InfoTID": "TID_JUMP_SPELL_INFO", - "SpellForgeLevel": 4, - "LaboratoryLevel": 5, - "DonateCost": 10, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 96, - "UpgradeResource": "Elixir", - "UpgradeCost": 3400000, - "JumpHousingLimit": 100, - "JumpBoostMS": 400, - "Radius": 350, - "NumberOfHits": 133, - "RandomRadius": 400, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_jump", - "BigPicture": "icon_spell_jump", - "PreDeployEffect": "Jump predeploy", - "DeployEffect": "Jump deploy lvl2", - "DeployEffect2": "Jump deploy top lvl2", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 170, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND", - "PreviewScenario": "SpellJump" - }, - "3": { - "Level": 3, - "TID": "TID_JUMP_SPELL", - "InfoTID": "TID_JUMP_SPELL_INFO", - "SpellForgeLevel": 4, - "LaboratoryLevel": 8, - "DonateCost": 10, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 144, - "UpgradeResource": "Elixir", - "UpgradeCost": 7200000, - "JumpHousingLimit": 100, - "JumpBoostMS": 400, - "Radius": 350, - "NumberOfHits": 199, - "RandomRadius": 400, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_jump", - "BigPicture": "icon_spell_jump", - "PreDeployEffect": "Jump predeploy", - "DeployEffect": "Jump deploy lvl3", - "DeployEffect2": "Jump deploy top lvl3", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 130, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND", - "PreviewScenario": "SpellJump" - }, - "4": { - "Level": 4, - "TID": "TID_JUMP_SPELL", - "InfoTID": "TID_JUMP_SPELL_INFO", - "SpellForgeLevel": 4, - "LaboratoryLevel": 11, - "DonateCost": 10, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 312, - "UpgradeResource": "Elixir", - "UpgradeCost": 16500000, - "JumpHousingLimit": 100, - "JumpBoostMS": 400, - "Radius": 350, - "NumberOfHits": 266, - "RandomRadius": 400, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_jump", - "BigPicture": "icon_spell_jump", - "PreDeployEffect": "Jump predeploy", - "DeployEffect": "Jump deploy lvl4", - "DeployEffect2": "Jump deploy top lvl4", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 110, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND", - "PreviewScenario": "SpellJump" - }, - "5": { - "Level": 5, - "TID": "TID_JUMP_SPELL", - "InfoTID": "TID_JUMP_SPELL_INFO", - "SpellForgeLevel": 4, - "LaboratoryLevel": 13, - "DonateCost": 10, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 312, - "UpgradeResource": "Elixir", - "UpgradeCost": 16500000, - "JumpHousingLimit": 100, - "JumpBoostMS": 400, - "Radius": 350, - "NumberOfHits": 333, - "RandomRadius": 400, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_jump", - "BigPicture": "icon_spell_jump", - "PreDeployEffect": "Jump predeploy", - "DeployEffect": "Jump deploy lvl5", - "DeployEffect2": "Jump deploy top lvl5", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 90, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND", - "PreviewScenario": "SpellJump" - } - }, - "Freeze Spell": { - "1": { - "Level": 1, - "TID": "TID_FREEZE_SPELL", - "InfoTID": "TID_FREEZE_SPELL_INFO", - "SpellForgeLevel": 4, - "LaboratoryLevel": 7, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 36, - "UpgradeResource": "Elixir", - "UpgradeCost": 1200000, - "Radius": 350, - "NumberOfHits": 1, - "RandomRadius": 400, - "TimeBetweenHitsMS": 0, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_freeze", - "BigPicture": "icon_spell_freeze", - "PreDeployEffect": "Freeze predeploy", - "DeployEffect": "Freeze deploy lvl1", - "DeployEffect2": "Freeze deploy2 lvl1", - "RandomRadiusAffectsOnlyGfx": true, - "FreezeTimeMS": 2500, - "StrengthWeight": 1000, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "FreezeOuterTimeMS": 2250, - "AffectsSiegeMachines": true, - "PreviewScenario": "SpellFreeze" - }, - "2": { - "Level": 2, - "TID": "TID_FREEZE_SPELL", - "InfoTID": "TID_FREEZE_SPELL_INFO", - "SpellForgeLevel": 4, - "LaboratoryLevel": 7, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 62, - "UpgradeResource": "Elixir", - "UpgradeCost": 1700000, - "Radius": 350, - "NumberOfHits": 1, - "RandomRadius": 400, - "TimeBetweenHitsMS": 0, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_freeze", - "BigPicture": "icon_spell_freeze", - "PreDeployEffect": "Freeze predeploy", - "DeployEffect": "Freeze deploy lvl2", - "DeployEffect2": "Freeze deploy2 lvl2", - "RandomRadiusAffectsOnlyGfx": true, - "FreezeTimeMS": 3000, - "StrengthWeight": 1150, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "FreezeOuterTimeMS": 2700, - "AffectsSiegeMachines": true, - "PreviewScenario": "SpellFreeze" - }, - "3": { - "Level": 3, - "TID": "TID_FREEZE_SPELL", - "InfoTID": "TID_FREEZE_SPELL_INFO", - "SpellForgeLevel": 4, - "LaboratoryLevel": 8, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 78, - "UpgradeResource": "Elixir", - "UpgradeCost": 3000000, - "Radius": 350, - "NumberOfHits": 1, - "RandomRadius": 400, - "TimeBetweenHitsMS": 0, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_freeze", - "BigPicture": "icon_spell_freeze", - "PreDeployEffect": "Freeze predeploy", - "DeployEffect": "Freeze deploy lvl3", - "DeployEffect2": "Freeze deploy2 lvl3", - "RandomRadiusAffectsOnlyGfx": true, - "FreezeTimeMS": 3500, - "StrengthWeight": 1300, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "FreezeOuterTimeMS": 3150, - "AffectsSiegeMachines": true, - "PreviewScenario": "SpellFreeze" - }, - "4": { - "Level": 4, - "TID": "TID_FREEZE_SPELL", - "InfoTID": "TID_FREEZE_SPELL_INFO", - "SpellForgeLevel": 4, - "LaboratoryLevel": 8, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 96, - "UpgradeResource": "Elixir", - "UpgradeCost": 4200000, - "Radius": 350, - "NumberOfHits": 1, - "RandomRadius": 400, - "TimeBetweenHitsMS": 0, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_freeze", - "BigPicture": "icon_spell_freeze", - "PreDeployEffect": "Freeze predeploy", - "DeployEffect": "Freeze deploy lvl4", - "DeployEffect2": "Freeze deploy2 lvl4", - "RandomRadiusAffectsOnlyGfx": true, - "FreezeTimeMS": 4000, - "StrengthWeight": 1450, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "FreezeOuterTimeMS": 3600, - "AffectsSiegeMachines": true, - "PreviewScenario": "SpellFreeze" - }, - "5": { - "Level": 5, - "TID": "TID_FREEZE_SPELL", - "InfoTID": "TID_FREEZE_SPELL_INFO", - "SpellForgeLevel": 4, - "LaboratoryLevel": 8, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 144, - "UpgradeResource": "Elixir", - "UpgradeCost": 6000000, - "Radius": 350, - "NumberOfHits": 1, - "RandomRadius": 400, - "TimeBetweenHitsMS": 0, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_freeze", - "BigPicture": "icon_spell_freeze", - "PreDeployEffect": "Freeze predeploy", - "DeployEffect": "Freeze deploy lvl5", - "DeployEffect2": "Freeze deploy2 lvl5", - "RandomRadiusAffectsOnlyGfx": true, - "FreezeTimeMS": 4500, - "StrengthWeight": 1600, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "FreezeOuterTimeMS": 4050, - "AffectsSiegeMachines": true, - "PreviewScenario": "SpellFreeze" - }, - "6": { - "Level": 6, - "TID": "TID_FREEZE_SPELL", - "InfoTID": "TID_FREEZE_SPELL_INFO", - "SpellForgeLevel": 4, - "LaboratoryLevel": 9, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 168, - "UpgradeResource": "Elixir", - "UpgradeCost": 7000000, - "Radius": 350, - "NumberOfHits": 1, - "RandomRadius": 400, - "TimeBetweenHitsMS": 0, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_freeze", - "BigPicture": "icon_spell_freeze", - "PreDeployEffect": "Freeze predeploy", - "DeployEffect": "Freeze deploy lvl6", - "DeployEffect2": "Freeze deploy2 lvl6", - "RandomRadiusAffectsOnlyGfx": true, - "FreezeTimeMS": 5000, - "StrengthWeight": 1750, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "FreezeOuterTimeMS": 4500, - "AffectsSiegeMachines": true, - "PreviewScenario": "SpellFreeze" - }, - "7": { - "Level": 7, - "TID": "TID_FREEZE_SPELL", - "InfoTID": "TID_FREEZE_SPELL_INFO", - "SpellForgeLevel": 4, - "LaboratoryLevel": 10, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 168, - "UpgradeResource": "Elixir", - "UpgradeCost": 7000000, - "Radius": 350, - "NumberOfHits": 1, - "RandomRadius": 400, - "TimeBetweenHitsMS": 0, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_freeze", - "BigPicture": "icon_spell_freeze", - "PreDeployEffect": "Freeze predeploy", - "DeployEffect": "Freeze deploy lvl7", - "DeployEffect2": "Freeze deploy2 lvl7", - "RandomRadiusAffectsOnlyGfx": true, - "FreezeTimeMS": 5500, - "StrengthWeight": 1900, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "FreezeOuterTimeMS": 4950, - "AffectsSiegeMachines": true, - "PreviewScenario": "SpellFreeze" - } - }, - "Santa's Surprise": { - "1": { - "Level": 1, - "TID": "TID_XMAS_SPELL", - "InfoTID": "TID_XMAS_SPELL_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 1, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 0, - "ChargingTimeMS": 4500, - "HitTimeMS": 6000, - "UpgradeResource": "Elixir", - "Damage": 150, - "Radius": 100, - "NumberOfHits": 5, - "RandomRadius": 100, - "TimeBetweenHitsMS": 100, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_xmas", - "BigPicture": "icon_spell_xmas", - "DeployEffect": "xmas Red Smoke", - "DeployEffect2Delay": 2500, - "DeployEffect2": "xmas test", - "ChargingEffect": "xmas Drop Bombs", - "HitEffect": "xmas boom", - "RandomRadiusAffectsOnlyGfx": false, - "SpawnObstacle": "Xmas TombStone", - "NumObstacles": 5, - "StrengthWeight": 0, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "DisableDonate": true, - "EnabledByCalendar": true, - "UpgradeLevelByTH": 5, - "ImmunityTH_CC": true, - "ImmunityStorages": true - }, - "2": { - "Level": 2, - "TID": "TID_XMAS_SPELL", - "InfoTID": "TID_XMAS_SPELL_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 1, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 0, - "ChargingTimeMS": 4500, - "HitTimeMS": 6000, - "UpgradeResource": "Elixir", - "Damage": 160, - "Radius": 100, - "NumberOfHits": 5, - "RandomRadius": 100, - "TimeBetweenHitsMS": 100, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_xmas", - "BigPicture": "icon_spell_xmas", - "DeployEffect": "xmas Red Smoke", - "DeployEffect2Delay": 2500, - "DeployEffect2": "xmas test", - "ChargingEffect": "xmas Drop Bombs", - "HitEffect": "xmas boom", - "RandomRadiusAffectsOnlyGfx": false, - "SpawnObstacle": "Xmas TombStone", - "NumObstacles": 5, - "StrengthWeight": 0, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "DisableDonate": true, - "EnabledByCalendar": true, - "UpgradeLevelByTH": 6, - "ImmunityTH_CC": true, - "ImmunityStorages": true - }, - "3": { - "Level": 3, - "TID": "TID_XMAS_SPELL", - "InfoTID": "TID_XMAS_SPELL_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 1, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 0, - "ChargingTimeMS": 4500, - "HitTimeMS": 6000, - "UpgradeResource": "Elixir", - "Damage": 170, - "Radius": 100, - "NumberOfHits": 5, - "RandomRadius": 100, - "TimeBetweenHitsMS": 100, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_xmas", - "BigPicture": "icon_spell_xmas", - "DeployEffect": "xmas Red Smoke", - "DeployEffect2Delay": 2500, - "DeployEffect2": "xmas test", - "ChargingEffect": "xmas Drop Bombs", - "HitEffect": "xmas boom", - "RandomRadiusAffectsOnlyGfx": false, - "SpawnObstacle": "Xmas TombStone", - "NumObstacles": 5, - "StrengthWeight": 0, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "DisableDonate": true, - "EnabledByCalendar": true, - "UpgradeLevelByTH": 7, - "ImmunityTH_CC": true, - "ImmunityStorages": true - }, - "4": { - "Level": 4, - "TID": "TID_XMAS_SPELL", - "InfoTID": "TID_XMAS_SPELL_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 1, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 0, - "ChargingTimeMS": 4500, - "HitTimeMS": 6000, - "UpgradeResource": "Elixir", - "Damage": 180, - "Radius": 100, - "NumberOfHits": 5, - "RandomRadius": 100, - "TimeBetweenHitsMS": 100, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_xmas", - "BigPicture": "icon_spell_xmas", - "DeployEffect": "xmas Red Smoke", - "DeployEffect2Delay": 2500, - "DeployEffect2": "xmas test", - "ChargingEffect": "xmas Drop Bombs", - "HitEffect": "xmas boom", - "RandomRadiusAffectsOnlyGfx": false, - "SpawnObstacle": "Xmas TombStone", - "NumObstacles": 5, - "StrengthWeight": 0, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "DisableDonate": true, - "EnabledByCalendar": true, - "UpgradeLevelByTH": 8, - "ImmunityTH_CC": true, - "ImmunityStorages": true - }, - "5": { - "Level": 5, - "TID": "TID_XMAS_SPELL", - "InfoTID": "TID_XMAS_SPELL_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 1, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 0, - "ChargingTimeMS": 4500, - "HitTimeMS": 6000, - "UpgradeResource": "Elixir", - "Damage": 190, - "Radius": 100, - "NumberOfHits": 5, - "RandomRadius": 100, - "TimeBetweenHitsMS": 100, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_xmas", - "BigPicture": "icon_spell_xmas", - "DeployEffect": "xmas Red Smoke", - "DeployEffect2Delay": 2500, - "DeployEffect2": "xmas test", - "ChargingEffect": "xmas Drop Bombs", - "HitEffect": "xmas boom", - "RandomRadiusAffectsOnlyGfx": false, - "SpawnObstacle": "Xmas TombStone", - "NumObstacles": 5, - "StrengthWeight": 0, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "DisableDonate": true, - "EnabledByCalendar": true, - "UpgradeLevelByTH": 9, - "ImmunityTH_CC": true, - "ImmunityStorages": true - }, - "6": { - "Level": 6, - "TID": "TID_XMAS_SPELL", - "InfoTID": "TID_XMAS_SPELL_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 1, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 0, - "ChargingTimeMS": 4500, - "HitTimeMS": 6000, - "UpgradeResource": "Elixir", - "Damage": 200, - "Radius": 100, - "NumberOfHits": 5, - "RandomRadius": 100, - "TimeBetweenHitsMS": 100, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_xmas", - "BigPicture": "icon_spell_xmas", - "DeployEffect": "xmas Red Smoke", - "DeployEffect2Delay": 2500, - "DeployEffect2": "xmas test", - "ChargingEffect": "xmas Drop Bombs", - "HitEffect": "xmas boom", - "RandomRadiusAffectsOnlyGfx": false, - "SpawnObstacle": "Xmas TombStone", - "NumObstacles": 5, - "StrengthWeight": 0, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "DisableDonate": true, - "EnabledByCalendar": true, - "UpgradeLevelByTH": 10, - "ImmunityTH_CC": true, - "ImmunityStorages": true - }, - "7": { - "Level": 7, - "TID": "TID_XMAS_SPELL", - "InfoTID": "TID_XMAS_SPELL_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 1, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 0, - "ChargingTimeMS": 4500, - "HitTimeMS": 6000, - "UpgradeResource": "Elixir", - "Damage": 220, - "Radius": 100, - "NumberOfHits": 5, - "RandomRadius": 100, - "TimeBetweenHitsMS": 100, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_xmas", - "BigPicture": "icon_spell_xmas", - "DeployEffect": "xmas Red Smoke", - "DeployEffect2Delay": 2500, - "DeployEffect2": "xmas test", - "ChargingEffect": "xmas Drop Bombs", - "HitEffect": "xmas boom", - "RandomRadiusAffectsOnlyGfx": false, - "SpawnObstacle": "Xmas TombStone", - "NumObstacles": 5, - "StrengthWeight": 0, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "DisableDonate": true, - "EnabledByCalendar": true, - "UpgradeLevelByTH": 11, - "ImmunityTH_CC": true, - "ImmunityStorages": true - }, - "8": { - "Level": 8, - "TID": "TID_XMAS_SPELL", - "InfoTID": "TID_XMAS_SPELL_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 1, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 0, - "ChargingTimeMS": 4500, - "HitTimeMS": 6000, - "UpgradeResource": "Elixir", - "Damage": 240, - "Radius": 100, - "NumberOfHits": 5, - "RandomRadius": 100, - "TimeBetweenHitsMS": 100, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_xmas", - "BigPicture": "icon_spell_xmas", - "DeployEffect": "xmas Red Smoke", - "DeployEffect2Delay": 2500, - "DeployEffect2": "xmas test", - "ChargingEffect": "xmas Drop Bombs", - "HitEffect": "xmas boom", - "RandomRadiusAffectsOnlyGfx": false, - "SpawnObstacle": "Xmas TombStone", - "NumObstacles": 5, - "StrengthWeight": 0, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "DisableDonate": true, - "EnabledByCalendar": true, - "UpgradeLevelByTH": 12, - "ImmunityTH_CC": true, - "ImmunityStorages": true - }, - "9": { - "Level": 9, - "TID": "TID_XMAS_SPELL", - "InfoTID": "TID_XMAS_SPELL_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 1, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 0, - "ChargingTimeMS": 4500, - "HitTimeMS": 6000, - "UpgradeResource": "Elixir", - "Damage": 260, - "Radius": 100, - "NumberOfHits": 5, - "RandomRadius": 100, - "TimeBetweenHitsMS": 100, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_xmas", - "BigPicture": "icon_spell_xmas", - "DeployEffect": "xmas Red Smoke", - "DeployEffect2Delay": 2500, - "DeployEffect2": "xmas test", - "ChargingEffect": "xmas Drop Bombs", - "HitEffect": "xmas boom", - "RandomRadiusAffectsOnlyGfx": false, - "SpawnObstacle": "Xmas TombStone", - "NumObstacles": 5, - "StrengthWeight": 0, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "DisableDonate": true, - "EnabledByCalendar": true, - "UpgradeLevelByTH": 13, - "ImmunityTH_CC": true, - "ImmunityStorages": true - }, - "10": { - "Level": 10, - "TID": "TID_XMAS_SPELL", - "InfoTID": "TID_XMAS_SPELL_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 1, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 0, - "ChargingTimeMS": 4500, - "HitTimeMS": 6000, - "UpgradeResource": "Elixir", - "Damage": 280, - "Radius": 100, - "NumberOfHits": 5, - "RandomRadius": 100, - "TimeBetweenHitsMS": 100, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_xmas", - "BigPicture": "icon_spell_xmas", - "DeployEffect": "xmas Red Smoke", - "DeployEffect2Delay": 2500, - "DeployEffect2": "xmas test", - "ChargingEffect": "xmas Drop Bombs", - "HitEffect": "xmas boom", - "RandomRadiusAffectsOnlyGfx": false, - "SpawnObstacle": "Xmas TombStone", - "NumObstacles": 5, - "StrengthWeight": 0, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "DisableDonate": true, - "EnabledByCalendar": true, - "UpgradeLevelByTH": 14, - "ImmunityTH_CC": true, - "ImmunityStorages": true - }, - "11": { - "Level": 11, - "TID": "TID_XMAS_SPELL", - "InfoTID": "TID_XMAS_SPELL_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 1, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 0, - "ChargingTimeMS": 4500, - "HitTimeMS": 6000, - "UpgradeResource": "Elixir", - "Damage": 300, - "Radius": 100, - "NumberOfHits": 5, - "RandomRadius": 100, - "TimeBetweenHitsMS": 100, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_xmas", - "BigPicture": "icon_spell_xmas", - "DeployEffect": "xmas Red Smoke", - "DeployEffect2Delay": 2500, - "DeployEffect2": "xmas test", - "ChargingEffect": "xmas Drop Bombs", - "HitEffect": "xmas boom", - "RandomRadiusAffectsOnlyGfx": false, - "SpawnObstacle": "Xmas TombStone", - "NumObstacles": 5, - "StrengthWeight": 0, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "DisableDonate": true, - "EnabledByCalendar": true, - "UpgradeLevelByTH": 15, - "ImmunityTH_CC": true, - "ImmunityStorages": true - } - }, - "Poison Spell": { - "1": { - "Level": 1, - "TID": "TID_POISON_CLOUD", - "InfoTID": "TID_POISON_CLOUD_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 1, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 8, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 10000, - "BoostTimeMS": 500, - "SpeedBoost": "-26", - "SpeedBoost2": "-26", - "Radius": 400, - "NumberOfHits": 40, - "RandomRadius": 0, - "TimeBetweenHitsMS": 400, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_toxic", - "BigPicture": "icon_spell_toxic", - "PreDeployEffect": "toxic_Predeploy", - "DeployEffect": "Toxic deploy ground halloween", - "DeployEffect2": "Toxic deploy halloween", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": "-160", - "ProductionBuilding": "Mini Spell Factory", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "HeroDamageMultiplier": 5, - "PoisonDPS": 90, - "PoisonIncreaseSlowly": true, - "AttackSpeedBoost": "-35", - "BoostLinkedToPoison": true, - "PoisonAffectAir": true, - "BoostDefenders": true, - "ImmunityTH_CC": true, - "ImmunityStorages": true, - "ImmunityWalls": true, - "ImmunityOtherBuildings": true, - "PreviewScenario": "SpellPoison" - }, - "2": { - "Level": 2, - "TID": "TID_POISON_CLOUD", - "InfoTID": "TID_POISON_CLOUD_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 6, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 24, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 20000, - "BoostTimeMS": 500, - "SpeedBoost": "-30", - "SpeedBoost2": "-30", - "Radius": 400, - "NumberOfHits": 40, - "RandomRadius": 0, - "TimeBetweenHitsMS": 400, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_toxic", - "BigPicture": "icon_spell_toxic", - "PreDeployEffect": "toxic_Predeploy", - "DeployEffect": "Toxic deploy ground halloween", - "DeployEffect2": "Toxic deploy halloween", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": "-170", - "ProductionBuilding": "Mini Spell Factory", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "HeroDamageMultiplier": 5, - "PoisonDPS": 115, - "PoisonIncreaseSlowly": true, - "AttackSpeedBoost": "-40", - "BoostLinkedToPoison": true, - "PoisonAffectAir": true, - "BoostDefenders": true, - "ImmunityTH_CC": true, - "ImmunityStorages": true, - "ImmunityWalls": true, - "ImmunityOtherBuildings": true, - "PreviewScenario": "SpellPoison" - }, - "3": { - "Level": 3, - "TID": "TID_POISON_CLOUD", - "InfoTID": "TID_POISON_CLOUD_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 7, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 62, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 43000, - "BoostTimeMS": 500, - "SpeedBoost": "-34", - "SpeedBoost2": "-34", - "Radius": 400, - "NumberOfHits": 40, - "RandomRadius": 0, - "TimeBetweenHitsMS": 400, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_toxic", - "BigPicture": "icon_spell_toxic", - "PreDeployEffect": "toxic_Predeploy", - "DeployEffect": "Toxic deploy ground halloween", - "DeployEffect2": "Toxic deploy halloween", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": "-190", - "ProductionBuilding": "Mini Spell Factory", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "HeroDamageMultiplier": 5, - "PoisonDPS": 145, - "PoisonIncreaseSlowly": true, - "AttackSpeedBoost": "-45", - "BoostLinkedToPoison": true, - "PoisonAffectAir": true, - "BoostDefenders": true, - "ImmunityTH_CC": true, - "ImmunityStorages": true, - "ImmunityWalls": true, - "ImmunityOtherBuildings": true, - "PreviewScenario": "SpellPoison" - }, - "4": { - "Level": 4, - "TID": "TID_POISON_CLOUD", - "InfoTID": "TID_POISON_CLOUD_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 8, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 96, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 70000, - "BoostTimeMS": 500, - "SpeedBoost": "-38", - "SpeedBoost2": "-38", - "Radius": 400, - "NumberOfHits": 40, - "RandomRadius": 0, - "TimeBetweenHitsMS": 400, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_toxic", - "BigPicture": "icon_spell_toxic", - "PreDeployEffect": "toxic_Predeploy", - "DeployEffect": "Toxic deploy ground halloween", - "DeployEffect2": "Toxic deploy halloween", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": "-210", - "ProductionBuilding": "Mini Spell Factory", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "HeroDamageMultiplier": 5, - "PoisonDPS": 180, - "PoisonIncreaseSlowly": true, - "AttackSpeedBoost": "-50", - "BoostLinkedToPoison": true, - "PoisonAffectAir": true, - "BoostDefenders": true, - "ImmunityTH_CC": true, - "ImmunityStorages": true, - "ImmunityWalls": true, - "ImmunityOtherBuildings": true, - "PreviewScenario": "SpellPoison" - }, - "5": { - "Level": 5, - "TID": "TID_POISON_CLOUD", - "InfoTID": "TID_POISON_CLOUD_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 9, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 150, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 110000, - "BoostTimeMS": 500, - "SpeedBoost": "-40", - "SpeedBoost2": "-40", - "Radius": 400, - "NumberOfHits": 40, - "RandomRadius": 0, - "TimeBetweenHitsMS": 400, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_toxic", - "BigPicture": "icon_spell_toxic", - "PreDeployEffect": "toxic_Predeploy", - "DeployEffect": "Toxic deploy ground halloween", - "DeployEffect2": "Toxic deploy halloween", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": "-230", - "ProductionBuilding": "Mini Spell Factory", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "HeroDamageMultiplier": 5, - "PoisonDPS": 220, - "PoisonIncreaseSlowly": true, - "AttackSpeedBoost": "-55", - "BoostLinkedToPoison": true, - "PoisonAffectAir": true, - "BoostDefenders": true, - "ImmunityTH_CC": true, - "ImmunityStorages": true, - "ImmunityWalls": true, - "ImmunityOtherBuildings": true, - "PreviewScenario": "SpellPoison" - }, - "6": { - "Level": 6, - "TID": "TID_POISON_CLOUD", - "InfoTID": "TID_POISON_CLOUD_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 10, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 168, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 155000, - "BoostTimeMS": 500, - "SpeedBoost": "-42", - "SpeedBoost2": "-42", - "Radius": 400, - "NumberOfHits": 40, - "RandomRadius": 0, - "TimeBetweenHitsMS": 400, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_toxic", - "BigPicture": "icon_spell_toxic", - "PreDeployEffect": "toxic_Predeploy", - "DeployEffect": "Toxic deploy ground halloween", - "DeployEffect2": "Toxic deploy halloween", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": "-250", - "ProductionBuilding": "Mini Spell Factory", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "HeroDamageMultiplier": 5, - "PoisonDPS": 260, - "PoisonIncreaseSlowly": true, - "AttackSpeedBoost": "-60", - "BoostLinkedToPoison": true, - "PoisonAffectAir": true, - "BoostDefenders": true, - "ImmunityTH_CC": true, - "ImmunityStorages": true, - "ImmunityWalls": true, - "ImmunityOtherBuildings": true, - "PreviewScenario": "SpellPoison" - }, - "7": { - "Level": 7, - "TID": "TID_POISON_CLOUD", - "InfoTID": "TID_POISON_CLOUD_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 11, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 240, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 230000, - "BoostTimeMS": 500, - "SpeedBoost": "-44", - "SpeedBoost2": "-44", - "Radius": 400, - "NumberOfHits": 40, - "RandomRadius": 0, - "TimeBetweenHitsMS": 400, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_toxic", - "BigPicture": "icon_spell_toxic", - "PreDeployEffect": "toxic_Predeploy", - "DeployEffect": "Toxic deploy ground halloween", - "DeployEffect2": "Toxic deploy halloween", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": "-270", - "ProductionBuilding": "Mini Spell Factory", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "HeroDamageMultiplier": 5, - "PoisonDPS": 280, - "PoisonIncreaseSlowly": true, - "AttackSpeedBoost": "-65", - "BoostLinkedToPoison": true, - "PoisonAffectAir": true, - "BoostDefenders": true, - "ImmunityTH_CC": true, - "ImmunityStorages": true, - "ImmunityWalls": true, - "ImmunityOtherBuildings": true, - "PreviewScenario": "SpellPoison" - }, - "8": { - "Level": 8, - "TID": "TID_POISON_CLOUD", - "InfoTID": "TID_POISON_CLOUD_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 12, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 318, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 320000, - "BoostTimeMS": 500, - "SpeedBoost": "-46", - "SpeedBoost2": "-46", - "Radius": 400, - "NumberOfHits": 40, - "RandomRadius": 0, - "TimeBetweenHitsMS": 400, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_toxic", - "BigPicture": "icon_spell_toxic", - "PreDeployEffect": "toxic_Predeploy", - "DeployEffect": "Toxic deploy ground halloween", - "DeployEffect2": "Toxic deploy halloween", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": "-275", - "ProductionBuilding": "Mini Spell Factory", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "HeroDamageMultiplier": 5, - "PoisonDPS": 300, - "PoisonIncreaseSlowly": true, - "AttackSpeedBoost": "-68", - "BoostLinkedToPoison": true, - "PoisonAffectAir": true, - "BoostDefenders": true, - "ImmunityTH_CC": true, - "ImmunityStorages": true, - "ImmunityWalls": true, - "ImmunityOtherBuildings": true, - "PreviewScenario": "SpellPoison" - }, - "9": { - "Level": 9, - "TID": "TID_POISON_CLOUD", - "InfoTID": "TID_POISON_CLOUD_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 13, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 360, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 350000, - "BoostTimeMS": 500, - "SpeedBoost": "-48", - "SpeedBoost2": "-48", - "Radius": 400, - "NumberOfHits": 40, - "RandomRadius": 0, - "TimeBetweenHitsMS": 400, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_toxic", - "BigPicture": "icon_spell_toxic", - "PreDeployEffect": "toxic_Predeploy", - "DeployEffect": "Toxic deploy ground halloween", - "DeployEffect2": "Toxic deploy halloween", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": "-280", - "ProductionBuilding": "Mini Spell Factory", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "HeroDamageMultiplier": 5, - "PoisonDPS": 320, - "PoisonIncreaseSlowly": true, - "AttackSpeedBoost": "-70", - "BoostLinkedToPoison": true, - "PoisonAffectAir": true, - "BoostDefenders": true, - "ImmunityTH_CC": true, - "ImmunityStorages": true, - "ImmunityWalls": true, - "ImmunityOtherBuildings": true, - "PreviewScenario": "SpellPoison" - }, - "10": { - "Level": 10, - "TID": "TID_POISON_CLOUD", - "InfoTID": "TID_POISON_CLOUD_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 14, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 360, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 350000, - "BoostTimeMS": 500, - "SpeedBoost": "-50", - "SpeedBoost2": "-50", - "Radius": 400, - "NumberOfHits": 40, - "RandomRadius": 0, - "TimeBetweenHitsMS": 400, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_toxic", - "BigPicture": "icon_spell_toxic", - "PreDeployEffect": "toxic_Predeploy", - "DeployEffect": "Toxic deploy ground halloween", - "DeployEffect2": "Toxic deploy halloween", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": "-285", - "ProductionBuilding": "Mini Spell Factory", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "HeroDamageMultiplier": 5, - "PoisonDPS": 340, - "PoisonIncreaseSlowly": true, - "AttackSpeedBoost": "-72", - "BoostLinkedToPoison": true, - "PoisonAffectAir": true, - "BoostDefenders": true, - "ImmunityTH_CC": true, - "ImmunityStorages": true, - "ImmunityWalls": true, - "ImmunityOtherBuildings": true, - "PreviewScenario": "SpellPoison" - } - }, - "Earthquake Spell": { - "1": { - "Level": 1, - "TID": "TID_EARTHQUAKE", - "InfoTID": "TID_EARTHQUAKE_INFO", - "SpellForgeLevel": 2, - "LaboratoryLevel": 1, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 18, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 12000, - "BuildingDamagePermil": 29, - "Radius": 350, - "NumberOfHits": 5, - "RandomRadius": 200, - "TimeBetweenHitsMS": 400, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_earthquake", - "BigPicture": "icon_spell_earthquake", - "PreDeployEffect": "Earthquake_Predeploy", - "DeployEffect": "EarthQuake_deploy_ground_0", - "DeployEffect2": "EarthQuake_deploy_0", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 150, - "ProductionBuilding": "Mini Spell Factory", - "TargetInfoString": "TID_INFO_TARGET_TYPE_BUILDINGS_AND_WALLS", - "PreferredTarget": "Wall", - "PreferredTargetDamageMod": 5, - "ImmunitySiegeMachines": true, - "ImmunityOtherCharacters": true, - "ImmunityStorages": true, - "PreviewScenario": "SpellQuake" - }, - "2": { - "Level": 2, - "TID": "TID_EARTHQUAKE", - "InfoTID": "TID_EARTHQUAKE_INFO", - "SpellForgeLevel": 2, - "LaboratoryLevel": 6, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 36, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 24000, - "BuildingDamagePermil": 34, - "Radius": 380, - "NumberOfHits": 5, - "RandomRadius": 200, - "TimeBetweenHitsMS": 400, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_earthquake", - "BigPicture": "icon_spell_earthquake", - "PreDeployEffect": "Earthquake_Predeploy", - "DeployEffect": "EarthQuake_deploy_ground", - "DeployEffect2": "EarthQuake_deploy", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 145, - "ProductionBuilding": "Mini Spell Factory", - "TargetInfoString": "TID_INFO_TARGET_TYPE_BUILDINGS_AND_WALLS", - "PreferredTarget": "Wall", - "PreferredTargetDamageMod": 5, - "ImmunitySiegeMachines": true, - "ImmunityOtherCharacters": true, - "ImmunityStorages": true, - "PreviewScenario": "SpellQuake" - }, - "3": { - "Level": 3, - "TID": "TID_EARTHQUAKE", - "InfoTID": "TID_EARTHQUAKE_INFO", - "SpellForgeLevel": 2, - "LaboratoryLevel": 7, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 102, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 51000, - "BuildingDamagePermil": 42, - "Radius": 410, - "NumberOfHits": 5, - "RandomRadius": 200, - "TimeBetweenHitsMS": 400, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_earthquake", - "BigPicture": "icon_spell_earthquake", - "PreDeployEffect": "Earthquake_Predeploy", - "DeployEffect": "EarthQuake_deploy_ground_2", - "DeployEffect2": "EarthQuake_deploy_2", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 140, - "ProductionBuilding": "Mini Spell Factory", - "TargetInfoString": "TID_INFO_TARGET_TYPE_BUILDINGS_AND_WALLS", - "PreferredTarget": "Wall", - "PreferredTargetDamageMod": 5, - "ImmunitySiegeMachines": true, - "ImmunityOtherCharacters": true, - "ImmunityStorages": true, - "PreviewScenario": "SpellQuake" - }, - "4": { - "Level": 4, - "TID": "TID_EARTHQUAKE", - "InfoTID": "TID_EARTHQUAKE_INFO", - "SpellForgeLevel": 2, - "LaboratoryLevel": 8, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 186, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 84000, - "BuildingDamagePermil": 50, - "Radius": 440, - "NumberOfHits": 5, - "RandomRadius": 200, - "TimeBetweenHitsMS": 400, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_earthquake", - "BigPicture": "icon_spell_earthquake", - "PreDeployEffect": "Earthquake_Predeploy", - "DeployEffect": "EarthQuake_deploy_ground_3", - "DeployEffect2": "EarthQuake_deploy_3", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 135, - "ProductionBuilding": "Mini Spell Factory", - "TargetInfoString": "TID_INFO_TARGET_TYPE_BUILDINGS_AND_WALLS", - "PreferredTarget": "Wall", - "PreferredTargetDamageMod": 5, - "ImmunitySiegeMachines": true, - "ImmunityOtherCharacters": true, - "ImmunityStorages": true, - "PreviewScenario": "SpellQuake" - }, - "5": { - "Level": 5, - "TID": "TID_EARTHQUAKE", - "InfoTID": "TID_EARTHQUAKE_INFO", - "SpellForgeLevel": 2, - "LaboratoryLevel": 9, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 186, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 84000, - "BuildingDamagePermil": 58, - "Radius": 470, - "NumberOfHits": 5, - "RandomRadius": 200, - "TimeBetweenHitsMS": 400, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_earthquake", - "BigPicture": "icon_spell_earthquake", - "PreDeployEffect": "Earthquake_Predeploy", - "DeployEffect": "EarthQuake_deploy_ground_4", - "DeployEffect2": "EarthQuake_deploy_4", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 130, - "ProductionBuilding": "Mini Spell Factory", - "TargetInfoString": "TID_INFO_TARGET_TYPE_BUILDINGS_AND_WALLS", - "PreferredTarget": "Wall", - "PreferredTargetDamageMod": 5, - "ImmunitySiegeMachines": true, - "ImmunityOtherCharacters": true, - "ImmunityStorages": true, - "PreviewScenario": "SpellQuake" - } - }, - "Haste Spell": { - "1": { - "Level": 1, - "TID": "TID_SPEEDUP", - "InfoTID": "TID_SPEEDUP_INFO", - "SpellForgeLevel": 3, - "LaboratoryLevel": 1, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 36, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 16000, - "BoostTimeMS": 1000, - "SpeedBoost": 28, - "SpeedBoost2": 14, - "Radius": 400, - "NumberOfHits": 40, - "RandomRadius": 200, - "TimeBetweenHitsMS": 250, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_speedup", - "BigPicture": "icon_spell_speedup", - "PreDeployEffect": "speedup_Predeploy", - "DeployEffect": "Speedup_deploy_lvl1", - "DeployEffect2": "Speedup_deploy_top_lvl1", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 200, - "ProductionBuilding": "Mini Spell Factory", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "PreviewScenario": "SpellBooster" - }, - "2": { - "Level": 2, - "TID": "TID_SPEEDUP", - "InfoTID": "TID_SPEEDUP_INFO", - "SpellForgeLevel": 3, - "LaboratoryLevel": 7, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 62, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 34000, - "BoostTimeMS": 1000, - "SpeedBoost": 34, - "SpeedBoost2": 17, - "Radius": 400, - "NumberOfHits": 60, - "RandomRadius": 200, - "TimeBetweenHitsMS": 250, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_speedup", - "BigPicture": "icon_spell_speedup", - "PreDeployEffect": "speedup_Predeploy", - "DeployEffect": "Speedup_deploy_lvl2", - "DeployEffect2": "Speedup_deploy_top_lvl2", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 200, - "ProductionBuilding": "Mini Spell Factory", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "PreviewScenario": "SpellBooster" - }, - "3": { - "Level": 3, - "TID": "TID_SPEEDUP", - "InfoTID": "TID_SPEEDUP_INFO", - "SpellForgeLevel": 3, - "LaboratoryLevel": 8, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 120, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 60000, - "BoostTimeMS": 1000, - "SpeedBoost": 40, - "SpeedBoost2": 20, - "Radius": 400, - "NumberOfHits": 80, - "RandomRadius": 200, - "TimeBetweenHitsMS": 250, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_speedup", - "BigPicture": "icon_spell_speedup", - "PreDeployEffect": "speedup_Predeploy", - "DeployEffect": "Speedup_deploy_lvl3", - "DeployEffect2": "Speedup_deploy_top_lvl3", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 180, - "ProductionBuilding": "Mini Spell Factory", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "PreviewScenario": "SpellBooster" - }, - "4": { - "Level": 4, - "TID": "TID_SPEEDUP", - "InfoTID": "TID_SPEEDUP_INFO", - "SpellForgeLevel": 3, - "LaboratoryLevel": 8, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 186, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 77000, - "BoostTimeMS": 1000, - "SpeedBoost": 46, - "SpeedBoost2": 23, - "Radius": 400, - "NumberOfHits": 100, - "RandomRadius": 200, - "TimeBetweenHitsMS": 250, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_speedup", - "BigPicture": "icon_spell_speedup", - "PreDeployEffect": "speedup_Predeploy", - "DeployEffect": "Speedup_deploy_lvl4", - "DeployEffect2": "Speedup_deploy_top_lvl4", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 180, - "ProductionBuilding": "Mini Spell Factory", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "PreviewScenario": "SpellBooster" - }, - "5": { - "Level": 5, - "TID": "TID_SPEEDUP", - "InfoTID": "TID_SPEEDUP_INFO", - "SpellForgeLevel": 3, - "LaboratoryLevel": 9, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 186, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 77000, - "BoostTimeMS": 1000, - "SpeedBoost": 52, - "SpeedBoost2": 26, - "Radius": 400, - "NumberOfHits": 120, - "RandomRadius": 200, - "TimeBetweenHitsMS": 250, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_speedup", - "BigPicture": "icon_spell_speedup", - "PreDeployEffect": "speedup_Predeploy", - "DeployEffect": "Speedup_deploy_lvl5", - "DeployEffect2": "Speedup_deploy_top_lvl5", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 180, - "ProductionBuilding": "Mini Spell Factory", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "PreviewScenario": "SpellBooster" - } - }, - "Clone Spell": { - "1": { - "Level": 1, - "TID": "TID_DUPLICATE_SPELL", - "InfoTID": "TID_DUPLICATE_SPELL_INFO", - "SpellForgeLevel": 5, - "LaboratoryLevel": 1, - "DonateCost": 15, - "HousingSpace": 3, - "TrainingTime": 540, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 42, - "UpgradeResource": "Elixir", - "UpgradeCost": 2100000, - "Radius": 350, - "NumberOfHits": 60, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_clone", - "BigPicture": "icon_spell_clone", - "PreDeployEffect": "Clone_Predeploy", - "DeployEffect": "Clone deploy", - "DeployEffect2": "Clone deploy top", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 300, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "DuplicateHousing": 22, - "DuplicateLifetime": 30000, - "PreviewScenario": "SpellBooster" - }, - "2": { - "Level": 2, - "TID": "TID_DUPLICATE_SPELL", - "InfoTID": "TID_DUPLICATE_SPELL_INFO", - "SpellForgeLevel": 5, - "LaboratoryLevel": 8, - "DonateCost": 15, - "HousingSpace": 3, - "TrainingTime": 540, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 72, - "UpgradeResource": "Elixir", - "UpgradeCost": 3400000, - "Radius": 350, - "NumberOfHits": 60, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_clone", - "BigPicture": "icon_spell_clone", - "PreDeployEffect": "Clone_Predeploy", - "DeployEffect": "Clone deploy", - "DeployEffect2": "Clone deploy top", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 330, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "DuplicateHousing": 24, - "DuplicateLifetime": 30000, - "PreviewScenario": "SpellBooster" - }, - "3": { - "Level": 3, - "TID": "TID_DUPLICATE_SPELL", - "InfoTID": "TID_DUPLICATE_SPELL_INFO", - "SpellForgeLevel": 5, - "LaboratoryLevel": 8, - "DonateCost": 15, - "HousingSpace": 3, - "TrainingTime": 540, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 84, - "UpgradeResource": "Elixir", - "UpgradeCost": 4200000, - "Radius": 350, - "NumberOfHits": 60, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_clone", - "BigPicture": "icon_spell_clone", - "PreDeployEffect": "Clone_Predeploy", - "DeployEffect": "Clone deploy", - "DeployEffect2": "Clone deploy top", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 360, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "DuplicateHousing": 26, - "DuplicateLifetime": 30000, - "PreviewScenario": "SpellBooster" - }, - "4": { - "Level": 4, - "TID": "TID_DUPLICATE_SPELL", - "InfoTID": "TID_DUPLICATE_SPELL_INFO", - "SpellForgeLevel": 5, - "LaboratoryLevel": 9, - "DonateCost": 15, - "HousingSpace": 3, - "TrainingTime": 540, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 96, - "UpgradeResource": "Elixir", - "UpgradeCost": 5600000, - "Radius": 350, - "NumberOfHits": 60, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_clone", - "BigPicture": "icon_spell_clone", - "PreDeployEffect": "Clone_Predeploy", - "DeployEffect": "Clone deploy", - "DeployEffect2": "Clone deploy top", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 360, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "DuplicateHousing": 28, - "DuplicateLifetime": 30000, - "PreviewScenario": "SpellBooster" - }, - "5": { - "Level": 5, - "TID": "TID_DUPLICATE_SPELL", - "InfoTID": "TID_DUPLICATE_SPELL_INFO", - "SpellForgeLevel": 5, - "LaboratoryLevel": 9, - "DonateCost": 15, - "HousingSpace": 3, - "TrainingTime": 540, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 168, - "UpgradeResource": "Elixir", - "UpgradeCost": 7200000, - "Radius": 350, - "NumberOfHits": 60, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_clone", - "BigPicture": "icon_spell_clone", - "PreDeployEffect": "Clone_Predeploy", - "DeployEffect": "Clone deploy", - "DeployEffect2": "Clone deploy top", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 360, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "DuplicateHousing": 30, - "DuplicateLifetime": 30000, - "PreviewScenario": "SpellBooster" - }, - "6": { - "Level": 6, - "TID": "TID_DUPLICATE_SPELL", - "InfoTID": "TID_DUPLICATE_SPELL_INFO", - "SpellForgeLevel": 5, - "LaboratoryLevel": 11, - "DonateCost": 15, - "HousingSpace": 3, - "TrainingTime": 540, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 216, - "UpgradeResource": "Elixir", - "UpgradeCost": 15500000, - "Radius": 350, - "NumberOfHits": 60, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_clone", - "BigPicture": "icon_spell_clone", - "PreDeployEffect": "Clone_Predeploy", - "DeployEffect": "Clone deploy", - "DeployEffect2": "Clone deploy top", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 330, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "DuplicateHousing": 34, - "DuplicateLifetime": 30000, - "PreviewScenario": "SpellBooster" - }, - "7": { - "Level": 7, - "TID": "TID_DUPLICATE_SPELL", - "InfoTID": "TID_DUPLICATE_SPELL_INFO", - "SpellForgeLevel": 5, - "LaboratoryLevel": 12, - "DonateCost": 15, - "HousingSpace": 3, - "TrainingTime": 540, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 318, - "UpgradeResource": "Elixir", - "UpgradeCost": 18000000, - "Radius": 350, - "NumberOfHits": 60, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_clone", - "BigPicture": "icon_spell_clone", - "PreDeployEffect": "Clone_Predeploy", - "DeployEffect": "Clone deploy", - "DeployEffect2": "Clone deploy top", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 310, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "DuplicateHousing": 38, - "DuplicateLifetime": 30000, - "PreviewScenario": "SpellBooster" - }, - "8": { - "Level": 8, - "TID": "TID_DUPLICATE_SPELL", - "InfoTID": "TID_DUPLICATE_SPELL_INFO", - "SpellForgeLevel": 5, - "LaboratoryLevel": 13, - "DonateCost": 15, - "HousingSpace": 3, - "TrainingTime": 540, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 318, - "UpgradeResource": "Elixir", - "UpgradeCost": 18000000, - "Radius": 350, - "NumberOfHits": 60, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_clone", - "BigPicture": "icon_spell_clone", - "PreDeployEffect": "Clone_Predeploy", - "DeployEffect": "Clone deploy", - "DeployEffect2": "Clone deploy top", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 290, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "DuplicateHousing": 42, - "DuplicateLifetime": 30000, - "PreviewScenario": "SpellBooster" - } - }, - "Skeleton Spell": { - "1": { - "Level": 1, - "TID": "TID_CREATE_SKELETONS_SPELL", - "InfoTID": "TID_CREATE_SKELETONS_SPELL_INFO", - "SpellForgeLevel": 4, - "LaboratoryLevel": 1, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 0, - "HitTimeMS": 0, - "UpgradeTimeH": 32, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 22000, - "Radius": 225, - "NumberOfHits": 1, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_skeleton", - "BigPicture": "icon_spell_skeleton", - "PreDeployEffect": "skele_Predeploy", - "DeployEffect": "SkeleSpell Summon1", - "StrengthWeight": 460, - "ProductionBuilding": "Mini Spell Factory", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND", - "SummonTroop": "ShieldedSkeleton", - "UnitsToSpawn": 12, - "SpawnDuration": 12000, - "SpawnFirstGroupSize": 3, - "PreviewScenario": "SpellSkeleton" - }, - "2": { - "Level": 2, - "TID": "TID_CREATE_SKELETONS_SPELL", - "InfoTID": "TID_CREATE_SKELETONS_SPELL_INFO", - "SpellForgeLevel": 4, - "LaboratoryLevel": 8, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 0, - "HitTimeMS": 0, - "UpgradeTimeH": 62, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 34000, - "Radius": 225, - "NumberOfHits": 1, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_skeleton", - "BigPicture": "icon_spell_skeleton", - "PreDeployEffect": "skele_Predeploy", - "DeployEffect": "SkeleSpell Summon2", - "StrengthWeight": 470, - "ProductionBuilding": "Mini Spell Factory", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND", - "SummonTroop": "ShieldedSkeleton", - "UnitsToSpawn": 13, - "SpawnDuration": 13000, - "SpawnFirstGroupSize": 3, - "PreviewScenario": "SpellSkeleton" - }, - "3": { - "Level": 3, - "TID": "TID_CREATE_SKELETONS_SPELL", - "InfoTID": "TID_CREATE_SKELETONS_SPELL_INFO", - "SpellForgeLevel": 4, - "LaboratoryLevel": 8, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 0, - "HitTimeMS": 0, - "UpgradeTimeH": 96, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 50000, - "Radius": 225, - "NumberOfHits": 1, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_skeleton", - "BigPicture": "icon_spell_skeleton", - "PreDeployEffect": "skele_Predeploy", - "DeployEffect": "SkeleSpell Summon3", - "StrengthWeight": 480, - "ProductionBuilding": "Mini Spell Factory", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND", - "SummonTroop": "ShieldedSkeleton", - "UnitsToSpawn": 14, - "SpawnDuration": 14000, - "SpawnFirstGroupSize": 3, - "PreviewScenario": "SpellSkeleton" - }, - "4": { - "Level": 4, - "TID": "TID_CREATE_SKELETONS_SPELL", - "InfoTID": "TID_CREATE_SKELETONS_SPELL_INFO", - "SpellForgeLevel": 4, - "LaboratoryLevel": 9, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 0, - "HitTimeMS": 0, - "UpgradeTimeH": 102, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 80000, - "Radius": 225, - "NumberOfHits": 1, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_skeleton", - "BigPicture": "icon_spell_skeleton", - "PreDeployEffect": "skele_Predeploy", - "DeployEffect": "SkeleSpell Summon4", - "StrengthWeight": 500, - "ProductionBuilding": "Mini Spell Factory", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND", - "SummonTroop": "ShieldedSkeleton", - "UnitsToSpawn": 15, - "SpawnDuration": 15000, - "SpawnFirstGroupSize": 3, - "PreviewScenario": "SpellSkeleton" - }, - "5": { - "Level": 5, - "TID": "TID_CREATE_SKELETONS_SPELL", - "InfoTID": "TID_CREATE_SKELETONS_SPELL_INFO", - "SpellForgeLevel": 4, - "LaboratoryLevel": 10, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 0, - "HitTimeMS": 0, - "UpgradeTimeH": 132, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 100000, - "Radius": 225, - "NumberOfHits": 1, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_skeleton", - "BigPicture": "icon_spell_skeleton", - "PreDeployEffect": "skele_Predeploy", - "DeployEffect": "SkeleSpell Summon5", - "StrengthWeight": 520, - "ProductionBuilding": "Mini Spell Factory", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND", - "SummonTroop": "ShieldedSkeleton", - "UnitsToSpawn": 16, - "SpawnDuration": 16000, - "SpawnFirstGroupSize": 3, - "PreviewScenario": "SpellSkeleton" - }, - "6": { - "Level": 6, - "TID": "TID_CREATE_SKELETONS_SPELL", - "InfoTID": "TID_CREATE_SKELETONS_SPELL_INFO", - "SpellForgeLevel": 4, - "LaboratoryLevel": 10, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 0, - "HitTimeMS": 0, - "UpgradeTimeH": 168, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 150000, - "Radius": 225, - "NumberOfHits": 1, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_skeleton", - "BigPicture": "icon_spell_skeleton", - "PreDeployEffect": "skele_Predeploy", - "DeployEffect": "SkeleSpell Summon6", - "StrengthWeight": 540, - "ProductionBuilding": "Mini Spell Factory", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND", - "SummonTroop": "ShieldedSkeleton", - "UnitsToSpawn": 17, - "SpawnDuration": 17000, - "SpawnFirstGroupSize": 3, - "PreviewScenario": "SpellSkeleton" - }, - "7": { - "Level": 7, - "TID": "TID_CREATE_SKELETONS_SPELL", - "InfoTID": "TID_CREATE_SKELETONS_SPELL_INFO", - "SpellForgeLevel": 4, - "LaboratoryLevel": 11, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 0, - "HitTimeMS": 0, - "UpgradeTimeH": 318, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 320000, - "Radius": 225, - "NumberOfHits": 1, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_skeleton", - "BigPicture": "icon_spell_skeleton", - "PreDeployEffect": "skele_Predeploy", - "DeployEffect": "SkeleSpell Summon7", - "StrengthWeight": 560, - "ProductionBuilding": "Mini Spell Factory", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND", - "SummonTroop": "ShieldedSkeleton", - "UnitsToSpawn": 18, - "SpawnDuration": 18000, - "SpawnFirstGroupSize": 3, - "PreviewScenario": "SpellSkeleton" - }, - "8": { - "Level": 8, - "TID": "TID_CREATE_SKELETONS_SPELL", - "InfoTID": "TID_CREATE_SKELETONS_SPELL_INFO", - "SpellForgeLevel": 4, - "LaboratoryLevel": 13, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 0, - "HitTimeMS": 0, - "UpgradeTimeH": 318, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 320000, - "Radius": 225, - "NumberOfHits": 1, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_skeleton", - "BigPicture": "icon_spell_skeleton", - "PreDeployEffect": "skele_Predeploy", - "DeployEffect": "SkeleSpell Summon8", - "StrengthWeight": 580, - "ProductionBuilding": "Mini Spell Factory", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND", - "SummonTroop": "ShieldedSkeleton", - "UnitsToSpawn": 19, - "SpawnDuration": 19000, - "SpawnFirstGroupSize": 3, - "PreviewScenario": "SpellSkeleton" - } - }, - "Birthday Boom": { - "1": { - "Level": 1, - "TID": "TID_BIRTHDAY_SPELL", - "InfoTID": "TID_BIRTHDAY_SPELL_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 1, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 0, - "ChargingTimeMS": 150, - "HitTimeMS": 1750, - "UpgradeResource": "Elixir", - "SpeedBoost2": 0, - "Damage": 500, - "Radius": 250, - "NumberOfHits": 1, - "RandomRadius": 0, - "TimeBetweenHitsMS": 0, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_birthday", - "BigPicture": "icon_spell_birthday", - "PreDeployEffect": "Birthday predeploy", - "DeployEffect": "BirthdaySpell Summon2", - "DeployEffect2": "BirthdaySpell Summon1", - "ChargingEffect": "Birthday Hit", - "HitEffect": "Birthday Spell Hit", - "RandomRadiusAffectsOnlyGfx": false, - "SpawnObstacle": "Birthday TombStone", - "NumObstacles": 3, - "StrengthWeight": 0, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "DamageTHPercent": 70, - "DisableDonate": true, - "ScaleByTH": true, - "EnabledByCalendar": true, - "PauseCombatComponentsMs": 2000 - } - }, - "Bat Spell": { - "1": { - "Level": 1, - "TID": "TID_SPELL_BATS", - "InfoTID": "TID_SPELL_BATS_INFO", - "SpellForgeLevel": 5, - "LaboratoryLevel": 1, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 0, - "HitTimeMS": 0, - "UpgradeTimeH": 42, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 26000, - "BoostTimeMS": 0, - "SpeedBoost": 0, - "SpeedBoost2": 0, - "Damage": 0, - "Radius": 225, - "NumberOfHits": 1, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_bats", - "BigPicture": "icon_spell_bats", - "PreDeployEffect": "bat_Predeploy", - "DeployEffect": "BatSpell Summon1", - "StrengthWeight": 460, - "ProductionBuilding": "Mini Spell Factory", - "TargetInfoString": "TID_BUILDING_CLASS_DEFENSE", - "SummonTroop": "SpellBat", - "UnitsToSpawn": 7, - "SpawnDuration": 4200, - "SpawnFirstGroupSize": 1, - "PreviewScenario": "SpellBat" - }, - "2": { - "Level": 2, - "TID": "TID_SPELL_BATS", - "InfoTID": "TID_SPELL_BATS_INFO", - "SpellForgeLevel": 5, - "LaboratoryLevel": 8, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 0, - "HitTimeMS": 0, - "UpgradeTimeH": 84, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 51000, - "BoostTimeMS": 0, - "SpeedBoost": 0, - "SpeedBoost2": 0, - "Damage": 0, - "Radius": 225, - "NumberOfHits": 1, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_bats", - "BigPicture": "icon_spell_bats", - "PreDeployEffect": "bat_Predeploy", - "DeployEffect": "BatSpell Summon2", - "StrengthWeight": 470, - "ProductionBuilding": "Mini Spell Factory", - "TargetInfoString": "TID_BUILDING_CLASS_DEFENSE", - "SummonTroop": "SpellBat", - "UnitsToSpawn": 9, - "SpawnDuration": 5400, - "SpawnFirstGroupSize": 1, - "PreviewScenario": "SpellBat" - }, - "3": { - "Level": 3, - "TID": "TID_SPELL_BATS", - "InfoTID": "TID_SPELL_BATS_INFO", - "SpellForgeLevel": 5, - "LaboratoryLevel": 8, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 0, - "HitTimeMS": 0, - "UpgradeTimeH": 126, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 70000, - "BoostTimeMS": 0, - "SpeedBoost": 0, - "SpeedBoost2": 0, - "Damage": 0, - "Radius": 225, - "NumberOfHits": 1, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_bats", - "BigPicture": "icon_spell_bats", - "PreDeployEffect": "bat_Predeploy", - "DeployEffect": "BatSpell Summon3", - "StrengthWeight": 480, - "ProductionBuilding": "Mini Spell Factory", - "TargetInfoString": "TID_BUILDING_CLASS_DEFENSE", - "SummonTroop": "SpellBat", - "UnitsToSpawn": 11, - "SpawnDuration": 6600, - "SpawnFirstGroupSize": 1, - "PreviewScenario": "SpellBat" - }, - "4": { - "Level": 4, - "TID": "TID_SPELL_BATS", - "InfoTID": "TID_SPELL_BATS_INFO", - "SpellForgeLevel": 5, - "LaboratoryLevel": 9, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 0, - "HitTimeMS": 0, - "UpgradeTimeH": 144, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 95000, - "BoostTimeMS": 0, - "SpeedBoost": 0, - "SpeedBoost2": 0, - "Damage": 0, - "Radius": 225, - "NumberOfHits": 1, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_bats", - "BigPicture": "icon_spell_bats", - "PreDeployEffect": "bat_Predeploy", - "DeployEffect": "BatSpell Summon4", - "StrengthWeight": 500, - "ProductionBuilding": "Mini Spell Factory", - "TargetInfoString": "TID_BUILDING_CLASS_DEFENSE", - "SummonTroop": "SpellBat", - "UnitsToSpawn": 16, - "SpawnDuration": 9600, - "SpawnFirstGroupSize": 1, - "PreviewScenario": "SpellBat" - }, - "5": { - "Level": 5, - "TID": "TID_SPELL_BATS", - "InfoTID": "TID_SPELL_BATS_INFO", - "SpellForgeLevel": 5, - "LaboratoryLevel": 10, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 0, - "HitTimeMS": 0, - "UpgradeTimeH": 324, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 330000, - "BoostTimeMS": 0, - "SpeedBoost": 0, - "SpeedBoost2": 0, - "Damage": 0, - "Radius": 225, - "NumberOfHits": 1, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_bats", - "BigPicture": "icon_spell_bats", - "PreDeployEffect": "bat_Predeploy", - "DeployEffect": "BatSpell Summon5", - "StrengthWeight": 520, - "ProductionBuilding": "Mini Spell Factory", - "TargetInfoString": "TID_BUILDING_CLASS_DEFENSE", - "SummonTroop": "SpellBat", - "UnitsToSpawn": 21, - "SpawnDuration": 12600, - "SpawnFirstGroupSize": 1, - "PreviewScenario": "SpellBat" - }, - "6": { - "Level": 6, - "TID": "TID_SPELL_BATS", - "InfoTID": "TID_SPELL_BATS_INFO", - "SpellForgeLevel": 5, - "LaboratoryLevel": 13, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 0, - "HitTimeMS": 0, - "UpgradeTimeH": 324, - "UpgradeResource": "DarkElixir", - "UpgradeCost": 330000, - "BoostTimeMS": 0, - "SpeedBoost": 0, - "SpeedBoost2": 0, - "Damage": 0, - "Radius": 225, - "NumberOfHits": 1, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_bats", - "BigPicture": "icon_spell_bats", - "PreDeployEffect": "bat_Predeploy", - "DeployEffect": "BatSpell Summon6", - "StrengthWeight": 560, - "ProductionBuilding": "Mini Spell Factory", - "TargetInfoString": "TID_BUILDING_CLASS_DEFENSE", - "SummonTroop": "SpellBat", - "UnitsToSpawn": 22, - "SpawnDuration": 13200, - "SpawnFirstGroupSize": 1, - "PreviewScenario": "SpellBat" - } - }, - "Invisibility Spell": { - "1": { - "Level": 1, - "TID": "TID_INVISIBILITY_SPELL", - "InfoTID": "TID_INVISIBILITY_SPELL_INFO", - "SpellForgeLevel": 6, - "LaboratoryLevel": 1, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 132, - "UpgradeResource": "Elixir", - "UpgradeCost": 5600000, - "Radius": 400, - "NumberOfHits": 15, - "RandomRadius": 200, - "TimeBetweenHitsMS": 250, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_invisibility", - "BigPicture": "icon_spell_invisibility", - "PreDeployEffect": "Invisibility_Predeploy", - "DeployEffect": "Invisibility area lvl1", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 210, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "InvisibilityTime": 600, - "ImmunitySiegeMachines": true, - "ImmunityWalls": true, - "PreviewScenario": "SpellInvisibility" - }, - "2": { - "Level": 2, - "TID": "TID_INVISIBILITY_SPELL", - "InfoTID": "TID_INVISIBILITY_SPELL_INFO", - "SpellForgeLevel": 6, - "LaboratoryLevel": 9, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 144, - "UpgradeResource": "Elixir", - "UpgradeCost": 7500000, - "Radius": 400, - "NumberOfHits": 16, - "RandomRadius": 200, - "TimeBetweenHitsMS": 250, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_invisibility", - "BigPicture": "icon_spell_invisibility", - "PreDeployEffect": "Invisibility_Predeploy", - "DeployEffect": "Invisibility area lvl2", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 215, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "InvisibilityTime": 600, - "ImmunitySiegeMachines": true, - "ImmunityWalls": true, - "PreviewScenario": "SpellInvisibility" - }, - "3": { - "Level": 3, - "TID": "TID_INVISIBILITY_SPELL", - "InfoTID": "TID_INVISIBILITY_SPELL_INFO", - "SpellForgeLevel": 6, - "LaboratoryLevel": 10, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 228, - "UpgradeResource": "Elixir", - "UpgradeCost": 9000000, - "Radius": 400, - "NumberOfHits": 17, - "RandomRadius": 200, - "TimeBetweenHitsMS": 250, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_invisibility", - "BigPicture": "icon_spell_invisibility", - "PreDeployEffect": "Invisibility_Predeploy", - "DeployEffect": "Invisibility area lvl3", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 220, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "InvisibilityTime": 600, - "ImmunitySiegeMachines": true, - "ImmunityWalls": true, - "PreviewScenario": "SpellInvisibility" - }, - "4": { - "Level": 4, - "TID": "TID_INVISIBILITY_SPELL", - "InfoTID": "TID_INVISIBILITY_SPELL_INFO", - "SpellForgeLevel": 6, - "LaboratoryLevel": 11, - "DonateCost": 5, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 800, - "ChargingTimeMS": 300, - "HitTimeMS": 400, - "UpgradeTimeH": 228, - "UpgradeResource": "Elixir", - "UpgradeCost": 9000000, - "Radius": 400, - "NumberOfHits": 18, - "RandomRadius": 200, - "TimeBetweenHitsMS": 250, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_invisibility", - "BigPicture": "icon_spell_invisibility", - "PreDeployEffect": "Invisibility_Predeploy", - "DeployEffect": "Invisibility area lvl4", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 225, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "InvisibilityTime": 600, - "ImmunitySiegeMachines": true, - "ImmunityWalls": true, - "PreviewScenario": "SpellInvisibility" - } - }, - "Recall Spell": { - "1": { - "Level": 1, - "TID": "TID_SPELL_RECALL", - "InfoTID": "TID_SPELL_RECALL_INFO", - "SpellForgeLevel": 7, - "LaboratoryLevel": 1, - "DonateCost": 10, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 800, - "ChargingTimeMS": 0, - "HitTimeMS": 100, - "UpgradeTimeH": 228, - "UpgradeResource": "Elixir", - "UpgradeCost": 7500000, - "BoostTimeMS": 0, - "SpeedBoost": 0, - "SpeedBoost2": 0, - "Damage": 0, - "Radius": 500, - "NumberOfHits": 1, - "RandomRadius": 200, - "TimeBetweenHitsMS": 100, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_recall", - "BigPicture": "icon_spell_recall", - "PreDeployEffect": "Recall_Predeploy", - "DeployEffect": "RecallDeployAuraGround", - "DeployEffect2": "RecallDeployAuraTop", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 120, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "RecallHousing": 83, - "PreviewScenario": "SpellRecall" - }, - "2": { - "Level": 2, - "TID": "TID_SPELL_RECALL", - "InfoTID": "TID_SPELL_RECALL_INFO", - "SpellForgeLevel": 7, - "LaboratoryLevel": 11, - "DonateCost": 10, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 800, - "ChargingTimeMS": 0, - "HitTimeMS": 100, - "UpgradeTimeH": 276, - "UpgradeResource": "Elixir", - "UpgradeCost": 14000000, - "BoostTimeMS": 0, - "SpeedBoost": 0, - "SpeedBoost2": 0, - "Damage": 0, - "Radius": 500, - "NumberOfHits": 1, - "RandomRadius": 200, - "TimeBetweenHitsMS": 100, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_recall", - "BigPicture": "icon_spell_recall", - "PreDeployEffect": "Recall_Predeploy", - "DeployEffect": "RecallDeployAuraGround", - "DeployEffect2": "RecallDeployAuraTop", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 130, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "RecallHousing": 89, - "PreviewScenario": "SpellRecall" - }, - "3": { - "Level": 3, - "TID": "TID_SPELL_RECALL", - "InfoTID": "TID_SPELL_RECALL_INFO", - "SpellForgeLevel": 7, - "LaboratoryLevel": 12, - "DonateCost": 10, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 800, - "ChargingTimeMS": 0, - "HitTimeMS": 100, - "UpgradeTimeH": 318, - "UpgradeResource": "Elixir", - "UpgradeCost": 17500000, - "BoostTimeMS": 0, - "SpeedBoost": 0, - "SpeedBoost2": 0, - "Damage": 0, - "Radius": 500, - "NumberOfHits": 1, - "RandomRadius": 200, - "TimeBetweenHitsMS": 100, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_recall", - "BigPicture": "icon_spell_recall", - "PreDeployEffect": "Recall_Predeploy", - "DeployEffect": "RecallDeployAuraGround", - "DeployEffect2": "RecallDeployAuraTop", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 140, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "RecallHousing": 95, - "PreviewScenario": "SpellRecall" - }, - "4": { - "Level": 4, - "TID": "TID_SPELL_RECALL", - "InfoTID": "TID_SPELL_RECALL_INFO", - "SpellForgeLevel": 7, - "LaboratoryLevel": 13, - "DonateCost": 10, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 800, - "ChargingTimeMS": 0, - "HitTimeMS": 100, - "UpgradeTimeH": 360, - "UpgradeResource": "Elixir", - "UpgradeCost": 19500000, - "BoostTimeMS": 0, - "SpeedBoost": 0, - "SpeedBoost2": 0, - "Damage": 0, - "Radius": 500, - "NumberOfHits": 1, - "RandomRadius": 200, - "TimeBetweenHitsMS": 100, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_recall", - "BigPicture": "icon_spell_recall", - "PreDeployEffect": "Recall_Predeploy", - "DeployEffect": "RecallDeployAuraGround", - "DeployEffect2": "RecallDeployAuraTop", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 145, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "RecallHousing": 101, - "PreviewScenario": "SpellRecall" - }, - "5": { - "Level": 5, - "TID": "TID_SPELL_RECALL", - "InfoTID": "TID_SPELL_RECALL_INFO", - "SpellForgeLevel": 7, - "LaboratoryLevel": 14, - "DonateCost": 10, - "HousingSpace": 2, - "TrainingTime": 360, - "DeployTimeMS": 800, - "ChargingTimeMS": 0, - "HitTimeMS": 100, - "UpgradeTimeH": 360, - "UpgradeResource": "Elixir", - "UpgradeCost": 19500000, - "BoostTimeMS": 0, - "SpeedBoost": 0, - "SpeedBoost2": 0, - "Damage": 0, - "Radius": 500, - "NumberOfHits": 1, - "RandomRadius": 200, - "TimeBetweenHitsMS": 100, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_recall", - "BigPicture": "icon_spell_recall", - "PreDeployEffect": "Recall_Predeploy", - "DeployEffect": "RecallDeployAuraGround", - "DeployEffect2": "RecallDeployAuraTop", - "RandomRadiusAffectsOnlyGfx": true, - "StrengthWeight": 150, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", - "RecallHousing": 107, - "PreviewScenario": "SpellRecall" - } - }, - "Bag of Frostmites": { - "1": { - "Level": 1, - "TID": "TID_SPELL_BAG_OF_FROSTMITES", - "InfoTID": "TID_SPELL_BAG_OF_FROSTMITES_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 1, - "DonateCost": 10, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 300, - "ChargingTimeMS": 0, - "HitTimeMS": 300, - "UpgradeResource": "Elixir", - "BoostTimeMS": 0, - "SpeedBoost": 0, - "SpeedBoost2": 0, - "Damage": 0, - "Radius": 350, - "NumberOfHits": 1, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_frostmitebag", - "BigPicture": "icon_spell_frostmitebag", - "PreDeployEffect": "Frostmites Spell Predeploy", - "DeployEffect": "BagOfFrostmitesEffect", - "FreezeTimeMS": 1500, - "StrengthWeight": 460, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_PREFERRED_TARGET_ANY", - "SummonTroop": "BouncingFrostmite", - "UnitsToSpawn": 10, - "SpawnUpgradeLevel": 1, - "SpawnDuration": 5000, - "SpawnFirstGroupSize": 1, - "EnabledByCalendar": true, - "UpgradeLevelByTH": 6, - "FreezeOuterTimeMS": 1000, - "PreviewScenario": "SpellFrostmites" - }, - "2": { - "Level": 2, - "TID": "TID_SPELL_BAG_OF_FROSTMITES", - "InfoTID": "TID_SPELL_BAG_OF_FROSTMITES_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 1, - "DonateCost": 10, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 300, - "ChargingTimeMS": 0, - "HitTimeMS": 300, - "UpgradeResource": "Elixir", - "BoostTimeMS": 0, - "SpeedBoost": 0, - "SpeedBoost2": 0, - "Damage": 0, - "Radius": 350, - "NumberOfHits": 1, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_frostmitebag", - "BigPicture": "icon_spell_frostmitebag", - "PreDeployEffect": "Frostmites Spell Predeploy", - "DeployEffect": "BagOfFrostmitesEffect2", - "FreezeTimeMS": 1700, - "StrengthWeight": 460, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_PREFERRED_TARGET_ANY", - "SummonTroop": "BouncingFrostmite", - "UnitsToSpawn": 11, - "SpawnUpgradeLevel": 2, - "SpawnDuration": 6000, - "SpawnFirstGroupSize": 1, - "EnabledByCalendar": true, - "UpgradeLevelByTH": 7, - "FreezeOuterTimeMS": 1200, - "PreviewScenario": "SpellFrostmites" - }, - "3": { - "Level": 3, - "TID": "TID_SPELL_BAG_OF_FROSTMITES", - "InfoTID": "TID_SPELL_BAG_OF_FROSTMITES_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 1, - "DonateCost": 10, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 300, - "ChargingTimeMS": 0, - "HitTimeMS": 300, - "UpgradeResource": "Elixir", - "BoostTimeMS": 0, - "SpeedBoost": 0, - "SpeedBoost2": 0, - "Damage": 0, - "Radius": 350, - "NumberOfHits": 1, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_frostmitebag", - "BigPicture": "icon_spell_frostmitebag", - "PreDeployEffect": "Frostmites Spell Predeploy", - "DeployEffect": "BagOfFrostmitesEffect3", - "FreezeTimeMS": 1900, - "StrengthWeight": 460, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_PREFERRED_TARGET_ANY", - "SummonTroop": "BouncingFrostmite", - "UnitsToSpawn": 12, - "SpawnUpgradeLevel": 3, - "SpawnDuration": 7000, - "SpawnFirstGroupSize": 1, - "EnabledByCalendar": true, - "UpgradeLevelByTH": 8, - "FreezeOuterTimeMS": 1400, - "PreviewScenario": "SpellFrostmites" - }, - "4": { - "Level": 4, - "TID": "TID_SPELL_BAG_OF_FROSTMITES", - "InfoTID": "TID_SPELL_BAG_OF_FROSTMITES_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 1, - "DonateCost": 10, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 300, - "ChargingTimeMS": 0, - "HitTimeMS": 300, - "UpgradeResource": "Elixir", - "BoostTimeMS": 0, - "SpeedBoost": 0, - "SpeedBoost2": 0, - "Damage": 0, - "Radius": 350, - "NumberOfHits": 1, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_frostmitebag", - "BigPicture": "icon_spell_frostmitebag", - "PreDeployEffect": "Frostmites Spell Predeploy", - "DeployEffect": "BagOfFrostmitesEffect4", - "FreezeTimeMS": 2100, - "StrengthWeight": 460, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_PREFERRED_TARGET_ANY", - "SummonTroop": "BouncingFrostmite", - "UnitsToSpawn": 13, - "SpawnUpgradeLevel": 4, - "SpawnDuration": 8000, - "SpawnFirstGroupSize": 1, - "EnabledByCalendar": true, - "UpgradeLevelByTH": 9, - "FreezeOuterTimeMS": 1600, - "PreviewScenario": "SpellFrostmites" - }, - "5": { - "Level": 5, - "TID": "TID_SPELL_BAG_OF_FROSTMITES", - "InfoTID": "TID_SPELL_BAG_OF_FROSTMITES_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 1, - "DonateCost": 10, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 300, - "ChargingTimeMS": 0, - "HitTimeMS": 300, - "UpgradeResource": "Elixir", - "BoostTimeMS": 0, - "SpeedBoost": 0, - "SpeedBoost2": 0, - "Damage": 0, - "Radius": 350, - "NumberOfHits": 1, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_frostmitebag", - "BigPicture": "icon_spell_frostmitebag", - "PreDeployEffect": "Frostmites Spell Predeploy", - "DeployEffect": "BagOfFrostmitesEffect5", - "FreezeTimeMS": 2300, - "StrengthWeight": 460, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_PREFERRED_TARGET_ANY", - "SummonTroop": "BouncingFrostmite", - "UnitsToSpawn": 14, - "SpawnUpgradeLevel": 5, - "SpawnDuration": 9000, - "SpawnFirstGroupSize": 1, - "EnabledByCalendar": true, - "UpgradeLevelByTH": 10, - "FreezeOuterTimeMS": 1800, - "PreviewScenario": "SpellFrostmites" - }, - "6": { - "Level": 6, - "TID": "TID_SPELL_BAG_OF_FROSTMITES", - "InfoTID": "TID_SPELL_BAG_OF_FROSTMITES_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 1, - "DonateCost": 10, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 300, - "ChargingTimeMS": 0, - "HitTimeMS": 300, - "UpgradeResource": "Elixir", - "BoostTimeMS": 0, - "SpeedBoost": 0, - "SpeedBoost2": 0, - "Damage": 0, - "Radius": 350, - "NumberOfHits": 1, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_frostmitebag", - "BigPicture": "icon_spell_frostmitebag", - "PreDeployEffect": "Frostmites Spell Predeploy", - "DeployEffect": "BagOfFrostmitesEffect6", - "FreezeTimeMS": 2500, - "StrengthWeight": 460, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_PREFERRED_TARGET_ANY", - "SummonTroop": "BouncingFrostmite", - "UnitsToSpawn": 15, - "SpawnUpgradeLevel": 6, - "SpawnDuration": 10000, - "SpawnFirstGroupSize": 1, - "EnabledByCalendar": true, - "UpgradeLevelByTH": 11, - "FreezeOuterTimeMS": 2000, - "PreviewScenario": "SpellFrostmites" - }, - "7": { - "Level": 7, - "TID": "TID_SPELL_BAG_OF_FROSTMITES", - "InfoTID": "TID_SPELL_BAG_OF_FROSTMITES_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 1, - "DonateCost": 10, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 300, - "ChargingTimeMS": 0, - "HitTimeMS": 300, - "UpgradeResource": "Elixir", - "BoostTimeMS": 0, - "SpeedBoost": 0, - "SpeedBoost2": 0, - "Damage": 0, - "Radius": 350, - "NumberOfHits": 1, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_frostmitebag", - "BigPicture": "icon_spell_frostmitebag", - "PreDeployEffect": "Frostmites Spell Predeploy", - "DeployEffect": "BagOfFrostmitesEffect7", - "FreezeTimeMS": 2700, - "StrengthWeight": 460, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_PREFERRED_TARGET_ANY", - "SummonTroop": "BouncingFrostmite", - "UnitsToSpawn": 16, - "SpawnUpgradeLevel": 7, - "SpawnDuration": 11000, - "SpawnFirstGroupSize": 1, - "EnabledByCalendar": true, - "UpgradeLevelByTH": 12, - "FreezeOuterTimeMS": 2200, - "PreviewScenario": "SpellFrostmites" - }, - "8": { - "Level": 8, - "TID": "TID_SPELL_BAG_OF_FROSTMITES", - "InfoTID": "TID_SPELL_BAG_OF_FROSTMITES_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 1, - "DonateCost": 10, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 300, - "ChargingTimeMS": 0, - "HitTimeMS": 300, - "UpgradeResource": "Elixir", - "BoostTimeMS": 0, - "SpeedBoost": 0, - "SpeedBoost2": 0, - "Damage": 0, - "Radius": 350, - "NumberOfHits": 1, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_frostmitebag", - "BigPicture": "icon_spell_frostmitebag", - "PreDeployEffect": "Frostmites Spell Predeploy", - "DeployEffect": "BagOfFrostmitesEffect8", - "FreezeTimeMS": 2900, - "StrengthWeight": 460, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_PREFERRED_TARGET_ANY", - "SummonTroop": "BouncingFrostmite", - "UnitsToSpawn": 17, - "SpawnUpgradeLevel": 8, - "SpawnDuration": 12000, - "SpawnFirstGroupSize": 1, - "EnabledByCalendar": true, - "UpgradeLevelByTH": 13, - "FreezeOuterTimeMS": 2400, - "PreviewScenario": "SpellFrostmites" - }, - "9": { - "Level": 9, - "TID": "TID_SPELL_BAG_OF_FROSTMITES", - "InfoTID": "TID_SPELL_BAG_OF_FROSTMITES_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 1, - "DonateCost": 10, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 300, - "ChargingTimeMS": 0, - "HitTimeMS": 300, - "UpgradeResource": "Elixir", - "BoostTimeMS": 0, - "SpeedBoost": 0, - "SpeedBoost2": 0, - "Damage": 0, - "Radius": 350, - "NumberOfHits": 1, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_frostmitebag", - "BigPicture": "icon_spell_frostmitebag", - "PreDeployEffect": "Frostmites Spell Predeploy", - "DeployEffect": "BagOfFrostmitesEffect9", - "FreezeTimeMS": 3100, - "StrengthWeight": 460, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_PREFERRED_TARGET_ANY", - "SummonTroop": "BouncingFrostmite", - "UnitsToSpawn": 18, - "SpawnUpgradeLevel": 9, - "SpawnDuration": 13000, - "SpawnFirstGroupSize": 1, - "EnabledByCalendar": true, - "UpgradeLevelByTH": 14, - "FreezeOuterTimeMS": 2600, - "PreviewScenario": "SpellFrostmites" - }, - "10": { - "Level": 10, - "TID": "TID_SPELL_BAG_OF_FROSTMITES", - "InfoTID": "TID_SPELL_BAG_OF_FROSTMITES_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 1, - "DonateCost": 10, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 300, - "ChargingTimeMS": 0, - "HitTimeMS": 300, - "UpgradeResource": "Elixir", - "BoostTimeMS": 0, - "SpeedBoost": 0, - "SpeedBoost2": 0, - "Damage": 0, - "Radius": 350, - "NumberOfHits": 1, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_frostmitebag", - "BigPicture": "icon_spell_frostmitebag", - "PreDeployEffect": "Frostmites Spell Predeploy", - "DeployEffect": "BagOfFrostmitesEffect10", - "FreezeTimeMS": 3300, - "StrengthWeight": 460, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_PREFERRED_TARGET_ANY", - "SummonTroop": "BouncingFrostmite", - "UnitsToSpawn": 19, - "SpawnUpgradeLevel": 10, - "SpawnDuration": 14000, - "SpawnFirstGroupSize": 1, - "EnabledByCalendar": true, - "UpgradeLevelByTH": 15, - "FreezeOuterTimeMS": 2800, - "PreviewScenario": "SpellFrostmites" - }, - "11": { - "Level": 11, - "TID": "TID_SPELL_BAG_OF_FROSTMITES", - "InfoTID": "TID_SPELL_BAG_OF_FROSTMITES_INFO", - "SpellForgeLevel": 1, - "LaboratoryLevel": 1, - "DonateCost": 10, - "HousingSpace": 1, - "TrainingTime": 180, - "DeployTimeMS": 300, - "ChargingTimeMS": 0, - "HitTimeMS": 300, - "UpgradeResource": "Elixir", - "BoostTimeMS": 0, - "SpeedBoost": 0, - "SpeedBoost2": 0, - "Damage": 0, - "Radius": 350, - "NumberOfHits": 1, - "RandomRadius": 200, - "TimeBetweenHitsMS": 300, - "IconSWF": "sc/ui.sc", - "IconExportName": "icon_spell_frostmitebag", - "BigPicture": "icon_spell_frostmitebag", - "PreDeployEffect": "Frostmites Spell Predeploy", - "DeployEffect": "BagOfFrostmitesEffect11", - "FreezeTimeMS": 3500, - "StrengthWeight": 460, - "ProductionBuilding": "Spell Forge", - "TargetInfoString": "TID_PREFERRED_TARGET_ANY", - "SummonTroop": "BouncingFrostmite", - "UnitsToSpawn": 20, - "SpawnUpgradeLevel": 11, - "SpawnDuration": 15000, - "SpawnFirstGroupSize": 1, - "EnabledByCalendar": true, - "UpgradeLevelByTH": 16, - "FreezeOuterTimeMS": 3000, - "PreviewScenario": "SpellFrostmites" - } - } +{ + "Lightning Spell": { + "1": { + "Level": 1, + "TID": "TID_LIGHTNING_STORM", + "InfoTID": "TID_LIGHTNING_STORM_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 1, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 0, + "HitTimeMS": 100, + "UpgradeTimeH": 4, + "UpgradeResource": "Elixir", + "UpgradeCost": 50000, + "Damage": 150, + "Radius": 200, + "NumberOfHits": 1, + "RandomRadius": 0, + "TimeBetweenHitsMS": 400, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_lightning", + "BigPicture": "icon_spell_lightning", + "PreDeployEffect": "Lightning predeploy", + "DeployEffect": "Lightning area small", + "ChargingEffect": "Lightning Spell", + "HitEffect": "Lightning Spell Hit", + "RandomRadiusAffectsOnlyGfx": true, + "FreezeTimeMS": 100, + "StrengthWeight": 30, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_PREFERRED_TARGET_ANY", + "FreezeOuterTimeMS": 100, + "ImmunityTH_CC": true, + "ImmunityStorages": true, + "PreviewScenario": "SpellLightning" + }, + "2": { + "Level": 2, + "TID": "TID_LIGHTNING_STORM", + "InfoTID": "TID_LIGHTNING_STORM_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 1, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 0, + "HitTimeMS": 100, + "UpgradeTimeH": 8, + "UpgradeResource": "Elixir", + "UpgradeCost": 100000, + "Damage": 180, + "Radius": 200, + "NumberOfHits": 1, + "RandomRadius": 0, + "TimeBetweenHitsMS": 400, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_lightning", + "BigPicture": "icon_spell_lightning", + "PreDeployEffect": "Lightning predeploy", + "DeployEffect": "Lightning area small", + "ChargingEffect": "Lightning Spell", + "HitEffect": "Lightning Spell Hit", + "RandomRadiusAffectsOnlyGfx": true, + "FreezeTimeMS": 100, + "StrengthWeight": 30, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_PREFERRED_TARGET_ANY", + "FreezeOuterTimeMS": 100, + "ImmunityTH_CC": true, + "ImmunityStorages": true, + "PreviewScenario": "SpellLightning" + }, + "3": { + "Level": 3, + "TID": "TID_LIGHTNING_STORM", + "InfoTID": "TID_LIGHTNING_STORM_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 2, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 0, + "HitTimeMS": 100, + "UpgradeTimeH": 12, + "UpgradeResource": "Elixir", + "UpgradeCost": 200000, + "Damage": 210, + "Radius": 200, + "NumberOfHits": 1, + "RandomRadius": 0, + "TimeBetweenHitsMS": 400, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_lightning", + "BigPicture": "icon_spell_lightning", + "PreDeployEffect": "Lightning predeploy", + "DeployEffect": "Lightning area small", + "ChargingEffect": "Lightning Spell", + "HitEffect": "Lightning Spell Hit", + "RandomRadiusAffectsOnlyGfx": true, + "FreezeTimeMS": 100, + "StrengthWeight": 30, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_PREFERRED_TARGET_ANY", + "FreezeOuterTimeMS": 100, + "ImmunityTH_CC": true, + "ImmunityStorages": true, + "PreviewScenario": "SpellLightning" + }, + "4": { + "Level": 4, + "TID": "TID_LIGHTNING_STORM", + "InfoTID": "TID_LIGHTNING_STORM_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 3, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 0, + "HitTimeMS": 100, + "UpgradeTimeH": 24, + "UpgradeResource": "Elixir", + "UpgradeCost": 600000, + "Damage": 240, + "Radius": 200, + "NumberOfHits": 1, + "RandomRadius": 0, + "TimeBetweenHitsMS": 400, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_lightning", + "BigPicture": "icon_spell_lightning", + "PreDeployEffect": "Lightning predeploy", + "DeployEffect": "Lightning area small", + "ChargingEffect": "Lightning Spell", + "HitEffect": "Lightning Spell Hit", + "RandomRadiusAffectsOnlyGfx": true, + "FreezeTimeMS": 100, + "StrengthWeight": 30, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_PREFERRED_TARGET_ANY", + "FreezeOuterTimeMS": 100, + "ImmunityTH_CC": true, + "ImmunityStorages": true, + "PreviewScenario": "SpellLightning" + }, + "5": { + "Level": 5, + "TID": "TID_LIGHTNING_STORM", + "InfoTID": "TID_LIGHTNING_STORM_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 6, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 0, + "HitTimeMS": 100, + "UpgradeTimeH": 72, + "UpgradeResource": "Elixir", + "UpgradeCost": 1500000, + "Damage": 270, + "Radius": 200, + "NumberOfHits": 1, + "RandomRadius": 0, + "TimeBetweenHitsMS": 400, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_lightning", + "BigPicture": "icon_spell_lightning", + "PreDeployEffect": "Lightning predeploy", + "DeployEffect": "Lightning area small", + "ChargingEffect": "Lightning Spell", + "HitEffect": "Lightning Spell Hit", + "RandomRadiusAffectsOnlyGfx": true, + "FreezeTimeMS": 100, + "StrengthWeight": 30, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_PREFERRED_TARGET_ANY", + "FreezeOuterTimeMS": 100, + "ImmunityTH_CC": true, + "ImmunityStorages": true, + "PreviewScenario": "SpellLightning" + }, + "6": { + "Level": 6, + "TID": "TID_LIGHTNING_STORM", + "InfoTID": "TID_LIGHTNING_STORM_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 7, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 0, + "HitTimeMS": 100, + "UpgradeTimeH": 96, + "UpgradeResource": "Elixir", + "UpgradeCost": 2500000, + "Damage": 320, + "Radius": 200, + "NumberOfHits": 1, + "RandomRadius": 0, + "TimeBetweenHitsMS": 400, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_lightning", + "BigPicture": "icon_spell_lightning", + "PreDeployEffect": "Lightning predeploy", + "DeployEffect": "Lightning area small", + "ChargingEffect": "Lightning Spell", + "HitEffect": "Lightning Spell Hit", + "RandomRadiusAffectsOnlyGfx": true, + "FreezeTimeMS": 100, + "StrengthWeight": 27, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_PREFERRED_TARGET_ANY", + "FreezeOuterTimeMS": 100, + "ImmunityTH_CC": true, + "ImmunityStorages": true, + "PreviewScenario": "SpellLightning" + }, + "7": { + "Level": 7, + "TID": "TID_LIGHTNING_STORM", + "InfoTID": "TID_LIGHTNING_STORM_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 8, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 0, + "HitTimeMS": 100, + "UpgradeTimeH": 144, + "UpgradeResource": "Elixir", + "UpgradeCost": 4200000, + "Damage": 400, + "Radius": 200, + "NumberOfHits": 1, + "RandomRadius": 0, + "TimeBetweenHitsMS": 400, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_lightning", + "BigPicture": "icon_spell_lightning", + "PreDeployEffect": "Lightning predeploy", + "DeployEffect": "Lightning area small", + "ChargingEffect": "Lightning Spell", + "HitEffect": "Lightning Spell Hit", + "RandomRadiusAffectsOnlyGfx": true, + "FreezeTimeMS": 100, + "StrengthWeight": 24, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_PREFERRED_TARGET_ANY", + "FreezeOuterTimeMS": 100, + "ImmunityTH_CC": true, + "ImmunityStorages": true, + "PreviewScenario": "SpellLightning" + }, + "8": { + "Level": 8, + "TID": "TID_LIGHTNING_STORM", + "InfoTID": "TID_LIGHTNING_STORM_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 9, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 0, + "HitTimeMS": 100, + "UpgradeTimeH": 168, + "UpgradeResource": "Elixir", + "UpgradeCost": 6300000, + "Damage": 480, + "Radius": 200, + "NumberOfHits": 1, + "RandomRadius": 0, + "TimeBetweenHitsMS": 400, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_lightning", + "BigPicture": "icon_spell_lightning", + "PreDeployEffect": "Lightning predeploy", + "DeployEffect": "Lightning area small", + "ChargingEffect": "Lightning Spell", + "HitEffect": "Lightning Spell Hit", + "RandomRadiusAffectsOnlyGfx": true, + "FreezeTimeMS": 100, + "StrengthWeight": 22, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_PREFERRED_TARGET_ANY", + "FreezeOuterTimeMS": 100, + "ImmunityTH_CC": true, + "ImmunityStorages": true, + "PreviewScenario": "SpellLightning" + }, + "9": { + "Level": 9, + "TID": "TID_LIGHTNING_STORM", + "InfoTID": "TID_LIGHTNING_STORM_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 10, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 0, + "HitTimeMS": 100, + "UpgradeTimeH": 300, + "UpgradeResource": "Elixir", + "UpgradeCost": 16000000, + "Damage": 560, + "Radius": 200, + "NumberOfHits": 1, + "RandomRadius": 0, + "TimeBetweenHitsMS": 400, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_lightning", + "BigPicture": "icon_spell_lightning", + "PreDeployEffect": "Lightning predeploy", + "DeployEffect": "Lightning area small", + "ChargingEffect": "Lightning Spell", + "HitEffect": "Lightning Spell Hit", + "RandomRadiusAffectsOnlyGfx": true, + "FreezeTimeMS": 100, + "StrengthWeight": 20, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_PREFERRED_TARGET_ANY", + "FreezeOuterTimeMS": 100, + "ImmunityTH_CC": true, + "ImmunityStorages": true, + "PreviewScenario": "SpellLightning" + }, + "10": { + "Level": 10, + "TID": "TID_LIGHTNING_STORM", + "InfoTID": "TID_LIGHTNING_STORM_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 13, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 0, + "HitTimeMS": 100, + "UpgradeTimeH": 336, + "UpgradeResource": "Elixir", + "UpgradeCost": 18500000, + "Damage": 600, + "Radius": 200, + "NumberOfHits": 1, + "RandomRadius": 0, + "TimeBetweenHitsMS": 400, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_lightning", + "BigPicture": "icon_spell_lightning", + "PreDeployEffect": "Lightning predeploy", + "DeployEffect": "Lightning area small", + "ChargingEffect": "Lightning Spell", + "HitEffect": "Lightning Spell Hit", + "RandomRadiusAffectsOnlyGfx": true, + "FreezeTimeMS": 100, + "StrengthWeight": 22, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_PREFERRED_TARGET_ANY", + "FreezeOuterTimeMS": 100, + "ImmunityTH_CC": true, + "ImmunityStorages": true, + "PreviewScenario": "SpellLightning" + }, + "11": { + "Level": 11, + "TID": "TID_LIGHTNING_STORM", + "InfoTID": "TID_LIGHTNING_STORM_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 14, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 0, + "HitTimeMS": 100, + "UpgradeTimeH": 336, + "UpgradeResource": "Elixir", + "UpgradeCost": 18500000, + "Damage": 640, + "Radius": 200, + "NumberOfHits": 1, + "RandomRadius": 0, + "TimeBetweenHitsMS": 400, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_lightning", + "BigPicture": "icon_spell_lightning", + "PreDeployEffect": "Lightning predeploy", + "DeployEffect": "Lightning area small", + "ChargingEffect": "Lightning Spell", + "HitEffect": "Lightning Spell Hit", + "RandomRadiusAffectsOnlyGfx": true, + "FreezeTimeMS": 100, + "StrengthWeight": 22, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_PREFERRED_TARGET_ANY", + "FreezeOuterTimeMS": 100, + "ImmunityTH_CC": true, + "ImmunityStorages": true, + "PreviewScenario": "SpellLightning" + } + }, + "Healing Spell": { + "1": { + "Level": 1, + "TID": "TID_HEALING_WAVE", + "InfoTID": "TID_HEALING_WAVE_INFO", + "SpellForgeLevel": 2, + "LaboratoryLevel": 2, + "DonateCost": 10, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 5, + "UpgradeResource": "Elixir", + "UpgradeCost": 75000, + "Damage": "-15", + "Radius": 500, + "NumberOfHits": 40, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_healing", + "BigPicture": "icon_spell_healing", + "PreDeployEffect": "Heal predeploy", + "DeployEffect": "Heal area", + "DeployEffect2": "Heal area top", + "HitEffect": "Heal spell", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 230, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "HeroDamageMultiplier": 55, + "PreviewScenario": "SpellHeal" + }, + "2": { + "Level": 2, + "TID": "TID_HEALING_WAVE", + "InfoTID": "TID_HEALING_WAVE_INFO", + "SpellForgeLevel": 2, + "LaboratoryLevel": 2, + "DonateCost": 10, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 10, + "UpgradeResource": "Elixir", + "UpgradeCost": 150000, + "Damage": "-20", + "Radius": 500, + "NumberOfHits": 40, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_healing", + "BigPicture": "icon_spell_healing", + "PreDeployEffect": "Heal predeploy", + "DeployEffect": "Heal area", + "DeployEffect2": "Heal area top", + "HitEffect": "Heal spell", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 215, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "HeroDamageMultiplier": 55, + "PreviewScenario": "SpellHeal" + }, + "3": { + "Level": 3, + "TID": "TID_HEALING_WAVE", + "InfoTID": "TID_HEALING_WAVE_INFO", + "SpellForgeLevel": 2, + "LaboratoryLevel": 4, + "DonateCost": 10, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 20, + "UpgradeResource": "Elixir", + "UpgradeCost": 300000, + "Damage": "-25", + "Radius": 500, + "NumberOfHits": 40, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_healing", + "BigPicture": "icon_spell_healing", + "PreDeployEffect": "Heal predeploy", + "DeployEffect": "Heal area", + "DeployEffect2": "Heal area top", + "HitEffect": "Heal spell", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 200, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "HeroDamageMultiplier": 55, + "PreviewScenario": "SpellHeal" + }, + "4": { + "Level": 4, + "TID": "TID_HEALING_WAVE", + "InfoTID": "TID_HEALING_WAVE_INFO", + "SpellForgeLevel": 2, + "LaboratoryLevel": 5, + "DonateCost": 10, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 36, + "UpgradeResource": "Elixir", + "UpgradeCost": 900000, + "Damage": "-30", + "Radius": 500, + "NumberOfHits": 40, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_healing", + "BigPicture": "icon_spell_healing", + "PreDeployEffect": "Heal predeploy", + "DeployEffect": "Heal area", + "DeployEffect2": "Heal area top", + "HitEffect": "Heal spell", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 190, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "HeroDamageMultiplier": 55, + "PreviewScenario": "SpellHeal" + }, + "5": { + "Level": 5, + "TID": "TID_HEALING_WAVE", + "InfoTID": "TID_HEALING_WAVE_INFO", + "SpellForgeLevel": 2, + "LaboratoryLevel": 6, + "DonateCost": 10, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 72, + "UpgradeResource": "Elixir", + "UpgradeCost": 1800000, + "Damage": "-35", + "Radius": 500, + "NumberOfHits": 40, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_healing", + "BigPicture": "icon_spell_healing", + "PreDeployEffect": "Heal predeploy", + "DeployEffect": "Heal area", + "DeployEffect2": "Heal area top", + "HitEffect": "Heal spell", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 180, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "HeroDamageMultiplier": 55, + "PreviewScenario": "SpellHeal" + }, + "6": { + "Level": 6, + "TID": "TID_HEALING_WAVE", + "InfoTID": "TID_HEALING_WAVE_INFO", + "SpellForgeLevel": 2, + "LaboratoryLevel": 7, + "DonateCost": 10, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 96, + "UpgradeResource": "Elixir", + "UpgradeCost": 3000000, + "Damage": "-40", + "Radius": 500, + "NumberOfHits": 40, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_healing", + "BigPicture": "icon_spell_healing", + "PreDeployEffect": "Heal predeploy", + "DeployEffect": "Heal area", + "DeployEffect2": "Heal area top", + "HitEffect": "Heal spell", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 170, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "HeroDamageMultiplier": 55, + "PreviewScenario": "SpellHeal" + }, + "7": { + "Level": 7, + "TID": "TID_HEALING_WAVE", + "InfoTID": "TID_HEALING_WAVE_INFO", + "SpellForgeLevel": 2, + "LaboratoryLevel": 8, + "DonateCost": 10, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 144, + "UpgradeResource": "Elixir", + "UpgradeCost": 8500000, + "Damage": "-45", + "Radius": 500, + "NumberOfHits": 40, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_healing", + "BigPicture": "icon_spell_healing", + "PreDeployEffect": "Heal predeploy", + "DeployEffect": "Heal area", + "DeployEffect2": "Heal area top", + "HitEffect": "Heal spell", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 170, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "HeroDamageMultiplier": 55, + "PreviewScenario": "SpellHeal" + }, + "8": { + "Level": 8, + "TID": "TID_HEALING_WAVE", + "InfoTID": "TID_HEALING_WAVE_INFO", + "SpellForgeLevel": 2, + "LaboratoryLevel": 11, + "DonateCost": 10, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 318, + "UpgradeResource": "Elixir", + "UpgradeCost": 17000000, + "Damage": "-50", + "Radius": 500, + "NumberOfHits": 40, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_healing", + "BigPicture": "icon_spell_healing", + "PreDeployEffect": "Heal predeploy", + "DeployEffect": "Heal area", + "DeployEffect2": "Heal area top", + "HitEffect": "Heal spell", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 200, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "HeroDamageMultiplier": 55, + "PreviewScenario": "SpellHeal" + }, + "9": { + "Level": 9, + "TID": "TID_HEALING_WAVE", + "InfoTID": "TID_HEALING_WAVE_INFO", + "SpellForgeLevel": 2, + "LaboratoryLevel": 13, + "DonateCost": 10, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 360, + "UpgradeResource": "Elixir", + "UpgradeCost": 19000000, + "Damage": "-55", + "Radius": 500, + "NumberOfHits": 40, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_healing", + "BigPicture": "icon_spell_healing", + "PreDeployEffect": "Heal predeploy", + "DeployEffect": "Heal area", + "DeployEffect2": "Heal area top", + "HitEffect": "Heal spell", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 200, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "HeroDamageMultiplier": 55, + "PreviewScenario": "SpellHeal" + }, + "10": { + "Level": 10, + "TID": "TID_HEALING_WAVE", + "InfoTID": "TID_HEALING_WAVE_INFO", + "SpellForgeLevel": 2, + "LaboratoryLevel": 14, + "DonateCost": 10, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 360, + "UpgradeResource": "Elixir", + "UpgradeCost": 19000000, + "Damage": "-60", + "Radius": 500, + "NumberOfHits": 40, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_healing", + "BigPicture": "icon_spell_healing", + "PreDeployEffect": "Heal predeploy", + "DeployEffect": "Heal area", + "DeployEffect2": "Heal area top", + "HitEffect": "Heal spell", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 200, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "HeroDamageMultiplier": 55, + "PreviewScenario": "SpellHeal" + } + }, + "Rage Spell": { + "1": { + "Level": 1, + "TID": "TID_HASTE", + "InfoTID": "TID_HASTE_INFO", + "SpellForgeLevel": 3, + "LaboratoryLevel": 3, + "DonateCost": 10, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 12, + "UpgradeResource": "Elixir", + "UpgradeCost": 400000, + "BoostTimeMS": 1000, + "SpeedBoost": 20, + "SpeedBoost2": 10, + "DamageBoostPercent": 130, + "Radius": 500, + "NumberOfHits": 60, + "RandomRadius": 400, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_rage", + "BigPicture": "icon_spell_rage", + "PreDeployEffect": "Rage predeploy", + "DeployEffect": "Rage deploy", + "DeployEffect2": "Rage deploy top", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 100, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "PreviewScenario": "SpellRage" + }, + "2": { + "Level": 2, + "TID": "TID_HASTE", + "InfoTID": "TID_HASTE_INFO", + "SpellForgeLevel": 3, + "LaboratoryLevel": 3, + "DonateCost": 10, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 24, + "UpgradeResource": "Elixir", + "UpgradeCost": 800000, + "BoostTimeMS": 1000, + "SpeedBoost": 22, + "SpeedBoost2": 11, + "DamageBoostPercent": 140, + "Radius": 500, + "NumberOfHits": 60, + "RandomRadius": 400, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_rage", + "BigPicture": "icon_spell_rage", + "PreDeployEffect": "Rage predeploy", + "DeployEffect": "Rage deploy", + "DeployEffect2": "Rage deploy top", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 95, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "PreviewScenario": "SpellRage" + }, + "3": { + "Level": 3, + "TID": "TID_HASTE", + "InfoTID": "TID_HASTE_INFO", + "SpellForgeLevel": 3, + "LaboratoryLevel": 4, + "DonateCost": 10, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 48, + "UpgradeResource": "Elixir", + "UpgradeCost": 1600000, + "BoostTimeMS": 1000, + "SpeedBoost": 24, + "SpeedBoost2": 12, + "DamageBoostPercent": 150, + "Radius": 500, + "NumberOfHits": 60, + "RandomRadius": 400, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_rage", + "BigPicture": "icon_spell_rage", + "PreDeployEffect": "Rage predeploy", + "DeployEffect": "Rage deploy", + "DeployEffect2": "Rage deploy top", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 90, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "PreviewScenario": "SpellRage" + }, + "4": { + "Level": 4, + "TID": "TID_HASTE", + "InfoTID": "TID_HASTE_INFO", + "SpellForgeLevel": 3, + "LaboratoryLevel": 5, + "DonateCost": 10, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 96, + "UpgradeResource": "Elixir", + "UpgradeCost": 2400000, + "BoostTimeMS": 1000, + "SpeedBoost": 26, + "SpeedBoost2": 13, + "DamageBoostPercent": 160, + "Radius": 500, + "NumberOfHits": 60, + "RandomRadius": 400, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_rage", + "BigPicture": "icon_spell_rage", + "PreDeployEffect": "Rage predeploy", + "DeployEffect": "Rage deploy", + "DeployEffect2": "Rage deploy top", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 85, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "PreviewScenario": "SpellRage" + }, + "5": { + "Level": 5, + "TID": "TID_HASTE", + "InfoTID": "TID_HASTE_INFO", + "SpellForgeLevel": 3, + "LaboratoryLevel": 6, + "DonateCost": 10, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 144, + "UpgradeResource": "Elixir", + "UpgradeCost": 7000000, + "BoostTimeMS": 1000, + "SpeedBoost": 28, + "SpeedBoost2": 14, + "DamageBoostPercent": 170, + "Radius": 500, + "NumberOfHits": 60, + "RandomRadius": 400, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_rage", + "BigPicture": "icon_spell_rage", + "PreDeployEffect": "Rage predeploy", + "DeployEffect": "Rage deploy", + "DeployEffect2": "Rage deploy top", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 80, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "PreviewScenario": "SpellRage" + }, + "6": { + "Level": 6, + "TID": "TID_HASTE", + "InfoTID": "TID_HASTE_INFO", + "SpellForgeLevel": 3, + "LaboratoryLevel": 10, + "DonateCost": 10, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 144, + "UpgradeResource": "Elixir", + "UpgradeCost": 7000000, + "BoostTimeMS": 1000, + "SpeedBoost": 30, + "SpeedBoost2": 15, + "DamageBoostPercent": 180, + "Radius": 500, + "NumberOfHits": 60, + "RandomRadius": 400, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_rage", + "BigPicture": "icon_spell_rage", + "PreDeployEffect": "Rage predeploy", + "DeployEffect": "Rage deploy", + "DeployEffect2": "Rage deploy top", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 95, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "PreviewScenario": "SpellRage" + } + }, + "Jump Spell": { + "1": { + "Level": 1, + "TID": "TID_JUMP_SPELL", + "InfoTID": "TID_JUMP_SPELL_INFO", + "SpellForgeLevel": 4, + "LaboratoryLevel": 4, + "DonateCost": 10, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 72, + "UpgradeResource": "Elixir", + "UpgradeCost": 2000000, + "JumpHousingLimit": 100, + "JumpBoostMS": 400, + "Radius": 350, + "NumberOfHits": 66, + "RandomRadius": 400, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_jump", + "BigPicture": "icon_spell_jump", + "PreDeployEffect": "Jump predeploy", + "DeployEffect": "Jump deploy lvl1", + "DeployEffect2": "Jump deploy top lvl1", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 250, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND", + "PreviewScenario": "SpellJump" + }, + "2": { + "Level": 2, + "TID": "TID_JUMP_SPELL", + "InfoTID": "TID_JUMP_SPELL_INFO", + "SpellForgeLevel": 4, + "LaboratoryLevel": 5, + "DonateCost": 10, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 96, + "UpgradeResource": "Elixir", + "UpgradeCost": 3400000, + "JumpHousingLimit": 100, + "JumpBoostMS": 400, + "Radius": 350, + "NumberOfHits": 133, + "RandomRadius": 400, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_jump", + "BigPicture": "icon_spell_jump", + "PreDeployEffect": "Jump predeploy", + "DeployEffect": "Jump deploy lvl2", + "DeployEffect2": "Jump deploy top lvl2", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 170, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND", + "PreviewScenario": "SpellJump" + }, + "3": { + "Level": 3, + "TID": "TID_JUMP_SPELL", + "InfoTID": "TID_JUMP_SPELL_INFO", + "SpellForgeLevel": 4, + "LaboratoryLevel": 8, + "DonateCost": 10, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 144, + "UpgradeResource": "Elixir", + "UpgradeCost": 7200000, + "JumpHousingLimit": 100, + "JumpBoostMS": 400, + "Radius": 350, + "NumberOfHits": 199, + "RandomRadius": 400, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_jump", + "BigPicture": "icon_spell_jump", + "PreDeployEffect": "Jump predeploy", + "DeployEffect": "Jump deploy lvl3", + "DeployEffect2": "Jump deploy top lvl3", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 130, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND", + "PreviewScenario": "SpellJump" + }, + "4": { + "Level": 4, + "TID": "TID_JUMP_SPELL", + "InfoTID": "TID_JUMP_SPELL_INFO", + "SpellForgeLevel": 4, + "LaboratoryLevel": 11, + "DonateCost": 10, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 312, + "UpgradeResource": "Elixir", + "UpgradeCost": 16500000, + "JumpHousingLimit": 100, + "JumpBoostMS": 400, + "Radius": 350, + "NumberOfHits": 266, + "RandomRadius": 400, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_jump", + "BigPicture": "icon_spell_jump", + "PreDeployEffect": "Jump predeploy", + "DeployEffect": "Jump deploy lvl4", + "DeployEffect2": "Jump deploy top lvl4", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 110, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND", + "PreviewScenario": "SpellJump" + }, + "5": { + "Level": 5, + "TID": "TID_JUMP_SPELL", + "InfoTID": "TID_JUMP_SPELL_INFO", + "SpellForgeLevel": 4, + "LaboratoryLevel": 13, + "DonateCost": 10, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 312, + "UpgradeResource": "Elixir", + "UpgradeCost": 16500000, + "JumpHousingLimit": 100, + "JumpBoostMS": 400, + "Radius": 350, + "NumberOfHits": 333, + "RandomRadius": 400, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_jump", + "BigPicture": "icon_spell_jump", + "PreDeployEffect": "Jump predeploy", + "DeployEffect": "Jump deploy lvl5", + "DeployEffect2": "Jump deploy top lvl5", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 90, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND", + "PreviewScenario": "SpellJump" + } + }, + "Freeze Spell": { + "1": { + "Level": 1, + "TID": "TID_FREEZE_SPELL", + "InfoTID": "TID_FREEZE_SPELL_INFO", + "SpellForgeLevel": 4, + "LaboratoryLevel": 7, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 36, + "UpgradeResource": "Elixir", + "UpgradeCost": 1200000, + "Radius": 350, + "NumberOfHits": 1, + "RandomRadius": 400, + "TimeBetweenHitsMS": 0, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_freeze", + "BigPicture": "icon_spell_freeze", + "PreDeployEffect": "Freeze predeploy", + "DeployEffect": "Freeze deploy lvl1", + "DeployEffect2": "Freeze deploy2 lvl1", + "RandomRadiusAffectsOnlyGfx": true, + "FreezeTimeMS": 2500, + "StrengthWeight": 1000, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "FreezeOuterTimeMS": 2250, + "AffectsSiegeMachines": true, + "PreviewScenario": "SpellFreeze" + }, + "2": { + "Level": 2, + "TID": "TID_FREEZE_SPELL", + "InfoTID": "TID_FREEZE_SPELL_INFO", + "SpellForgeLevel": 4, + "LaboratoryLevel": 7, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 62, + "UpgradeResource": "Elixir", + "UpgradeCost": 1700000, + "Radius": 350, + "NumberOfHits": 1, + "RandomRadius": 400, + "TimeBetweenHitsMS": 0, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_freeze", + "BigPicture": "icon_spell_freeze", + "PreDeployEffect": "Freeze predeploy", + "DeployEffect": "Freeze deploy lvl2", + "DeployEffect2": "Freeze deploy2 lvl2", + "RandomRadiusAffectsOnlyGfx": true, + "FreezeTimeMS": 3000, + "StrengthWeight": 1150, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "FreezeOuterTimeMS": 2700, + "AffectsSiegeMachines": true, + "PreviewScenario": "SpellFreeze" + }, + "3": { + "Level": 3, + "TID": "TID_FREEZE_SPELL", + "InfoTID": "TID_FREEZE_SPELL_INFO", + "SpellForgeLevel": 4, + "LaboratoryLevel": 8, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 78, + "UpgradeResource": "Elixir", + "UpgradeCost": 3000000, + "Radius": 350, + "NumberOfHits": 1, + "RandomRadius": 400, + "TimeBetweenHitsMS": 0, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_freeze", + "BigPicture": "icon_spell_freeze", + "PreDeployEffect": "Freeze predeploy", + "DeployEffect": "Freeze deploy lvl3", + "DeployEffect2": "Freeze deploy2 lvl3", + "RandomRadiusAffectsOnlyGfx": true, + "FreezeTimeMS": 3500, + "StrengthWeight": 1300, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "FreezeOuterTimeMS": 3150, + "AffectsSiegeMachines": true, + "PreviewScenario": "SpellFreeze" + }, + "4": { + "Level": 4, + "TID": "TID_FREEZE_SPELL", + "InfoTID": "TID_FREEZE_SPELL_INFO", + "SpellForgeLevel": 4, + "LaboratoryLevel": 8, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 96, + "UpgradeResource": "Elixir", + "UpgradeCost": 4200000, + "Radius": 350, + "NumberOfHits": 1, + "RandomRadius": 400, + "TimeBetweenHitsMS": 0, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_freeze", + "BigPicture": "icon_spell_freeze", + "PreDeployEffect": "Freeze predeploy", + "DeployEffect": "Freeze deploy lvl4", + "DeployEffect2": "Freeze deploy2 lvl4", + "RandomRadiusAffectsOnlyGfx": true, + "FreezeTimeMS": 4000, + "StrengthWeight": 1450, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "FreezeOuterTimeMS": 3600, + "AffectsSiegeMachines": true, + "PreviewScenario": "SpellFreeze" + }, + "5": { + "Level": 5, + "TID": "TID_FREEZE_SPELL", + "InfoTID": "TID_FREEZE_SPELL_INFO", + "SpellForgeLevel": 4, + "LaboratoryLevel": 8, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 144, + "UpgradeResource": "Elixir", + "UpgradeCost": 6000000, + "Radius": 350, + "NumberOfHits": 1, + "RandomRadius": 400, + "TimeBetweenHitsMS": 0, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_freeze", + "BigPicture": "icon_spell_freeze", + "PreDeployEffect": "Freeze predeploy", + "DeployEffect": "Freeze deploy lvl5", + "DeployEffect2": "Freeze deploy2 lvl5", + "RandomRadiusAffectsOnlyGfx": true, + "FreezeTimeMS": 4500, + "StrengthWeight": 1600, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "FreezeOuterTimeMS": 4050, + "AffectsSiegeMachines": true, + "PreviewScenario": "SpellFreeze" + }, + "6": { + "Level": 6, + "TID": "TID_FREEZE_SPELL", + "InfoTID": "TID_FREEZE_SPELL_INFO", + "SpellForgeLevel": 4, + "LaboratoryLevel": 9, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 168, + "UpgradeResource": "Elixir", + "UpgradeCost": 7000000, + "Radius": 350, + "NumberOfHits": 1, + "RandomRadius": 400, + "TimeBetweenHitsMS": 0, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_freeze", + "BigPicture": "icon_spell_freeze", + "PreDeployEffect": "Freeze predeploy", + "DeployEffect": "Freeze deploy lvl6", + "DeployEffect2": "Freeze deploy2 lvl6", + "RandomRadiusAffectsOnlyGfx": true, + "FreezeTimeMS": 5000, + "StrengthWeight": 1750, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "FreezeOuterTimeMS": 4500, + "AffectsSiegeMachines": true, + "PreviewScenario": "SpellFreeze" + }, + "7": { + "Level": 7, + "TID": "TID_FREEZE_SPELL", + "InfoTID": "TID_FREEZE_SPELL_INFO", + "SpellForgeLevel": 4, + "LaboratoryLevel": 10, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 168, + "UpgradeResource": "Elixir", + "UpgradeCost": 7000000, + "Radius": 350, + "NumberOfHits": 1, + "RandomRadius": 400, + "TimeBetweenHitsMS": 0, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_freeze", + "BigPicture": "icon_spell_freeze", + "PreDeployEffect": "Freeze predeploy", + "DeployEffect": "Freeze deploy lvl7", + "DeployEffect2": "Freeze deploy2 lvl7", + "RandomRadiusAffectsOnlyGfx": true, + "FreezeTimeMS": 5500, + "StrengthWeight": 1900, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "FreezeOuterTimeMS": 4950, + "AffectsSiegeMachines": true, + "PreviewScenario": "SpellFreeze" + } + }, + "Santa's Surprise": { + "1": { + "Level": 1, + "TID": "TID_XMAS_SPELL", + "InfoTID": "TID_XMAS_SPELL_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 1, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 0, + "ChargingTimeMS": 4500, + "HitTimeMS": 6000, + "UpgradeResource": "Elixir", + "Damage": 150, + "Radius": 100, + "NumberOfHits": 5, + "RandomRadius": 100, + "TimeBetweenHitsMS": 100, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_xmas", + "BigPicture": "icon_spell_xmas", + "DeployEffect": "xmas Red Smoke", + "DeployEffect2Delay": 2500, + "DeployEffect2": "xmas test", + "ChargingEffect": "xmas Drop Bombs", + "HitEffect": "xmas boom", + "RandomRadiusAffectsOnlyGfx": false, + "SpawnObstacle": "Xmas TombStone", + "NumObstacles": 5, + "StrengthWeight": 0, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "DisableDonate": true, + "EnabledByCalendar": true, + "UpgradeLevelByTH": 5, + "ImmunityTH_CC": true, + "ImmunityStorages": true + }, + "2": { + "Level": 2, + "TID": "TID_XMAS_SPELL", + "InfoTID": "TID_XMAS_SPELL_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 1, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 0, + "ChargingTimeMS": 4500, + "HitTimeMS": 6000, + "UpgradeResource": "Elixir", + "Damage": 160, + "Radius": 100, + "NumberOfHits": 5, + "RandomRadius": 100, + "TimeBetweenHitsMS": 100, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_xmas", + "BigPicture": "icon_spell_xmas", + "DeployEffect": "xmas Red Smoke", + "DeployEffect2Delay": 2500, + "DeployEffect2": "xmas test", + "ChargingEffect": "xmas Drop Bombs", + "HitEffect": "xmas boom", + "RandomRadiusAffectsOnlyGfx": false, + "SpawnObstacle": "Xmas TombStone", + "NumObstacles": 5, + "StrengthWeight": 0, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "DisableDonate": true, + "EnabledByCalendar": true, + "UpgradeLevelByTH": 6, + "ImmunityTH_CC": true, + "ImmunityStorages": true + }, + "3": { + "Level": 3, + "TID": "TID_XMAS_SPELL", + "InfoTID": "TID_XMAS_SPELL_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 1, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 0, + "ChargingTimeMS": 4500, + "HitTimeMS": 6000, + "UpgradeResource": "Elixir", + "Damage": 170, + "Radius": 100, + "NumberOfHits": 5, + "RandomRadius": 100, + "TimeBetweenHitsMS": 100, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_xmas", + "BigPicture": "icon_spell_xmas", + "DeployEffect": "xmas Red Smoke", + "DeployEffect2Delay": 2500, + "DeployEffect2": "xmas test", + "ChargingEffect": "xmas Drop Bombs", + "HitEffect": "xmas boom", + "RandomRadiusAffectsOnlyGfx": false, + "SpawnObstacle": "Xmas TombStone", + "NumObstacles": 5, + "StrengthWeight": 0, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "DisableDonate": true, + "EnabledByCalendar": true, + "UpgradeLevelByTH": 7, + "ImmunityTH_CC": true, + "ImmunityStorages": true + }, + "4": { + "Level": 4, + "TID": "TID_XMAS_SPELL", + "InfoTID": "TID_XMAS_SPELL_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 1, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 0, + "ChargingTimeMS": 4500, + "HitTimeMS": 6000, + "UpgradeResource": "Elixir", + "Damage": 180, + "Radius": 100, + "NumberOfHits": 5, + "RandomRadius": 100, + "TimeBetweenHitsMS": 100, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_xmas", + "BigPicture": "icon_spell_xmas", + "DeployEffect": "xmas Red Smoke", + "DeployEffect2Delay": 2500, + "DeployEffect2": "xmas test", + "ChargingEffect": "xmas Drop Bombs", + "HitEffect": "xmas boom", + "RandomRadiusAffectsOnlyGfx": false, + "SpawnObstacle": "Xmas TombStone", + "NumObstacles": 5, + "StrengthWeight": 0, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "DisableDonate": true, + "EnabledByCalendar": true, + "UpgradeLevelByTH": 8, + "ImmunityTH_CC": true, + "ImmunityStorages": true + }, + "5": { + "Level": 5, + "TID": "TID_XMAS_SPELL", + "InfoTID": "TID_XMAS_SPELL_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 1, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 0, + "ChargingTimeMS": 4500, + "HitTimeMS": 6000, + "UpgradeResource": "Elixir", + "Damage": 190, + "Radius": 100, + "NumberOfHits": 5, + "RandomRadius": 100, + "TimeBetweenHitsMS": 100, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_xmas", + "BigPicture": "icon_spell_xmas", + "DeployEffect": "xmas Red Smoke", + "DeployEffect2Delay": 2500, + "DeployEffect2": "xmas test", + "ChargingEffect": "xmas Drop Bombs", + "HitEffect": "xmas boom", + "RandomRadiusAffectsOnlyGfx": false, + "SpawnObstacle": "Xmas TombStone", + "NumObstacles": 5, + "StrengthWeight": 0, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "DisableDonate": true, + "EnabledByCalendar": true, + "UpgradeLevelByTH": 9, + "ImmunityTH_CC": true, + "ImmunityStorages": true + }, + "6": { + "Level": 6, + "TID": "TID_XMAS_SPELL", + "InfoTID": "TID_XMAS_SPELL_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 1, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 0, + "ChargingTimeMS": 4500, + "HitTimeMS": 6000, + "UpgradeResource": "Elixir", + "Damage": 200, + "Radius": 100, + "NumberOfHits": 5, + "RandomRadius": 100, + "TimeBetweenHitsMS": 100, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_xmas", + "BigPicture": "icon_spell_xmas", + "DeployEffect": "xmas Red Smoke", + "DeployEffect2Delay": 2500, + "DeployEffect2": "xmas test", + "ChargingEffect": "xmas Drop Bombs", + "HitEffect": "xmas boom", + "RandomRadiusAffectsOnlyGfx": false, + "SpawnObstacle": "Xmas TombStone", + "NumObstacles": 5, + "StrengthWeight": 0, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "DisableDonate": true, + "EnabledByCalendar": true, + "UpgradeLevelByTH": 10, + "ImmunityTH_CC": true, + "ImmunityStorages": true + }, + "7": { + "Level": 7, + "TID": "TID_XMAS_SPELL", + "InfoTID": "TID_XMAS_SPELL_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 1, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 0, + "ChargingTimeMS": 4500, + "HitTimeMS": 6000, + "UpgradeResource": "Elixir", + "Damage": 220, + "Radius": 100, + "NumberOfHits": 5, + "RandomRadius": 100, + "TimeBetweenHitsMS": 100, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_xmas", + "BigPicture": "icon_spell_xmas", + "DeployEffect": "xmas Red Smoke", + "DeployEffect2Delay": 2500, + "DeployEffect2": "xmas test", + "ChargingEffect": "xmas Drop Bombs", + "HitEffect": "xmas boom", + "RandomRadiusAffectsOnlyGfx": false, + "SpawnObstacle": "Xmas TombStone", + "NumObstacles": 5, + "StrengthWeight": 0, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "DisableDonate": true, + "EnabledByCalendar": true, + "UpgradeLevelByTH": 11, + "ImmunityTH_CC": true, + "ImmunityStorages": true + }, + "8": { + "Level": 8, + "TID": "TID_XMAS_SPELL", + "InfoTID": "TID_XMAS_SPELL_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 1, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 0, + "ChargingTimeMS": 4500, + "HitTimeMS": 6000, + "UpgradeResource": "Elixir", + "Damage": 240, + "Radius": 100, + "NumberOfHits": 5, + "RandomRadius": 100, + "TimeBetweenHitsMS": 100, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_xmas", + "BigPicture": "icon_spell_xmas", + "DeployEffect": "xmas Red Smoke", + "DeployEffect2Delay": 2500, + "DeployEffect2": "xmas test", + "ChargingEffect": "xmas Drop Bombs", + "HitEffect": "xmas boom", + "RandomRadiusAffectsOnlyGfx": false, + "SpawnObstacle": "Xmas TombStone", + "NumObstacles": 5, + "StrengthWeight": 0, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "DisableDonate": true, + "EnabledByCalendar": true, + "UpgradeLevelByTH": 12, + "ImmunityTH_CC": true, + "ImmunityStorages": true + }, + "9": { + "Level": 9, + "TID": "TID_XMAS_SPELL", + "InfoTID": "TID_XMAS_SPELL_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 1, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 0, + "ChargingTimeMS": 4500, + "HitTimeMS": 6000, + "UpgradeResource": "Elixir", + "Damage": 260, + "Radius": 100, + "NumberOfHits": 5, + "RandomRadius": 100, + "TimeBetweenHitsMS": 100, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_xmas", + "BigPicture": "icon_spell_xmas", + "DeployEffect": "xmas Red Smoke", + "DeployEffect2Delay": 2500, + "DeployEffect2": "xmas test", + "ChargingEffect": "xmas Drop Bombs", + "HitEffect": "xmas boom", + "RandomRadiusAffectsOnlyGfx": false, + "SpawnObstacle": "Xmas TombStone", + "NumObstacles": 5, + "StrengthWeight": 0, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "DisableDonate": true, + "EnabledByCalendar": true, + "UpgradeLevelByTH": 13, + "ImmunityTH_CC": true, + "ImmunityStorages": true + }, + "10": { + "Level": 10, + "TID": "TID_XMAS_SPELL", + "InfoTID": "TID_XMAS_SPELL_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 1, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 0, + "ChargingTimeMS": 4500, + "HitTimeMS": 6000, + "UpgradeResource": "Elixir", + "Damage": 280, + "Radius": 100, + "NumberOfHits": 5, + "RandomRadius": 100, + "TimeBetweenHitsMS": 100, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_xmas", + "BigPicture": "icon_spell_xmas", + "DeployEffect": "xmas Red Smoke", + "DeployEffect2Delay": 2500, + "DeployEffect2": "xmas test", + "ChargingEffect": "xmas Drop Bombs", + "HitEffect": "xmas boom", + "RandomRadiusAffectsOnlyGfx": false, + "SpawnObstacle": "Xmas TombStone", + "NumObstacles": 5, + "StrengthWeight": 0, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "DisableDonate": true, + "EnabledByCalendar": true, + "UpgradeLevelByTH": 14, + "ImmunityTH_CC": true, + "ImmunityStorages": true + }, + "11": { + "Level": 11, + "TID": "TID_XMAS_SPELL", + "InfoTID": "TID_XMAS_SPELL_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 1, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 0, + "ChargingTimeMS": 4500, + "HitTimeMS": 6000, + "UpgradeResource": "Elixir", + "Damage": 300, + "Radius": 100, + "NumberOfHits": 5, + "RandomRadius": 100, + "TimeBetweenHitsMS": 100, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_xmas", + "BigPicture": "icon_spell_xmas", + "DeployEffect": "xmas Red Smoke", + "DeployEffect2Delay": 2500, + "DeployEffect2": "xmas test", + "ChargingEffect": "xmas Drop Bombs", + "HitEffect": "xmas boom", + "RandomRadiusAffectsOnlyGfx": false, + "SpawnObstacle": "Xmas TombStone", + "NumObstacles": 5, + "StrengthWeight": 0, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "DisableDonate": true, + "EnabledByCalendar": true, + "UpgradeLevelByTH": 15, + "ImmunityTH_CC": true, + "ImmunityStorages": true + } + }, + "Poison Spell": { + "1": { + "Level": 1, + "TID": "TID_POISON_CLOUD", + "InfoTID": "TID_POISON_CLOUD_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 1, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 8, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 10000, + "BoostTimeMS": 500, + "SpeedBoost": "-26", + "SpeedBoost2": "-26", + "Radius": 400, + "NumberOfHits": 40, + "RandomRadius": 0, + "TimeBetweenHitsMS": 400, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_toxic", + "BigPicture": "icon_spell_toxic", + "PreDeployEffect": "toxic_Predeploy", + "DeployEffect": "Toxic deploy ground halloween", + "DeployEffect2": "Toxic deploy halloween", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": "-160", + "ProductionBuilding": "Mini Spell Factory", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "HeroDamageMultiplier": 5, + "PoisonDPS": 90, + "PoisonIncreaseSlowly": true, + "AttackSpeedBoost": "-35", + "BoostLinkedToPoison": true, + "PoisonAffectAir": true, + "BoostDefenders": true, + "ImmunityTH_CC": true, + "ImmunityStorages": true, + "ImmunityWalls": true, + "ImmunityOtherBuildings": true, + "PreviewScenario": "SpellPoison" + }, + "2": { + "Level": 2, + "TID": "TID_POISON_CLOUD", + "InfoTID": "TID_POISON_CLOUD_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 6, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 24, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 20000, + "BoostTimeMS": 500, + "SpeedBoost": "-30", + "SpeedBoost2": "-30", + "Radius": 400, + "NumberOfHits": 40, + "RandomRadius": 0, + "TimeBetweenHitsMS": 400, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_toxic", + "BigPicture": "icon_spell_toxic", + "PreDeployEffect": "toxic_Predeploy", + "DeployEffect": "Toxic deploy ground halloween", + "DeployEffect2": "Toxic deploy halloween", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": "-170", + "ProductionBuilding": "Mini Spell Factory", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "HeroDamageMultiplier": 5, + "PoisonDPS": 115, + "PoisonIncreaseSlowly": true, + "AttackSpeedBoost": "-40", + "BoostLinkedToPoison": true, + "PoisonAffectAir": true, + "BoostDefenders": true, + "ImmunityTH_CC": true, + "ImmunityStorages": true, + "ImmunityWalls": true, + "ImmunityOtherBuildings": true, + "PreviewScenario": "SpellPoison" + }, + "3": { + "Level": 3, + "TID": "TID_POISON_CLOUD", + "InfoTID": "TID_POISON_CLOUD_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 7, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 62, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 43000, + "BoostTimeMS": 500, + "SpeedBoost": "-34", + "SpeedBoost2": "-34", + "Radius": 400, + "NumberOfHits": 40, + "RandomRadius": 0, + "TimeBetweenHitsMS": 400, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_toxic", + "BigPicture": "icon_spell_toxic", + "PreDeployEffect": "toxic_Predeploy", + "DeployEffect": "Toxic deploy ground halloween", + "DeployEffect2": "Toxic deploy halloween", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": "-190", + "ProductionBuilding": "Mini Spell Factory", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "HeroDamageMultiplier": 5, + "PoisonDPS": 145, + "PoisonIncreaseSlowly": true, + "AttackSpeedBoost": "-45", + "BoostLinkedToPoison": true, + "PoisonAffectAir": true, + "BoostDefenders": true, + "ImmunityTH_CC": true, + "ImmunityStorages": true, + "ImmunityWalls": true, + "ImmunityOtherBuildings": true, + "PreviewScenario": "SpellPoison" + }, + "4": { + "Level": 4, + "TID": "TID_POISON_CLOUD", + "InfoTID": "TID_POISON_CLOUD_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 8, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 96, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 70000, + "BoostTimeMS": 500, + "SpeedBoost": "-38", + "SpeedBoost2": "-38", + "Radius": 400, + "NumberOfHits": 40, + "RandomRadius": 0, + "TimeBetweenHitsMS": 400, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_toxic", + "BigPicture": "icon_spell_toxic", + "PreDeployEffect": "toxic_Predeploy", + "DeployEffect": "Toxic deploy ground halloween", + "DeployEffect2": "Toxic deploy halloween", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": "-210", + "ProductionBuilding": "Mini Spell Factory", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "HeroDamageMultiplier": 5, + "PoisonDPS": 180, + "PoisonIncreaseSlowly": true, + "AttackSpeedBoost": "-50", + "BoostLinkedToPoison": true, + "PoisonAffectAir": true, + "BoostDefenders": true, + "ImmunityTH_CC": true, + "ImmunityStorages": true, + "ImmunityWalls": true, + "ImmunityOtherBuildings": true, + "PreviewScenario": "SpellPoison" + }, + "5": { + "Level": 5, + "TID": "TID_POISON_CLOUD", + "InfoTID": "TID_POISON_CLOUD_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 9, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 150, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 110000, + "BoostTimeMS": 500, + "SpeedBoost": "-40", + "SpeedBoost2": "-40", + "Radius": 400, + "NumberOfHits": 40, + "RandomRadius": 0, + "TimeBetweenHitsMS": 400, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_toxic", + "BigPicture": "icon_spell_toxic", + "PreDeployEffect": "toxic_Predeploy", + "DeployEffect": "Toxic deploy ground halloween", + "DeployEffect2": "Toxic deploy halloween", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": "-230", + "ProductionBuilding": "Mini Spell Factory", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "HeroDamageMultiplier": 5, + "PoisonDPS": 220, + "PoisonIncreaseSlowly": true, + "AttackSpeedBoost": "-55", + "BoostLinkedToPoison": true, + "PoisonAffectAir": true, + "BoostDefenders": true, + "ImmunityTH_CC": true, + "ImmunityStorages": true, + "ImmunityWalls": true, + "ImmunityOtherBuildings": true, + "PreviewScenario": "SpellPoison" + }, + "6": { + "Level": 6, + "TID": "TID_POISON_CLOUD", + "InfoTID": "TID_POISON_CLOUD_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 10, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 168, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 155000, + "BoostTimeMS": 500, + "SpeedBoost": "-42", + "SpeedBoost2": "-42", + "Radius": 400, + "NumberOfHits": 40, + "RandomRadius": 0, + "TimeBetweenHitsMS": 400, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_toxic", + "BigPicture": "icon_spell_toxic", + "PreDeployEffect": "toxic_Predeploy", + "DeployEffect": "Toxic deploy ground halloween", + "DeployEffect2": "Toxic deploy halloween", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": "-250", + "ProductionBuilding": "Mini Spell Factory", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "HeroDamageMultiplier": 5, + "PoisonDPS": 260, + "PoisonIncreaseSlowly": true, + "AttackSpeedBoost": "-60", + "BoostLinkedToPoison": true, + "PoisonAffectAir": true, + "BoostDefenders": true, + "ImmunityTH_CC": true, + "ImmunityStorages": true, + "ImmunityWalls": true, + "ImmunityOtherBuildings": true, + "PreviewScenario": "SpellPoison" + }, + "7": { + "Level": 7, + "TID": "TID_POISON_CLOUD", + "InfoTID": "TID_POISON_CLOUD_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 11, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 240, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 230000, + "BoostTimeMS": 500, + "SpeedBoost": "-44", + "SpeedBoost2": "-44", + "Radius": 400, + "NumberOfHits": 40, + "RandomRadius": 0, + "TimeBetweenHitsMS": 400, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_toxic", + "BigPicture": "icon_spell_toxic", + "PreDeployEffect": "toxic_Predeploy", + "DeployEffect": "Toxic deploy ground halloween", + "DeployEffect2": "Toxic deploy halloween", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": "-270", + "ProductionBuilding": "Mini Spell Factory", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "HeroDamageMultiplier": 5, + "PoisonDPS": 280, + "PoisonIncreaseSlowly": true, + "AttackSpeedBoost": "-65", + "BoostLinkedToPoison": true, + "PoisonAffectAir": true, + "BoostDefenders": true, + "ImmunityTH_CC": true, + "ImmunityStorages": true, + "ImmunityWalls": true, + "ImmunityOtherBuildings": true, + "PreviewScenario": "SpellPoison" + }, + "8": { + "Level": 8, + "TID": "TID_POISON_CLOUD", + "InfoTID": "TID_POISON_CLOUD_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 12, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 318, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 320000, + "BoostTimeMS": 500, + "SpeedBoost": "-46", + "SpeedBoost2": "-46", + "Radius": 400, + "NumberOfHits": 40, + "RandomRadius": 0, + "TimeBetweenHitsMS": 400, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_toxic", + "BigPicture": "icon_spell_toxic", + "PreDeployEffect": "toxic_Predeploy", + "DeployEffect": "Toxic deploy ground halloween", + "DeployEffect2": "Toxic deploy halloween", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": "-275", + "ProductionBuilding": "Mini Spell Factory", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "HeroDamageMultiplier": 5, + "PoisonDPS": 300, + "PoisonIncreaseSlowly": true, + "AttackSpeedBoost": "-68", + "BoostLinkedToPoison": true, + "PoisonAffectAir": true, + "BoostDefenders": true, + "ImmunityTH_CC": true, + "ImmunityStorages": true, + "ImmunityWalls": true, + "ImmunityOtherBuildings": true, + "PreviewScenario": "SpellPoison" + }, + "9": { + "Level": 9, + "TID": "TID_POISON_CLOUD", + "InfoTID": "TID_POISON_CLOUD_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 13, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 360, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 350000, + "BoostTimeMS": 500, + "SpeedBoost": "-48", + "SpeedBoost2": "-48", + "Radius": 400, + "NumberOfHits": 40, + "RandomRadius": 0, + "TimeBetweenHitsMS": 400, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_toxic", + "BigPicture": "icon_spell_toxic", + "PreDeployEffect": "toxic_Predeploy", + "DeployEffect": "Toxic deploy ground halloween", + "DeployEffect2": "Toxic deploy halloween", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": "-280", + "ProductionBuilding": "Mini Spell Factory", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "HeroDamageMultiplier": 5, + "PoisonDPS": 320, + "PoisonIncreaseSlowly": true, + "AttackSpeedBoost": "-70", + "BoostLinkedToPoison": true, + "PoisonAffectAir": true, + "BoostDefenders": true, + "ImmunityTH_CC": true, + "ImmunityStorages": true, + "ImmunityWalls": true, + "ImmunityOtherBuildings": true, + "PreviewScenario": "SpellPoison" + }, + "10": { + "Level": 10, + "TID": "TID_POISON_CLOUD", + "InfoTID": "TID_POISON_CLOUD_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 14, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 360, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 350000, + "BoostTimeMS": 500, + "SpeedBoost": "-50", + "SpeedBoost2": "-50", + "Radius": 400, + "NumberOfHits": 40, + "RandomRadius": 0, + "TimeBetweenHitsMS": 400, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_toxic", + "BigPicture": "icon_spell_toxic", + "PreDeployEffect": "toxic_Predeploy", + "DeployEffect": "Toxic deploy ground halloween", + "DeployEffect2": "Toxic deploy halloween", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": "-285", + "ProductionBuilding": "Mini Spell Factory", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "HeroDamageMultiplier": 5, + "PoisonDPS": 340, + "PoisonIncreaseSlowly": true, + "AttackSpeedBoost": "-72", + "BoostLinkedToPoison": true, + "PoisonAffectAir": true, + "BoostDefenders": true, + "ImmunityTH_CC": true, + "ImmunityStorages": true, + "ImmunityWalls": true, + "ImmunityOtherBuildings": true, + "PreviewScenario": "SpellPoison" + } + }, + "Earthquake Spell": { + "1": { + "Level": 1, + "TID": "TID_EARTHQUAKE", + "InfoTID": "TID_EARTHQUAKE_INFO", + "SpellForgeLevel": 2, + "LaboratoryLevel": 1, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 18, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 12000, + "BuildingDamagePermil": 29, + "Radius": 350, + "NumberOfHits": 5, + "RandomRadius": 200, + "TimeBetweenHitsMS": 400, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_earthquake", + "BigPicture": "icon_spell_earthquake", + "PreDeployEffect": "Earthquake_Predeploy", + "DeployEffect": "EarthQuake_deploy_ground_0", + "DeployEffect2": "EarthQuake_deploy_0", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 150, + "ProductionBuilding": "Mini Spell Factory", + "TargetInfoString": "TID_INFO_TARGET_TYPE_BUILDINGS_AND_WALLS", + "PreferredTarget": "Wall", + "PreferredTargetDamageMod": 5, + "ImmunitySiegeMachines": true, + "ImmunityOtherCharacters": true, + "ImmunityStorages": true, + "PreviewScenario": "SpellQuake" + }, + "2": { + "Level": 2, + "TID": "TID_EARTHQUAKE", + "InfoTID": "TID_EARTHQUAKE_INFO", + "SpellForgeLevel": 2, + "LaboratoryLevel": 6, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 36, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 24000, + "BuildingDamagePermil": 34, + "Radius": 380, + "NumberOfHits": 5, + "RandomRadius": 200, + "TimeBetweenHitsMS": 400, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_earthquake", + "BigPicture": "icon_spell_earthquake", + "PreDeployEffect": "Earthquake_Predeploy", + "DeployEffect": "EarthQuake_deploy_ground", + "DeployEffect2": "EarthQuake_deploy", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 145, + "ProductionBuilding": "Mini Spell Factory", + "TargetInfoString": "TID_INFO_TARGET_TYPE_BUILDINGS_AND_WALLS", + "PreferredTarget": "Wall", + "PreferredTargetDamageMod": 5, + "ImmunitySiegeMachines": true, + "ImmunityOtherCharacters": true, + "ImmunityStorages": true, + "PreviewScenario": "SpellQuake" + }, + "3": { + "Level": 3, + "TID": "TID_EARTHQUAKE", + "InfoTID": "TID_EARTHQUAKE_INFO", + "SpellForgeLevel": 2, + "LaboratoryLevel": 7, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 102, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 51000, + "BuildingDamagePermil": 42, + "Radius": 410, + "NumberOfHits": 5, + "RandomRadius": 200, + "TimeBetweenHitsMS": 400, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_earthquake", + "BigPicture": "icon_spell_earthquake", + "PreDeployEffect": "Earthquake_Predeploy", + "DeployEffect": "EarthQuake_deploy_ground_2", + "DeployEffect2": "EarthQuake_deploy_2", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 140, + "ProductionBuilding": "Mini Spell Factory", + "TargetInfoString": "TID_INFO_TARGET_TYPE_BUILDINGS_AND_WALLS", + "PreferredTarget": "Wall", + "PreferredTargetDamageMod": 5, + "ImmunitySiegeMachines": true, + "ImmunityOtherCharacters": true, + "ImmunityStorages": true, + "PreviewScenario": "SpellQuake" + }, + "4": { + "Level": 4, + "TID": "TID_EARTHQUAKE", + "InfoTID": "TID_EARTHQUAKE_INFO", + "SpellForgeLevel": 2, + "LaboratoryLevel": 8, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 186, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 84000, + "BuildingDamagePermil": 50, + "Radius": 440, + "NumberOfHits": 5, + "RandomRadius": 200, + "TimeBetweenHitsMS": 400, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_earthquake", + "BigPicture": "icon_spell_earthquake", + "PreDeployEffect": "Earthquake_Predeploy", + "DeployEffect": "EarthQuake_deploy_ground_3", + "DeployEffect2": "EarthQuake_deploy_3", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 135, + "ProductionBuilding": "Mini Spell Factory", + "TargetInfoString": "TID_INFO_TARGET_TYPE_BUILDINGS_AND_WALLS", + "PreferredTarget": "Wall", + "PreferredTargetDamageMod": 5, + "ImmunitySiegeMachines": true, + "ImmunityOtherCharacters": true, + "ImmunityStorages": true, + "PreviewScenario": "SpellQuake" + }, + "5": { + "Level": 5, + "TID": "TID_EARTHQUAKE", + "InfoTID": "TID_EARTHQUAKE_INFO", + "SpellForgeLevel": 2, + "LaboratoryLevel": 9, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 186, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 84000, + "BuildingDamagePermil": 58, + "Radius": 470, + "NumberOfHits": 5, + "RandomRadius": 200, + "TimeBetweenHitsMS": 400, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_earthquake", + "BigPicture": "icon_spell_earthquake", + "PreDeployEffect": "Earthquake_Predeploy", + "DeployEffect": "EarthQuake_deploy_ground_4", + "DeployEffect2": "EarthQuake_deploy_4", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 130, + "ProductionBuilding": "Mini Spell Factory", + "TargetInfoString": "TID_INFO_TARGET_TYPE_BUILDINGS_AND_WALLS", + "PreferredTarget": "Wall", + "PreferredTargetDamageMod": 5, + "ImmunitySiegeMachines": true, + "ImmunityOtherCharacters": true, + "ImmunityStorages": true, + "PreviewScenario": "SpellQuake" + } + }, + "Haste Spell": { + "1": { + "Level": 1, + "TID": "TID_SPEEDUP", + "InfoTID": "TID_SPEEDUP_INFO", + "SpellForgeLevel": 3, + "LaboratoryLevel": 1, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 36, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 16000, + "BoostTimeMS": 1000, + "SpeedBoost": 28, + "SpeedBoost2": 14, + "Radius": 400, + "NumberOfHits": 40, + "RandomRadius": 200, + "TimeBetweenHitsMS": 250, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_speedup", + "BigPicture": "icon_spell_speedup", + "PreDeployEffect": "speedup_Predeploy", + "DeployEffect": "Speedup_deploy_lvl1", + "DeployEffect2": "Speedup_deploy_top_lvl1", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 200, + "ProductionBuilding": "Mini Spell Factory", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "PreviewScenario": "SpellBooster" + }, + "2": { + "Level": 2, + "TID": "TID_SPEEDUP", + "InfoTID": "TID_SPEEDUP_INFO", + "SpellForgeLevel": 3, + "LaboratoryLevel": 7, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 62, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 34000, + "BoostTimeMS": 1000, + "SpeedBoost": 34, + "SpeedBoost2": 17, + "Radius": 400, + "NumberOfHits": 60, + "RandomRadius": 200, + "TimeBetweenHitsMS": 250, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_speedup", + "BigPicture": "icon_spell_speedup", + "PreDeployEffect": "speedup_Predeploy", + "DeployEffect": "Speedup_deploy_lvl2", + "DeployEffect2": "Speedup_deploy_top_lvl2", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 200, + "ProductionBuilding": "Mini Spell Factory", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "PreviewScenario": "SpellBooster" + }, + "3": { + "Level": 3, + "TID": "TID_SPEEDUP", + "InfoTID": "TID_SPEEDUP_INFO", + "SpellForgeLevel": 3, + "LaboratoryLevel": 8, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 120, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 60000, + "BoostTimeMS": 1000, + "SpeedBoost": 40, + "SpeedBoost2": 20, + "Radius": 400, + "NumberOfHits": 80, + "RandomRadius": 200, + "TimeBetweenHitsMS": 250, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_speedup", + "BigPicture": "icon_spell_speedup", + "PreDeployEffect": "speedup_Predeploy", + "DeployEffect": "Speedup_deploy_lvl3", + "DeployEffect2": "Speedup_deploy_top_lvl3", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 180, + "ProductionBuilding": "Mini Spell Factory", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "PreviewScenario": "SpellBooster" + }, + "4": { + "Level": 4, + "TID": "TID_SPEEDUP", + "InfoTID": "TID_SPEEDUP_INFO", + "SpellForgeLevel": 3, + "LaboratoryLevel": 8, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 186, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 77000, + "BoostTimeMS": 1000, + "SpeedBoost": 46, + "SpeedBoost2": 23, + "Radius": 400, + "NumberOfHits": 100, + "RandomRadius": 200, + "TimeBetweenHitsMS": 250, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_speedup", + "BigPicture": "icon_spell_speedup", + "PreDeployEffect": "speedup_Predeploy", + "DeployEffect": "Speedup_deploy_lvl4", + "DeployEffect2": "Speedup_deploy_top_lvl4", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 180, + "ProductionBuilding": "Mini Spell Factory", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "PreviewScenario": "SpellBooster" + }, + "5": { + "Level": 5, + "TID": "TID_SPEEDUP", + "InfoTID": "TID_SPEEDUP_INFO", + "SpellForgeLevel": 3, + "LaboratoryLevel": 9, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 186, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 77000, + "BoostTimeMS": 1000, + "SpeedBoost": 52, + "SpeedBoost2": 26, + "Radius": 400, + "NumberOfHits": 120, + "RandomRadius": 200, + "TimeBetweenHitsMS": 250, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_speedup", + "BigPicture": "icon_spell_speedup", + "PreDeployEffect": "speedup_Predeploy", + "DeployEffect": "Speedup_deploy_lvl5", + "DeployEffect2": "Speedup_deploy_top_lvl5", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 180, + "ProductionBuilding": "Mini Spell Factory", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "PreviewScenario": "SpellBooster" + } + }, + "Clone Spell": { + "1": { + "Level": 1, + "TID": "TID_DUPLICATE_SPELL", + "InfoTID": "TID_DUPLICATE_SPELL_INFO", + "SpellForgeLevel": 5, + "LaboratoryLevel": 1, + "DonateCost": 15, + "HousingSpace": 3, + "TrainingTime": 540, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 42, + "UpgradeResource": "Elixir", + "UpgradeCost": 2100000, + "Radius": 350, + "NumberOfHits": 60, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_clone", + "BigPicture": "icon_spell_clone", + "PreDeployEffect": "Clone_Predeploy", + "DeployEffect": "Clone deploy", + "DeployEffect2": "Clone deploy top", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 300, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "DuplicateHousing": 22, + "DuplicateLifetime": 30000, + "PreviewScenario": "SpellBooster" + }, + "2": { + "Level": 2, + "TID": "TID_DUPLICATE_SPELL", + "InfoTID": "TID_DUPLICATE_SPELL_INFO", + "SpellForgeLevel": 5, + "LaboratoryLevel": 8, + "DonateCost": 15, + "HousingSpace": 3, + "TrainingTime": 540, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 72, + "UpgradeResource": "Elixir", + "UpgradeCost": 3400000, + "Radius": 350, + "NumberOfHits": 60, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_clone", + "BigPicture": "icon_spell_clone", + "PreDeployEffect": "Clone_Predeploy", + "DeployEffect": "Clone deploy", + "DeployEffect2": "Clone deploy top", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 330, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "DuplicateHousing": 24, + "DuplicateLifetime": 30000, + "PreviewScenario": "SpellBooster" + }, + "3": { + "Level": 3, + "TID": "TID_DUPLICATE_SPELL", + "InfoTID": "TID_DUPLICATE_SPELL_INFO", + "SpellForgeLevel": 5, + "LaboratoryLevel": 8, + "DonateCost": 15, + "HousingSpace": 3, + "TrainingTime": 540, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 84, + "UpgradeResource": "Elixir", + "UpgradeCost": 4200000, + "Radius": 350, + "NumberOfHits": 60, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_clone", + "BigPicture": "icon_spell_clone", + "PreDeployEffect": "Clone_Predeploy", + "DeployEffect": "Clone deploy", + "DeployEffect2": "Clone deploy top", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 360, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "DuplicateHousing": 26, + "DuplicateLifetime": 30000, + "PreviewScenario": "SpellBooster" + }, + "4": { + "Level": 4, + "TID": "TID_DUPLICATE_SPELL", + "InfoTID": "TID_DUPLICATE_SPELL_INFO", + "SpellForgeLevel": 5, + "LaboratoryLevel": 9, + "DonateCost": 15, + "HousingSpace": 3, + "TrainingTime": 540, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 96, + "UpgradeResource": "Elixir", + "UpgradeCost": 5600000, + "Radius": 350, + "NumberOfHits": 60, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_clone", + "BigPicture": "icon_spell_clone", + "PreDeployEffect": "Clone_Predeploy", + "DeployEffect": "Clone deploy", + "DeployEffect2": "Clone deploy top", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 360, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "DuplicateHousing": 28, + "DuplicateLifetime": 30000, + "PreviewScenario": "SpellBooster" + }, + "5": { + "Level": 5, + "TID": "TID_DUPLICATE_SPELL", + "InfoTID": "TID_DUPLICATE_SPELL_INFO", + "SpellForgeLevel": 5, + "LaboratoryLevel": 9, + "DonateCost": 15, + "HousingSpace": 3, + "TrainingTime": 540, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 168, + "UpgradeResource": "Elixir", + "UpgradeCost": 7200000, + "Radius": 350, + "NumberOfHits": 60, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_clone", + "BigPicture": "icon_spell_clone", + "PreDeployEffect": "Clone_Predeploy", + "DeployEffect": "Clone deploy", + "DeployEffect2": "Clone deploy top", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 360, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "DuplicateHousing": 30, + "DuplicateLifetime": 30000, + "PreviewScenario": "SpellBooster" + }, + "6": { + "Level": 6, + "TID": "TID_DUPLICATE_SPELL", + "InfoTID": "TID_DUPLICATE_SPELL_INFO", + "SpellForgeLevel": 5, + "LaboratoryLevel": 11, + "DonateCost": 15, + "HousingSpace": 3, + "TrainingTime": 540, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 216, + "UpgradeResource": "Elixir", + "UpgradeCost": 15500000, + "Radius": 350, + "NumberOfHits": 60, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_clone", + "BigPicture": "icon_spell_clone", + "PreDeployEffect": "Clone_Predeploy", + "DeployEffect": "Clone deploy", + "DeployEffect2": "Clone deploy top", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 330, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "DuplicateHousing": 34, + "DuplicateLifetime": 30000, + "PreviewScenario": "SpellBooster" + }, + "7": { + "Level": 7, + "TID": "TID_DUPLICATE_SPELL", + "InfoTID": "TID_DUPLICATE_SPELL_INFO", + "SpellForgeLevel": 5, + "LaboratoryLevel": 12, + "DonateCost": 15, + "HousingSpace": 3, + "TrainingTime": 540, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 318, + "UpgradeResource": "Elixir", + "UpgradeCost": 18000000, + "Radius": 350, + "NumberOfHits": 60, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_clone", + "BigPicture": "icon_spell_clone", + "PreDeployEffect": "Clone_Predeploy", + "DeployEffect": "Clone deploy", + "DeployEffect2": "Clone deploy top", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 310, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "DuplicateHousing": 38, + "DuplicateLifetime": 30000, + "PreviewScenario": "SpellBooster" + }, + "8": { + "Level": 8, + "TID": "TID_DUPLICATE_SPELL", + "InfoTID": "TID_DUPLICATE_SPELL_INFO", + "SpellForgeLevel": 5, + "LaboratoryLevel": 13, + "DonateCost": 15, + "HousingSpace": 3, + "TrainingTime": 540, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 318, + "UpgradeResource": "Elixir", + "UpgradeCost": 18000000, + "Radius": 350, + "NumberOfHits": 60, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_clone", + "BigPicture": "icon_spell_clone", + "PreDeployEffect": "Clone_Predeploy", + "DeployEffect": "Clone deploy", + "DeployEffect2": "Clone deploy top", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 290, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "DuplicateHousing": 42, + "DuplicateLifetime": 30000, + "PreviewScenario": "SpellBooster" + } + }, + "Skeleton Spell": { + "1": { + "Level": 1, + "TID": "TID_CREATE_SKELETONS_SPELL", + "InfoTID": "TID_CREATE_SKELETONS_SPELL_INFO", + "SpellForgeLevel": 4, + "LaboratoryLevel": 1, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 0, + "HitTimeMS": 0, + "UpgradeTimeH": 32, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 22000, + "Radius": 225, + "NumberOfHits": 1, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_skeleton", + "BigPicture": "icon_spell_skeleton", + "PreDeployEffect": "skele_Predeploy", + "DeployEffect": "SkeleSpell Summon1", + "StrengthWeight": 460, + "ProductionBuilding": "Mini Spell Factory", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND", + "SummonTroop": "ShieldedSkeleton", + "UnitsToSpawn": 12, + "SpawnDuration": 12000, + "SpawnFirstGroupSize": 3, + "PreviewScenario": "SpellSkeleton" + }, + "2": { + "Level": 2, + "TID": "TID_CREATE_SKELETONS_SPELL", + "InfoTID": "TID_CREATE_SKELETONS_SPELL_INFO", + "SpellForgeLevel": 4, + "LaboratoryLevel": 8, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 0, + "HitTimeMS": 0, + "UpgradeTimeH": 62, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 34000, + "Radius": 225, + "NumberOfHits": 1, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_skeleton", + "BigPicture": "icon_spell_skeleton", + "PreDeployEffect": "skele_Predeploy", + "DeployEffect": "SkeleSpell Summon2", + "StrengthWeight": 470, + "ProductionBuilding": "Mini Spell Factory", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND", + "SummonTroop": "ShieldedSkeleton", + "UnitsToSpawn": 13, + "SpawnDuration": 13000, + "SpawnFirstGroupSize": 3, + "PreviewScenario": "SpellSkeleton" + }, + "3": { + "Level": 3, + "TID": "TID_CREATE_SKELETONS_SPELL", + "InfoTID": "TID_CREATE_SKELETONS_SPELL_INFO", + "SpellForgeLevel": 4, + "LaboratoryLevel": 8, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 0, + "HitTimeMS": 0, + "UpgradeTimeH": 96, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 50000, + "Radius": 225, + "NumberOfHits": 1, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_skeleton", + "BigPicture": "icon_spell_skeleton", + "PreDeployEffect": "skele_Predeploy", + "DeployEffect": "SkeleSpell Summon3", + "StrengthWeight": 480, + "ProductionBuilding": "Mini Spell Factory", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND", + "SummonTroop": "ShieldedSkeleton", + "UnitsToSpawn": 14, + "SpawnDuration": 14000, + "SpawnFirstGroupSize": 3, + "PreviewScenario": "SpellSkeleton" + }, + "4": { + "Level": 4, + "TID": "TID_CREATE_SKELETONS_SPELL", + "InfoTID": "TID_CREATE_SKELETONS_SPELL_INFO", + "SpellForgeLevel": 4, + "LaboratoryLevel": 9, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 0, + "HitTimeMS": 0, + "UpgradeTimeH": 102, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 80000, + "Radius": 225, + "NumberOfHits": 1, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_skeleton", + "BigPicture": "icon_spell_skeleton", + "PreDeployEffect": "skele_Predeploy", + "DeployEffect": "SkeleSpell Summon4", + "StrengthWeight": 500, + "ProductionBuilding": "Mini Spell Factory", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND", + "SummonTroop": "ShieldedSkeleton", + "UnitsToSpawn": 15, + "SpawnDuration": 15000, + "SpawnFirstGroupSize": 3, + "PreviewScenario": "SpellSkeleton" + }, + "5": { + "Level": 5, + "TID": "TID_CREATE_SKELETONS_SPELL", + "InfoTID": "TID_CREATE_SKELETONS_SPELL_INFO", + "SpellForgeLevel": 4, + "LaboratoryLevel": 10, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 0, + "HitTimeMS": 0, + "UpgradeTimeH": 132, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 100000, + "Radius": 225, + "NumberOfHits": 1, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_skeleton", + "BigPicture": "icon_spell_skeleton", + "PreDeployEffect": "skele_Predeploy", + "DeployEffect": "SkeleSpell Summon5", + "StrengthWeight": 520, + "ProductionBuilding": "Mini Spell Factory", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND", + "SummonTroop": "ShieldedSkeleton", + "UnitsToSpawn": 16, + "SpawnDuration": 16000, + "SpawnFirstGroupSize": 3, + "PreviewScenario": "SpellSkeleton" + }, + "6": { + "Level": 6, + "TID": "TID_CREATE_SKELETONS_SPELL", + "InfoTID": "TID_CREATE_SKELETONS_SPELL_INFO", + "SpellForgeLevel": 4, + "LaboratoryLevel": 10, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 0, + "HitTimeMS": 0, + "UpgradeTimeH": 168, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 150000, + "Radius": 225, + "NumberOfHits": 1, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_skeleton", + "BigPicture": "icon_spell_skeleton", + "PreDeployEffect": "skele_Predeploy", + "DeployEffect": "SkeleSpell Summon6", + "StrengthWeight": 540, + "ProductionBuilding": "Mini Spell Factory", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND", + "SummonTroop": "ShieldedSkeleton", + "UnitsToSpawn": 17, + "SpawnDuration": 17000, + "SpawnFirstGroupSize": 3, + "PreviewScenario": "SpellSkeleton" + }, + "7": { + "Level": 7, + "TID": "TID_CREATE_SKELETONS_SPELL", + "InfoTID": "TID_CREATE_SKELETONS_SPELL_INFO", + "SpellForgeLevel": 4, + "LaboratoryLevel": 11, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 0, + "HitTimeMS": 0, + "UpgradeTimeH": 318, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 320000, + "Radius": 225, + "NumberOfHits": 1, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_skeleton", + "BigPicture": "icon_spell_skeleton", + "PreDeployEffect": "skele_Predeploy", + "DeployEffect": "SkeleSpell Summon7", + "StrengthWeight": 560, + "ProductionBuilding": "Mini Spell Factory", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND", + "SummonTroop": "ShieldedSkeleton", + "UnitsToSpawn": 18, + "SpawnDuration": 18000, + "SpawnFirstGroupSize": 3, + "PreviewScenario": "SpellSkeleton" + }, + "8": { + "Level": 8, + "TID": "TID_CREATE_SKELETONS_SPELL", + "InfoTID": "TID_CREATE_SKELETONS_SPELL_INFO", + "SpellForgeLevel": 4, + "LaboratoryLevel": 13, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 0, + "HitTimeMS": 0, + "UpgradeTimeH": 318, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 320000, + "Radius": 225, + "NumberOfHits": 1, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_skeleton", + "BigPicture": "icon_spell_skeleton", + "PreDeployEffect": "skele_Predeploy", + "DeployEffect": "SkeleSpell Summon8", + "StrengthWeight": 580, + "ProductionBuilding": "Mini Spell Factory", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND", + "SummonTroop": "ShieldedSkeleton", + "UnitsToSpawn": 19, + "SpawnDuration": 19000, + "SpawnFirstGroupSize": 3, + "PreviewScenario": "SpellSkeleton" + } + }, + "Birthday Boom": { + "1": { + "Level": 1, + "TID": "TID_BIRTHDAY_SPELL", + "InfoTID": "TID_BIRTHDAY_SPELL_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 1, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 0, + "ChargingTimeMS": 150, + "HitTimeMS": 1750, + "UpgradeResource": "Elixir", + "SpeedBoost2": 0, + "Damage": 500, + "Radius": 250, + "NumberOfHits": 1, + "RandomRadius": 0, + "TimeBetweenHitsMS": 0, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_birthday", + "BigPicture": "icon_spell_birthday", + "PreDeployEffect": "Birthday predeploy", + "DeployEffect": "BirthdaySpell Summon2", + "DeployEffect2": "BirthdaySpell Summon1", + "ChargingEffect": "Birthday Hit", + "HitEffect": "Birthday Spell Hit", + "RandomRadiusAffectsOnlyGfx": false, + "SpawnObstacle": "Birthday TombStone", + "NumObstacles": 3, + "StrengthWeight": 0, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "DamageTHPercent": 70, + "DisableDonate": true, + "ScaleByTH": true, + "EnabledByCalendar": true, + "PauseCombatComponentsMs": 2000 + } + }, + "Bat Spell": { + "1": { + "Level": 1, + "TID": "TID_SPELL_BATS", + "InfoTID": "TID_SPELL_BATS_INFO", + "SpellForgeLevel": 5, + "LaboratoryLevel": 1, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 0, + "HitTimeMS": 0, + "UpgradeTimeH": 42, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 26000, + "BoostTimeMS": 0, + "SpeedBoost": 0, + "SpeedBoost2": 0, + "Damage": 0, + "Radius": 225, + "NumberOfHits": 1, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_bats", + "BigPicture": "icon_spell_bats", + "PreDeployEffect": "bat_Predeploy", + "DeployEffect": "BatSpell Summon1", + "StrengthWeight": 460, + "ProductionBuilding": "Mini Spell Factory", + "TargetInfoString": "TID_BUILDING_CLASS_DEFENSE", + "SummonTroop": "SpellBat", + "UnitsToSpawn": 7, + "SpawnDuration": 4200, + "SpawnFirstGroupSize": 1, + "PreviewScenario": "SpellBat" + }, + "2": { + "Level": 2, + "TID": "TID_SPELL_BATS", + "InfoTID": "TID_SPELL_BATS_INFO", + "SpellForgeLevel": 5, + "LaboratoryLevel": 8, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 0, + "HitTimeMS": 0, + "UpgradeTimeH": 84, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 51000, + "BoostTimeMS": 0, + "SpeedBoost": 0, + "SpeedBoost2": 0, + "Damage": 0, + "Radius": 225, + "NumberOfHits": 1, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_bats", + "BigPicture": "icon_spell_bats", + "PreDeployEffect": "bat_Predeploy", + "DeployEffect": "BatSpell Summon2", + "StrengthWeight": 470, + "ProductionBuilding": "Mini Spell Factory", + "TargetInfoString": "TID_BUILDING_CLASS_DEFENSE", + "SummonTroop": "SpellBat", + "UnitsToSpawn": 9, + "SpawnDuration": 5400, + "SpawnFirstGroupSize": 1, + "PreviewScenario": "SpellBat" + }, + "3": { + "Level": 3, + "TID": "TID_SPELL_BATS", + "InfoTID": "TID_SPELL_BATS_INFO", + "SpellForgeLevel": 5, + "LaboratoryLevel": 8, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 0, + "HitTimeMS": 0, + "UpgradeTimeH": 126, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 70000, + "BoostTimeMS": 0, + "SpeedBoost": 0, + "SpeedBoost2": 0, + "Damage": 0, + "Radius": 225, + "NumberOfHits": 1, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_bats", + "BigPicture": "icon_spell_bats", + "PreDeployEffect": "bat_Predeploy", + "DeployEffect": "BatSpell Summon3", + "StrengthWeight": 480, + "ProductionBuilding": "Mini Spell Factory", + "TargetInfoString": "TID_BUILDING_CLASS_DEFENSE", + "SummonTroop": "SpellBat", + "UnitsToSpawn": 11, + "SpawnDuration": 6600, + "SpawnFirstGroupSize": 1, + "PreviewScenario": "SpellBat" + }, + "4": { + "Level": 4, + "TID": "TID_SPELL_BATS", + "InfoTID": "TID_SPELL_BATS_INFO", + "SpellForgeLevel": 5, + "LaboratoryLevel": 9, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 0, + "HitTimeMS": 0, + "UpgradeTimeH": 144, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 95000, + "BoostTimeMS": 0, + "SpeedBoost": 0, + "SpeedBoost2": 0, + "Damage": 0, + "Radius": 225, + "NumberOfHits": 1, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_bats", + "BigPicture": "icon_spell_bats", + "PreDeployEffect": "bat_Predeploy", + "DeployEffect": "BatSpell Summon4", + "StrengthWeight": 500, + "ProductionBuilding": "Mini Spell Factory", + "TargetInfoString": "TID_BUILDING_CLASS_DEFENSE", + "SummonTroop": "SpellBat", + "UnitsToSpawn": 16, + "SpawnDuration": 9600, + "SpawnFirstGroupSize": 1, + "PreviewScenario": "SpellBat" + }, + "5": { + "Level": 5, + "TID": "TID_SPELL_BATS", + "InfoTID": "TID_SPELL_BATS_INFO", + "SpellForgeLevel": 5, + "LaboratoryLevel": 10, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 0, + "HitTimeMS": 0, + "UpgradeTimeH": 324, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 330000, + "BoostTimeMS": 0, + "SpeedBoost": 0, + "SpeedBoost2": 0, + "Damage": 0, + "Radius": 225, + "NumberOfHits": 1, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_bats", + "BigPicture": "icon_spell_bats", + "PreDeployEffect": "bat_Predeploy", + "DeployEffect": "BatSpell Summon5", + "StrengthWeight": 520, + "ProductionBuilding": "Mini Spell Factory", + "TargetInfoString": "TID_BUILDING_CLASS_DEFENSE", + "SummonTroop": "SpellBat", + "UnitsToSpawn": 21, + "SpawnDuration": 12600, + "SpawnFirstGroupSize": 1, + "PreviewScenario": "SpellBat" + }, + "6": { + "Level": 6, + "TID": "TID_SPELL_BATS", + "InfoTID": "TID_SPELL_BATS_INFO", + "SpellForgeLevel": 5, + "LaboratoryLevel": 13, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 0, + "HitTimeMS": 0, + "UpgradeTimeH": 324, + "UpgradeResource": "DarkElixir", + "UpgradeCost": 330000, + "BoostTimeMS": 0, + "SpeedBoost": 0, + "SpeedBoost2": 0, + "Damage": 0, + "Radius": 225, + "NumberOfHits": 1, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_bats", + "BigPicture": "icon_spell_bats", + "PreDeployEffect": "bat_Predeploy", + "DeployEffect": "BatSpell Summon6", + "StrengthWeight": 560, + "ProductionBuilding": "Mini Spell Factory", + "TargetInfoString": "TID_BUILDING_CLASS_DEFENSE", + "SummonTroop": "SpellBat", + "UnitsToSpawn": 22, + "SpawnDuration": 13200, + "SpawnFirstGroupSize": 1, + "PreviewScenario": "SpellBat" + } + }, + "Invisibility Spell": { + "1": { + "Level": 1, + "TID": "TID_INVISIBILITY_SPELL", + "InfoTID": "TID_INVISIBILITY_SPELL_INFO", + "SpellForgeLevel": 6, + "LaboratoryLevel": 1, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 132, + "UpgradeResource": "Elixir", + "UpgradeCost": 5600000, + "Radius": 400, + "NumberOfHits": 15, + "RandomRadius": 200, + "TimeBetweenHitsMS": 250, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_invisibility", + "BigPicture": "icon_spell_invisibility", + "PreDeployEffect": "Invisibility_Predeploy", + "DeployEffect": "Invisibility area lvl1", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 210, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "InvisibilityTime": 600, + "ImmunitySiegeMachines": true, + "ImmunityWalls": true, + "PreviewScenario": "SpellInvisibility" + }, + "2": { + "Level": 2, + "TID": "TID_INVISIBILITY_SPELL", + "InfoTID": "TID_INVISIBILITY_SPELL_INFO", + "SpellForgeLevel": 6, + "LaboratoryLevel": 9, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 144, + "UpgradeResource": "Elixir", + "UpgradeCost": 7500000, + "Radius": 400, + "NumberOfHits": 16, + "RandomRadius": 200, + "TimeBetweenHitsMS": 250, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_invisibility", + "BigPicture": "icon_spell_invisibility", + "PreDeployEffect": "Invisibility_Predeploy", + "DeployEffect": "Invisibility area lvl2", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 215, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "InvisibilityTime": 600, + "ImmunitySiegeMachines": true, + "ImmunityWalls": true, + "PreviewScenario": "SpellInvisibility" + }, + "3": { + "Level": 3, + "TID": "TID_INVISIBILITY_SPELL", + "InfoTID": "TID_INVISIBILITY_SPELL_INFO", + "SpellForgeLevel": 6, + "LaboratoryLevel": 10, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 228, + "UpgradeResource": "Elixir", + "UpgradeCost": 9000000, + "Radius": 400, + "NumberOfHits": 17, + "RandomRadius": 200, + "TimeBetweenHitsMS": 250, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_invisibility", + "BigPicture": "icon_spell_invisibility", + "PreDeployEffect": "Invisibility_Predeploy", + "DeployEffect": "Invisibility area lvl3", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 220, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "InvisibilityTime": 600, + "ImmunitySiegeMachines": true, + "ImmunityWalls": true, + "PreviewScenario": "SpellInvisibility" + }, + "4": { + "Level": 4, + "TID": "TID_INVISIBILITY_SPELL", + "InfoTID": "TID_INVISIBILITY_SPELL_INFO", + "SpellForgeLevel": 6, + "LaboratoryLevel": 11, + "DonateCost": 5, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 800, + "ChargingTimeMS": 300, + "HitTimeMS": 400, + "UpgradeTimeH": 228, + "UpgradeResource": "Elixir", + "UpgradeCost": 9000000, + "Radius": 400, + "NumberOfHits": 18, + "RandomRadius": 200, + "TimeBetweenHitsMS": 250, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_invisibility", + "BigPicture": "icon_spell_invisibility", + "PreDeployEffect": "Invisibility_Predeploy", + "DeployEffect": "Invisibility area lvl4", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 225, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "InvisibilityTime": 600, + "ImmunitySiegeMachines": true, + "ImmunityWalls": true, + "PreviewScenario": "SpellInvisibility" + } + }, + "Recall Spell": { + "1": { + "Level": 1, + "TID": "TID_SPELL_RECALL", + "InfoTID": "TID_SPELL_RECALL_INFO", + "SpellForgeLevel": 7, + "LaboratoryLevel": 1, + "DonateCost": 10, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 800, + "ChargingTimeMS": 0, + "HitTimeMS": 100, + "UpgradeTimeH": 228, + "UpgradeResource": "Elixir", + "UpgradeCost": 7500000, + "BoostTimeMS": 0, + "SpeedBoost": 0, + "SpeedBoost2": 0, + "Damage": 0, + "Radius": 500, + "NumberOfHits": 1, + "RandomRadius": 200, + "TimeBetweenHitsMS": 100, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_recall", + "BigPicture": "icon_spell_recall", + "PreDeployEffect": "Recall_Predeploy", + "DeployEffect": "RecallDeployAuraGround", + "DeployEffect2": "RecallDeployAuraTop", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 120, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "RecallHousing": 83, + "PreviewScenario": "SpellRecall" + }, + "2": { + "Level": 2, + "TID": "TID_SPELL_RECALL", + "InfoTID": "TID_SPELL_RECALL_INFO", + "SpellForgeLevel": 7, + "LaboratoryLevel": 11, + "DonateCost": 10, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 800, + "ChargingTimeMS": 0, + "HitTimeMS": 100, + "UpgradeTimeH": 276, + "UpgradeResource": "Elixir", + "UpgradeCost": 14000000, + "BoostTimeMS": 0, + "SpeedBoost": 0, + "SpeedBoost2": 0, + "Damage": 0, + "Radius": 500, + "NumberOfHits": 1, + "RandomRadius": 200, + "TimeBetweenHitsMS": 100, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_recall", + "BigPicture": "icon_spell_recall", + "PreDeployEffect": "Recall_Predeploy", + "DeployEffect": "RecallDeployAuraGround", + "DeployEffect2": "RecallDeployAuraTop", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 130, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "RecallHousing": 89, + "PreviewScenario": "SpellRecall" + }, + "3": { + "Level": 3, + "TID": "TID_SPELL_RECALL", + "InfoTID": "TID_SPELL_RECALL_INFO", + "SpellForgeLevel": 7, + "LaboratoryLevel": 12, + "DonateCost": 10, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 800, + "ChargingTimeMS": 0, + "HitTimeMS": 100, + "UpgradeTimeH": 318, + "UpgradeResource": "Elixir", + "UpgradeCost": 17500000, + "BoostTimeMS": 0, + "SpeedBoost": 0, + "SpeedBoost2": 0, + "Damage": 0, + "Radius": 500, + "NumberOfHits": 1, + "RandomRadius": 200, + "TimeBetweenHitsMS": 100, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_recall", + "BigPicture": "icon_spell_recall", + "PreDeployEffect": "Recall_Predeploy", + "DeployEffect": "RecallDeployAuraGround", + "DeployEffect2": "RecallDeployAuraTop", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 140, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "RecallHousing": 95, + "PreviewScenario": "SpellRecall" + }, + "4": { + "Level": 4, + "TID": "TID_SPELL_RECALL", + "InfoTID": "TID_SPELL_RECALL_INFO", + "SpellForgeLevel": 7, + "LaboratoryLevel": 13, + "DonateCost": 10, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 800, + "ChargingTimeMS": 0, + "HitTimeMS": 100, + "UpgradeTimeH": 360, + "UpgradeResource": "Elixir", + "UpgradeCost": 19500000, + "BoostTimeMS": 0, + "SpeedBoost": 0, + "SpeedBoost2": 0, + "Damage": 0, + "Radius": 500, + "NumberOfHits": 1, + "RandomRadius": 200, + "TimeBetweenHitsMS": 100, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_recall", + "BigPicture": "icon_spell_recall", + "PreDeployEffect": "Recall_Predeploy", + "DeployEffect": "RecallDeployAuraGround", + "DeployEffect2": "RecallDeployAuraTop", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 145, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "RecallHousing": 101, + "PreviewScenario": "SpellRecall" + }, + "5": { + "Level": 5, + "TID": "TID_SPELL_RECALL", + "InfoTID": "TID_SPELL_RECALL_INFO", + "SpellForgeLevel": 7, + "LaboratoryLevel": 14, + "DonateCost": 10, + "HousingSpace": 2, + "TrainingTime": 360, + "DeployTimeMS": 800, + "ChargingTimeMS": 0, + "HitTimeMS": 100, + "UpgradeTimeH": 360, + "UpgradeResource": "Elixir", + "UpgradeCost": 19500000, + "BoostTimeMS": 0, + "SpeedBoost": 0, + "SpeedBoost2": 0, + "Damage": 0, + "Radius": 500, + "NumberOfHits": 1, + "RandomRadius": 200, + "TimeBetweenHitsMS": 100, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_recall", + "BigPicture": "icon_spell_recall", + "PreDeployEffect": "Recall_Predeploy", + "DeployEffect": "RecallDeployAuraGround", + "DeployEffect2": "RecallDeployAuraTop", + "RandomRadiusAffectsOnlyGfx": true, + "StrengthWeight": 150, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_INFO_TARGET_TYPE_GROUND_AND_AIR", + "RecallHousing": 107, + "PreviewScenario": "SpellRecall" + } + }, + "Bag of Frostmites": { + "1": { + "Level": 1, + "TID": "TID_SPELL_BAG_OF_FROSTMITES", + "InfoTID": "TID_SPELL_BAG_OF_FROSTMITES_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 1, + "DonateCost": 10, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 300, + "ChargingTimeMS": 0, + "HitTimeMS": 300, + "UpgradeResource": "Elixir", + "BoostTimeMS": 0, + "SpeedBoost": 0, + "SpeedBoost2": 0, + "Damage": 0, + "Radius": 350, + "NumberOfHits": 1, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_frostmitebag", + "BigPicture": "icon_spell_frostmitebag", + "PreDeployEffect": "Frostmites Spell Predeploy", + "DeployEffect": "BagOfFrostmitesEffect", + "FreezeTimeMS": 1500, + "StrengthWeight": 460, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_PREFERRED_TARGET_ANY", + "SummonTroop": "BouncingFrostmite", + "UnitsToSpawn": 10, + "SpawnUpgradeLevel": 1, + "SpawnDuration": 5000, + "SpawnFirstGroupSize": 1, + "EnabledByCalendar": true, + "UpgradeLevelByTH": 6, + "FreezeOuterTimeMS": 1000, + "PreviewScenario": "SpellFrostmites" + }, + "2": { + "Level": 2, + "TID": "TID_SPELL_BAG_OF_FROSTMITES", + "InfoTID": "TID_SPELL_BAG_OF_FROSTMITES_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 1, + "DonateCost": 10, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 300, + "ChargingTimeMS": 0, + "HitTimeMS": 300, + "UpgradeResource": "Elixir", + "BoostTimeMS": 0, + "SpeedBoost": 0, + "SpeedBoost2": 0, + "Damage": 0, + "Radius": 350, + "NumberOfHits": 1, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_frostmitebag", + "BigPicture": "icon_spell_frostmitebag", + "PreDeployEffect": "Frostmites Spell Predeploy", + "DeployEffect": "BagOfFrostmitesEffect2", + "FreezeTimeMS": 1700, + "StrengthWeight": 460, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_PREFERRED_TARGET_ANY", + "SummonTroop": "BouncingFrostmite", + "UnitsToSpawn": 11, + "SpawnUpgradeLevel": 2, + "SpawnDuration": 6000, + "SpawnFirstGroupSize": 1, + "EnabledByCalendar": true, + "UpgradeLevelByTH": 7, + "FreezeOuterTimeMS": 1200, + "PreviewScenario": "SpellFrostmites" + }, + "3": { + "Level": 3, + "TID": "TID_SPELL_BAG_OF_FROSTMITES", + "InfoTID": "TID_SPELL_BAG_OF_FROSTMITES_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 1, + "DonateCost": 10, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 300, + "ChargingTimeMS": 0, + "HitTimeMS": 300, + "UpgradeResource": "Elixir", + "BoostTimeMS": 0, + "SpeedBoost": 0, + "SpeedBoost2": 0, + "Damage": 0, + "Radius": 350, + "NumberOfHits": 1, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_frostmitebag", + "BigPicture": "icon_spell_frostmitebag", + "PreDeployEffect": "Frostmites Spell Predeploy", + "DeployEffect": "BagOfFrostmitesEffect3", + "FreezeTimeMS": 1900, + "StrengthWeight": 460, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_PREFERRED_TARGET_ANY", + "SummonTroop": "BouncingFrostmite", + "UnitsToSpawn": 12, + "SpawnUpgradeLevel": 3, + "SpawnDuration": 7000, + "SpawnFirstGroupSize": 1, + "EnabledByCalendar": true, + "UpgradeLevelByTH": 8, + "FreezeOuterTimeMS": 1400, + "PreviewScenario": "SpellFrostmites" + }, + "4": { + "Level": 4, + "TID": "TID_SPELL_BAG_OF_FROSTMITES", + "InfoTID": "TID_SPELL_BAG_OF_FROSTMITES_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 1, + "DonateCost": 10, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 300, + "ChargingTimeMS": 0, + "HitTimeMS": 300, + "UpgradeResource": "Elixir", + "BoostTimeMS": 0, + "SpeedBoost": 0, + "SpeedBoost2": 0, + "Damage": 0, + "Radius": 350, + "NumberOfHits": 1, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_frostmitebag", + "BigPicture": "icon_spell_frostmitebag", + "PreDeployEffect": "Frostmites Spell Predeploy", + "DeployEffect": "BagOfFrostmitesEffect4", + "FreezeTimeMS": 2100, + "StrengthWeight": 460, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_PREFERRED_TARGET_ANY", + "SummonTroop": "BouncingFrostmite", + "UnitsToSpawn": 13, + "SpawnUpgradeLevel": 4, + "SpawnDuration": 8000, + "SpawnFirstGroupSize": 1, + "EnabledByCalendar": true, + "UpgradeLevelByTH": 9, + "FreezeOuterTimeMS": 1600, + "PreviewScenario": "SpellFrostmites" + }, + "5": { + "Level": 5, + "TID": "TID_SPELL_BAG_OF_FROSTMITES", + "InfoTID": "TID_SPELL_BAG_OF_FROSTMITES_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 1, + "DonateCost": 10, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 300, + "ChargingTimeMS": 0, + "HitTimeMS": 300, + "UpgradeResource": "Elixir", + "BoostTimeMS": 0, + "SpeedBoost": 0, + "SpeedBoost2": 0, + "Damage": 0, + "Radius": 350, + "NumberOfHits": 1, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_frostmitebag", + "BigPicture": "icon_spell_frostmitebag", + "PreDeployEffect": "Frostmites Spell Predeploy", + "DeployEffect": "BagOfFrostmitesEffect5", + "FreezeTimeMS": 2300, + "StrengthWeight": 460, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_PREFERRED_TARGET_ANY", + "SummonTroop": "BouncingFrostmite", + "UnitsToSpawn": 14, + "SpawnUpgradeLevel": 5, + "SpawnDuration": 9000, + "SpawnFirstGroupSize": 1, + "EnabledByCalendar": true, + "UpgradeLevelByTH": 10, + "FreezeOuterTimeMS": 1800, + "PreviewScenario": "SpellFrostmites" + }, + "6": { + "Level": 6, + "TID": "TID_SPELL_BAG_OF_FROSTMITES", + "InfoTID": "TID_SPELL_BAG_OF_FROSTMITES_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 1, + "DonateCost": 10, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 300, + "ChargingTimeMS": 0, + "HitTimeMS": 300, + "UpgradeResource": "Elixir", + "BoostTimeMS": 0, + "SpeedBoost": 0, + "SpeedBoost2": 0, + "Damage": 0, + "Radius": 350, + "NumberOfHits": 1, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_frostmitebag", + "BigPicture": "icon_spell_frostmitebag", + "PreDeployEffect": "Frostmites Spell Predeploy", + "DeployEffect": "BagOfFrostmitesEffect6", + "FreezeTimeMS": 2500, + "StrengthWeight": 460, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_PREFERRED_TARGET_ANY", + "SummonTroop": "BouncingFrostmite", + "UnitsToSpawn": 15, + "SpawnUpgradeLevel": 6, + "SpawnDuration": 10000, + "SpawnFirstGroupSize": 1, + "EnabledByCalendar": true, + "UpgradeLevelByTH": 11, + "FreezeOuterTimeMS": 2000, + "PreviewScenario": "SpellFrostmites" + }, + "7": { + "Level": 7, + "TID": "TID_SPELL_BAG_OF_FROSTMITES", + "InfoTID": "TID_SPELL_BAG_OF_FROSTMITES_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 1, + "DonateCost": 10, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 300, + "ChargingTimeMS": 0, + "HitTimeMS": 300, + "UpgradeResource": "Elixir", + "BoostTimeMS": 0, + "SpeedBoost": 0, + "SpeedBoost2": 0, + "Damage": 0, + "Radius": 350, + "NumberOfHits": 1, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_frostmitebag", + "BigPicture": "icon_spell_frostmitebag", + "PreDeployEffect": "Frostmites Spell Predeploy", + "DeployEffect": "BagOfFrostmitesEffect7", + "FreezeTimeMS": 2700, + "StrengthWeight": 460, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_PREFERRED_TARGET_ANY", + "SummonTroop": "BouncingFrostmite", + "UnitsToSpawn": 16, + "SpawnUpgradeLevel": 7, + "SpawnDuration": 11000, + "SpawnFirstGroupSize": 1, + "EnabledByCalendar": true, + "UpgradeLevelByTH": 12, + "FreezeOuterTimeMS": 2200, + "PreviewScenario": "SpellFrostmites" + }, + "8": { + "Level": 8, + "TID": "TID_SPELL_BAG_OF_FROSTMITES", + "InfoTID": "TID_SPELL_BAG_OF_FROSTMITES_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 1, + "DonateCost": 10, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 300, + "ChargingTimeMS": 0, + "HitTimeMS": 300, + "UpgradeResource": "Elixir", + "BoostTimeMS": 0, + "SpeedBoost": 0, + "SpeedBoost2": 0, + "Damage": 0, + "Radius": 350, + "NumberOfHits": 1, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_frostmitebag", + "BigPicture": "icon_spell_frostmitebag", + "PreDeployEffect": "Frostmites Spell Predeploy", + "DeployEffect": "BagOfFrostmitesEffect8", + "FreezeTimeMS": 2900, + "StrengthWeight": 460, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_PREFERRED_TARGET_ANY", + "SummonTroop": "BouncingFrostmite", + "UnitsToSpawn": 17, + "SpawnUpgradeLevel": 8, + "SpawnDuration": 12000, + "SpawnFirstGroupSize": 1, + "EnabledByCalendar": true, + "UpgradeLevelByTH": 13, + "FreezeOuterTimeMS": 2400, + "PreviewScenario": "SpellFrostmites" + }, + "9": { + "Level": 9, + "TID": "TID_SPELL_BAG_OF_FROSTMITES", + "InfoTID": "TID_SPELL_BAG_OF_FROSTMITES_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 1, + "DonateCost": 10, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 300, + "ChargingTimeMS": 0, + "HitTimeMS": 300, + "UpgradeResource": "Elixir", + "BoostTimeMS": 0, + "SpeedBoost": 0, + "SpeedBoost2": 0, + "Damage": 0, + "Radius": 350, + "NumberOfHits": 1, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_frostmitebag", + "BigPicture": "icon_spell_frostmitebag", + "PreDeployEffect": "Frostmites Spell Predeploy", + "DeployEffect": "BagOfFrostmitesEffect9", + "FreezeTimeMS": 3100, + "StrengthWeight": 460, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_PREFERRED_TARGET_ANY", + "SummonTroop": "BouncingFrostmite", + "UnitsToSpawn": 18, + "SpawnUpgradeLevel": 9, + "SpawnDuration": 13000, + "SpawnFirstGroupSize": 1, + "EnabledByCalendar": true, + "UpgradeLevelByTH": 14, + "FreezeOuterTimeMS": 2600, + "PreviewScenario": "SpellFrostmites" + }, + "10": { + "Level": 10, + "TID": "TID_SPELL_BAG_OF_FROSTMITES", + "InfoTID": "TID_SPELL_BAG_OF_FROSTMITES_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 1, + "DonateCost": 10, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 300, + "ChargingTimeMS": 0, + "HitTimeMS": 300, + "UpgradeResource": "Elixir", + "BoostTimeMS": 0, + "SpeedBoost": 0, + "SpeedBoost2": 0, + "Damage": 0, + "Radius": 350, + "NumberOfHits": 1, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_frostmitebag", + "BigPicture": "icon_spell_frostmitebag", + "PreDeployEffect": "Frostmites Spell Predeploy", + "DeployEffect": "BagOfFrostmitesEffect10", + "FreezeTimeMS": 3300, + "StrengthWeight": 460, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_PREFERRED_TARGET_ANY", + "SummonTroop": "BouncingFrostmite", + "UnitsToSpawn": 19, + "SpawnUpgradeLevel": 10, + "SpawnDuration": 14000, + "SpawnFirstGroupSize": 1, + "EnabledByCalendar": true, + "UpgradeLevelByTH": 15, + "FreezeOuterTimeMS": 2800, + "PreviewScenario": "SpellFrostmites" + }, + "11": { + "Level": 11, + "TID": "TID_SPELL_BAG_OF_FROSTMITES", + "InfoTID": "TID_SPELL_BAG_OF_FROSTMITES_INFO", + "SpellForgeLevel": 1, + "LaboratoryLevel": 1, + "DonateCost": 10, + "HousingSpace": 1, + "TrainingTime": 180, + "DeployTimeMS": 300, + "ChargingTimeMS": 0, + "HitTimeMS": 300, + "UpgradeResource": "Elixir", + "BoostTimeMS": 0, + "SpeedBoost": 0, + "SpeedBoost2": 0, + "Damage": 0, + "Radius": 350, + "NumberOfHits": 1, + "RandomRadius": 200, + "TimeBetweenHitsMS": 300, + "IconSWF": "sc/ui.sc", + "IconExportName": "icon_spell_frostmitebag", + "BigPicture": "icon_spell_frostmitebag", + "PreDeployEffect": "Frostmites Spell Predeploy", + "DeployEffect": "BagOfFrostmitesEffect11", + "FreezeTimeMS": 3500, + "StrengthWeight": 460, + "ProductionBuilding": "Spell Forge", + "TargetInfoString": "TID_PREFERRED_TARGET_ANY", + "SummonTroop": "BouncingFrostmite", + "UnitsToSpawn": 20, + "SpawnUpgradeLevel": 11, + "SpawnDuration": 15000, + "SpawnFirstGroupSize": 1, + "EnabledByCalendar": true, + "UpgradeLevelByTH": 16, + "FreezeOuterTimeMS": 3000, + "PreviewScenario": "SpellFrostmites" + } + } } \ No newline at end of file diff --git a/assets/json/supers.json b/assets/json/supers.json index 5bb91dc4..deb8681b 100644 --- a/assets/json/supers.json +++ b/assets/json/supers.json @@ -1,162 +1,162 @@ -{ - "SuperBarbarian": { - "Original": "Barbarian", - "MinOriginalLevel": 7, - "Replacement": "EliteBarbarian", - "DurationH": 72, - "CooldownH": 72, - "Resource": "DarkElixir", - "ResourceCost": 25000, - "TrialNPC": "SUPER_BARB_INTRO_TH13" - }, - "SuperGoblin": { - "Original": "Goblin", - "MinOriginalLevel": 6, - "Replacement": "EliteGoblin", - "DurationH": 72, - "CooldownH": 72, - "Resource": "DarkElixir", - "ResourceCost": 25000, - "TrialNPC": "SUPER_GOBLIN_INTRO_TH13" - }, - "SuperGiant": { - "Original": "Giant", - "MinOriginalLevel": 8, - "Replacement": "EliteGiant", - "DurationH": 72, - "CooldownH": 72, - "Resource": "DarkElixir", - "ResourceCost": 25000, - "TrialNPC": "SUPER_GIANT_INTRO_TH13" - }, - "SuperWallbreaker": { - "Original": "Wall Breaker", - "MinOriginalLevel": 6, - "Replacement": "EliteWallBreaker", - "DurationH": 72, - "CooldownH": 72, - "Resource": "DarkElixir", - "ResourceCost": 25000, - "TrialNPC": "SUPER_WALLBREAKER_INTRO_TH13" - }, - "SuperArcher": { - "Original": "Archer", - "MinOriginalLevel": 7, - "Replacement": "EliteArcher", - "DurationH": 72, - "CooldownH": 72, - "Resource": "DarkElixir", - "ResourceCost": 25000, - "TrialNPC": "SUPER_ARCHER_INTRO_TH13" - }, - "SuperWitch": { - "Original": "Warlock", - "MinOriginalLevel": 4, - "Replacement": "Head Witch", - "DurationH": 72, - "CooldownH": 72, - "Resource": "DarkElixir", - "ResourceCost": 25000, - "TrialNPC": "SUPER_WITCH_INTRO_TH13" - }, - "InfernoDragon": { - "Original": "BabyDragon", - "MinOriginalLevel": 5, - "Replacement": "InfernoDragon", - "DurationH": 72, - "CooldownH": 72, - "Resource": "DarkElixir", - "ResourceCost": 25000, - "TrialNPC": "INFERNO_DRAGON_INTRO_TH13" - }, - "SuperValkyrie": { - "Original": "Warrior Girl", - "MinOriginalLevel": 6, - "Replacement": "EliteValkyrie", - "DurationH": 72, - "CooldownH": 72, - "Resource": "DarkElixir", - "ResourceCost": 25000, - "TrialNPC": "SUPER_VALKYRIE_INTRO_TH13" - }, - "SuperMinion": { - "Original": "Gargoyle", - "MinOriginalLevel": 7, - "Replacement": "Super Minion", - "DurationH": 72, - "CooldownH": 72, - "Resource": "DarkElixir", - "ResourceCost": 25000, - "TrialNPC": "SUPER_MINION_INTRO_TH13" - }, - "SuperWizard": { - "Original": "Wizard", - "MinOriginalLevel": 8, - "Replacement": "Super Wizard", - "DurationH": 72, - "CooldownH": 72, - "Resource": "DarkElixir", - "ResourceCost": 25000, - "TrialNPC": "SUPER_WIZARD_INTRO_TH13" - }, - "IceHound": { - "Original": "AirDefenceSeeker", - "MinOriginalLevel": 4, - "Replacement": "Ice Hound", - "DurationH": 72, - "CooldownH": 72, - "Resource": "DarkElixir", - "ResourceCost": 25000, - "TrialNPC": "SUPER_LAVAHOUND_INTRO_TH13" - }, - "SuperBalloon": { - "Original": "Balloon", - "MinOriginalLevel": 7, - "Replacement": "HastyBalloon", - "DurationH": 72, - "CooldownH": 72, - "Resource": "DarkElixir", - "ResourceCost": 25000, - "TrialNPC": "SUPER_BALLOON_INTRO_TH13" - }, - "SuperBowler": { - "Original": "Bowler", - "MinOriginalLevel": 3, - "Replacement": "Super Bowler", - "DurationH": 72, - "CooldownH": 72, - "Resource": "DarkElixir", - "ResourceCost": 25000, - "TrialNPC": "SUPER_BOWLER_INTRO_TH13" - }, - "SuperDragon": { - "Original": "Dragon", - "MinOriginalLevel": 6, - "Replacement": "Super Dragon", - "DurationH": 72, - "CooldownH": 72, - "Resource": "DarkElixir", - "ResourceCost": 25000, - "TrialNPC": "SUPER_DRAGON_INTRO_TH13" - }, - "SuperMiner": { - "Original": "Miner", - "MinOriginalLevel": 6, - "Replacement": "Super Miner", - "DurationH": 72, - "CooldownH": 72, - "Resource": "DarkElixir", - "ResourceCost": 25000, - "TrialNPC": "SUPER_MINER_INTRO" - }, - "SuperHogRider": { - "Original": "Boar Rider", - "MinOriginalLevel": 9, - "Replacement": "Super Hog Rider", - "DurationH": 72, - "CooldownH": 72, - "Resource": "DarkElixir", - "ResourceCost": 25000, - "TrialNPC": "SUPER_HOG_INTRO" - } +{ + "SuperBarbarian": { + "Original": "Barbarian", + "MinOriginalLevel": 7, + "Replacement": "EliteBarbarian", + "DurationH": 72, + "CooldownH": 72, + "Resource": "DarkElixir", + "ResourceCost": 25000, + "TrialNPC": "SUPER_BARB_INTRO_TH13" + }, + "SuperGoblin": { + "Original": "Goblin", + "MinOriginalLevel": 6, + "Replacement": "EliteGoblin", + "DurationH": 72, + "CooldownH": 72, + "Resource": "DarkElixir", + "ResourceCost": 25000, + "TrialNPC": "SUPER_GOBLIN_INTRO_TH13" + }, + "SuperGiant": { + "Original": "Giant", + "MinOriginalLevel": 8, + "Replacement": "EliteGiant", + "DurationH": 72, + "CooldownH": 72, + "Resource": "DarkElixir", + "ResourceCost": 25000, + "TrialNPC": "SUPER_GIANT_INTRO_TH13" + }, + "SuperWallbreaker": { + "Original": "Wall Breaker", + "MinOriginalLevel": 6, + "Replacement": "EliteWallBreaker", + "DurationH": 72, + "CooldownH": 72, + "Resource": "DarkElixir", + "ResourceCost": 25000, + "TrialNPC": "SUPER_WALLBREAKER_INTRO_TH13" + }, + "SuperArcher": { + "Original": "Archer", + "MinOriginalLevel": 7, + "Replacement": "EliteArcher", + "DurationH": 72, + "CooldownH": 72, + "Resource": "DarkElixir", + "ResourceCost": 25000, + "TrialNPC": "SUPER_ARCHER_INTRO_TH13" + }, + "SuperWitch": { + "Original": "Warlock", + "MinOriginalLevel": 4, + "Replacement": "Head Witch", + "DurationH": 72, + "CooldownH": 72, + "Resource": "DarkElixir", + "ResourceCost": 25000, + "TrialNPC": "SUPER_WITCH_INTRO_TH13" + }, + "InfernoDragon": { + "Original": "BabyDragon", + "MinOriginalLevel": 5, + "Replacement": "InfernoDragon", + "DurationH": 72, + "CooldownH": 72, + "Resource": "DarkElixir", + "ResourceCost": 25000, + "TrialNPC": "INFERNO_DRAGON_INTRO_TH13" + }, + "SuperValkyrie": { + "Original": "Warrior Girl", + "MinOriginalLevel": 6, + "Replacement": "EliteValkyrie", + "DurationH": 72, + "CooldownH": 72, + "Resource": "DarkElixir", + "ResourceCost": 25000, + "TrialNPC": "SUPER_VALKYRIE_INTRO_TH13" + }, + "SuperMinion": { + "Original": "Gargoyle", + "MinOriginalLevel": 7, + "Replacement": "Super Minion", + "DurationH": 72, + "CooldownH": 72, + "Resource": "DarkElixir", + "ResourceCost": 25000, + "TrialNPC": "SUPER_MINION_INTRO_TH13" + }, + "SuperWizard": { + "Original": "Wizard", + "MinOriginalLevel": 8, + "Replacement": "Super Wizard", + "DurationH": 72, + "CooldownH": 72, + "Resource": "DarkElixir", + "ResourceCost": 25000, + "TrialNPC": "SUPER_WIZARD_INTRO_TH13" + }, + "IceHound": { + "Original": "AirDefenceSeeker", + "MinOriginalLevel": 4, + "Replacement": "Ice Hound", + "DurationH": 72, + "CooldownH": 72, + "Resource": "DarkElixir", + "ResourceCost": 25000, + "TrialNPC": "SUPER_LAVAHOUND_INTRO_TH13" + }, + "SuperBalloon": { + "Original": "Balloon", + "MinOriginalLevel": 7, + "Replacement": "HastyBalloon", + "DurationH": 72, + "CooldownH": 72, + "Resource": "DarkElixir", + "ResourceCost": 25000, + "TrialNPC": "SUPER_BALLOON_INTRO_TH13" + }, + "SuperBowler": { + "Original": "Bowler", + "MinOriginalLevel": 3, + "Replacement": "Super Bowler", + "DurationH": 72, + "CooldownH": 72, + "Resource": "DarkElixir", + "ResourceCost": 25000, + "TrialNPC": "SUPER_BOWLER_INTRO_TH13" + }, + "SuperDragon": { + "Original": "Dragon", + "MinOriginalLevel": 6, + "Replacement": "Super Dragon", + "DurationH": 72, + "CooldownH": 72, + "Resource": "DarkElixir", + "ResourceCost": 25000, + "TrialNPC": "SUPER_DRAGON_INTRO_TH13" + }, + "SuperMiner": { + "Original": "Miner", + "MinOriginalLevel": 6, + "Replacement": "Super Miner", + "DurationH": 72, + "CooldownH": 72, + "Resource": "DarkElixir", + "ResourceCost": 25000, + "TrialNPC": "SUPER_MINER_INTRO" + }, + "SuperHogRider": { + "Original": "Boar Rider", + "MinOriginalLevel": 9, + "Replacement": "Super Hog Rider", + "DurationH": 72, + "CooldownH": 72, + "Resource": "DarkElixir", + "ResourceCost": 25000, + "TrialNPC": "SUPER_HOG_INTRO" + } } \ No newline at end of file diff --git a/assets/json/townhalls.json b/assets/json/townhalls.json index 5e18661a..74c14a05 100644 --- a/assets/json/townhalls.json +++ b/assets/json/townhalls.json @@ -1,898 +1,898 @@ -{ - "1": { - "AttackCost": 5, - "ResourceStorageLootPercentage": 20, - "DarkElixirStorageLootPercentage": 6, - "ResourceStorageLootCap": 200000, - "DarkElixirStorageLootCap": 2000, - "WarPrizeResourceCap": 1000, - "WarPrizeDarkElixirCap": 0, - "WarPrizeCommonOreCap": 0, - "WarPrizeRareOreCap": 0, - "WarPrizeEpicOreCap": 0, - "LegendPrizeGoldCap": 1000, - "LegendPrizeElixirCap": 1000, - "LegendPrizeDarkElixirCap": 0, - "WarPrizeAllianceExpCap": 1, - "CartLootCapResource": 200000, - "CartLootReengagementResource": 5000, - "CartLootCapDarkElixir": 0, - "CartLootReengagementDarkElixir": 0, - "ReengagementBuildingBudget": 0, - "ReengagementHeroBudget": 0, - "ReengagementWallBudget": 0, - "ReengagementLabBudget": 0, - "HeroBoostHours": 0, - "PowerBoostHours": 0, - "ResourceProductionBoostHours": 0, - "StarBonusBoostHours": 0, - "Troop Housing": 1, - "Elixir Storage": 1, - "Gold Storage": 1, - "Elixir Pump": 1, - "Gold Mine": 1, - "Barrack": 1, - "Cannon": 1, - "Cannon_gearup": 1, - "Archer Tower_gearup": 1, - "Mortar_gearup": 1, - "Alliance Castle": 1, - "Worker Building": 5, - "StrengthMaxTroopTypes": 6, - "StrengthMaxSpellTypes": 6, - "StrengthMaxSiegeTypes": 0, - "TreasuryGold": 0, - "TreasuryElixir": 0, - "TreasuryDarkElixir": 0, - "TreasuryWarGold": 50000, - "TreasuryWarElixir": 50000, - "TreasuryWarDarkElixir": 0, - "FriendlyCost": 0, - "PackElixir": 0, - "PackGold": 0, - "PackDarkElixir": 0, - "PackGold2": 0, - "PackElixir2": 0, - "DuelPrizeResourceCap": 4000, - "Elixir Pump2": 1, - "Gold Mine2": 1, - "WallStraight": 10, - "Cannon2": 1, - "Troop Housing2": 1, - "Laboratory2": 1, - "Barrack2": 1, - "AttackCostVillage2": 0, - "Builder6Home": 1, - "UnlockStage": 1, - "ElixirCartStorageCap": 17500 - }, - "2": { - "AttackCost": 10, - "ResourceStorageLootPercentage": 20, - "DarkElixirStorageLootPercentage": 6, - "ResourceStorageLootCap": 200000, - "DarkElixirStorageLootCap": 2000, - "WarPrizeResourceCap": 2500, - "WarPrizeDarkElixirCap": 0, - "WarPrizeCommonOreCap": 0, - "WarPrizeRareOreCap": 0, - "WarPrizeEpicOreCap": 0, - "LegendPrizeGoldCap": 2500, - "LegendPrizeElixirCap": 2500, - "LegendPrizeDarkElixirCap": 0, - "WarPrizeAllianceExpCap": 1, - "CartLootCapResource": 200000, - "CartLootReengagementResource": 25000, - "CartLootCapDarkElixir": 0, - "CartLootReengagementDarkElixir": 0, - "ReengagementBuildingBudget": 691200, - "ReengagementHeroBudget": 0, - "ReengagementWallBudget": 345600, - "ReengagementLabBudget": 691200, - "HeroBoostHours": 0, - "PowerBoostHours": 0, - "ResourceProductionBoostHours": 0, - "StarBonusBoostHours": 0, - "Elixir Pump": 2, - "Gold Mine": 2, - "Cannon": 2, - "Wall": 25, - "Archer Tower": 1, - "StrengthMaxTroopTypes": 6, - "StrengthMaxSpellTypes": 6, - "StrengthMaxSiegeTypes": 0, - "TreasuryWarGold": 200000, - "TreasuryWarElixir": 200000, - "TreasuryWarDarkElixir": 0, - "FriendlyCost": 0, - "PackElixir": 0, - "PackGold": 0, - "PackDarkElixir": 0, - "PackGold2": 0, - "PackElixir2": 0, - "DuelPrizeResourceCap": 16000, - "WallStraight": 20, - "Archer Tower2": 1, - "Troop Housing2": 2, - "Double Cannon": 1, - "Pusher": 1, - "AttackCostVillage2": 0, - "ElixirCartStorageCap": 37500 - }, - "3": { - "AttackCost": 50, - "ResourceStorageLootPercentage": 20, - "DarkElixirStorageLootPercentage": 6, - "ResourceStorageLootCap": 200000, - "DarkElixirStorageLootCap": 2000, - "WarPrizeResourceCap": 6250, - "WarPrizeDarkElixirCap": 0, - "WarPrizeCommonOreCap": 0, - "WarPrizeRareOreCap": 0, - "WarPrizeEpicOreCap": 0, - "LegendPrizeGoldCap": 6250, - "LegendPrizeElixirCap": 6250, - "LegendPrizeDarkElixirCap": 0, - "WarPrizeAllianceExpCap": 1, - "CartLootCapResource": 200000, - "CartLootReengagementResource": 150000, - "CartLootCapDarkElixir": 0, - "CartLootReengagementDarkElixir": 0, - "ReengagementBuildingBudget": 3369600, - "ReengagementHeroBudget": 0, - "ReengagementWallBudget": 1684800, - "ReengagementLabBudget": 3369600, - "HeroBoostHours": 0, - "PowerBoostHours": 0, - "ResourceProductionBoostHours": 0, - "StarBonusBoostHours": 0, - "Troop Housing": 2, - "Elixir Storage": 2, - "Gold Storage": 2, - "Elixir Pump": 3, - "Gold Mine": 3, - "Wall": 50, - "Mortar": 1, - "Mine": 2, - "Laboratory": 1, - "StrengthMaxTroopTypes": 6, - "StrengthMaxSpellTypes": 6, - "StrengthMaxSiegeTypes": 0, - "TreasuryWarGold": 400000, - "TreasuryWarElixir": 400000, - "TreasuryWarDarkElixir": 0, - "FriendlyCost": 0, - "PackElixir": 0, - "PackGold": 0, - "PackDarkElixir": 0, - "PackGold2": 0, - "PackElixir2": 0, - "DuelPrizeResourceCap": 40000, - "Elixir Storage2": 1, - "Gold Storage2": 1, - "WallStraight": 50, - "Cannon2": 2, - "Troop Housing2": 3, - "Tesla Tower2": 1, - "Pusher": 2, - "Air Defense Mini": 1, - "Crusher": 1, - "AirGroundTrap": 2, - "AttackCostVillage2": 0, - "Gem Mine": 1, - "Ejector2": 2, - "ElixirCartStorageCap": 62500 - }, - "4": { - "AttackCost": 100, - "ResourceStorageLootPercentage": 20, - "DarkElixirStorageLootPercentage": 6, - "ResourceStorageLootCap": 200000, - "DarkElixirStorageLootCap": 2000, - "WarPrizeResourceCap": 12500, - "WarPrizeDarkElixirCap": 0, - "WarPrizeCommonOreCap": 0, - "WarPrizeRareOreCap": 0, - "WarPrizeEpicOreCap": 0, - "LegendPrizeGoldCap": 12500, - "LegendPrizeElixirCap": 12500, - "LegendPrizeDarkElixirCap": 0, - "WarPrizeAllianceExpCap": 2, - "CartLootCapResource": 200000, - "CartLootReengagementResource": 1000000, - "CartLootCapDarkElixir": 0, - "CartLootReengagementDarkElixir": 0, - "ReengagementBuildingBudget": 6566400, - "ReengagementHeroBudget": 0, - "ReengagementWallBudget": 3283200, - "ReengagementLabBudget": 6566400, - "HeroBoostHours": 0, - "PowerBoostHours": 72, - "ResourceProductionBoostHours": 72, - "StarBonusBoostHours": 72, - "Elixir Pump": 4, - "Gold Mine": 4, - "Wall": 75, - "Archer Tower": 2, - "Air Defense": 1, - "Ejector": 2, - "StrengthMaxTroopTypes": 6, - "StrengthMaxSpellTypes": 6, - "StrengthMaxSiegeTypes": 0, - "TreasuryWarGold": 600000, - "TreasuryWarElixir": 600000, - "TreasuryWarDarkElixir": 0, - "FriendlyCost": 0, - "PackElixir": 100000, - "PackGold": 100000, - "PackDarkElixir": 0, - "PackGold2": 100000, - "PackElixir2": 100000, - "DuelPrizeResourceCap": 80000, - "WallStraight": 75, - "Archer Tower2": 2, - "Troop Housing2": 4, - "Clock Tower": 1, - "Guard Post": 1, - "Pusher": 3, - "AirGroundTrap": 3, - "Air Defense2": 1, - "MegaAirGroundTrap": 1, - "AttackCostVillage2": 0, - "ShrinkTrap": 1, - "ElixirCartStorageCap": 87500 - }, - "5": { - "AttackCost": 150, - "ResourceStorageLootPercentage": 20, - "DarkElixirStorageLootPercentage": 6, - "ResourceStorageLootCap": 200000, - "DarkElixirStorageLootCap": 2000, - "WarPrizeResourceCap": 20000, - "WarPrizeDarkElixirCap": 0, - "WarPrizeCommonOreCap": 0, - "WarPrizeRareOreCap": 0, - "WarPrizeEpicOreCap": 0, - "LegendPrizeGoldCap": 20000, - "LegendPrizeElixirCap": 20000, - "LegendPrizeDarkElixirCap": 0, - "WarPrizeAllianceExpCap": 2, - "CartLootCapResource": 600000, - "CartLootReengagementResource": 4000000, - "CartLootCapDarkElixir": 0, - "CartLootReengagementDarkElixir": 0, - "ReengagementBuildingBudget": 12096000, - "ReengagementHeroBudget": 0, - "ReengagementWallBudget": 6048000, - "ReengagementLabBudget": 12096000, - "HeroBoostHours": 0, - "PowerBoostHours": 72, - "ResourceProductionBoostHours": 72, - "StarBonusBoostHours": 72, - "Troop Housing": 3, - "Elixir Pump": 5, - "Gold Mine": 5, - "Cannon": 3, - "Wall": 100, - "Archer Tower": 3, - "Wizard Tower": 1, - "Mine": 4, - "Spell Forge": 1, - "AirTrap": 2, - "StrengthMaxTroopTypes": 6, - "StrengthMaxSpellTypes": 6, - "StrengthMaxSiegeTypes": 0, - "TreasuryWarGold": 800000, - "TreasuryWarElixir": 800000, - "TreasuryWarDarkElixir": 0, - "FriendlyCost": 0, - "PackElixir": 300000, - "PackGold": 300000, - "PackDarkElixir": 0, - "PackGold2": 300000, - "PackElixir2": 300000, - "FreezeBomb": 1, - "DuelPrizeResourceCap": 120000, - "WallStraight": 100, - "Double Cannon": 2, - "Multi Mortar": 1, - "Pusher": 4, - "Hero Altar Warmachine": 1, - "Air Defense Mini": 2, - "AirGroundTrap": 4, - "AttackCostVillage2": 0, - "Ejector2": 3, - "ElixirCartStorageCap": 150000 - }, - "6": { - "AttackCost": 250, - "ResourceStorageLootPercentage": 20, - "DarkElixirStorageLootPercentage": 6, - "ResourceStorageLootCap": 200000, - "DarkElixirStorageLootCap": 2000, - "WarPrizeResourceCap": 30000, - "WarPrizeDarkElixirCap": 0, - "WarPrizeCommonOreCap": 100, - "WarPrizeRareOreCap": 0, - "WarPrizeEpicOreCap": 0, - "LegendPrizeGoldCap": 30000, - "LegendPrizeElixirCap": 30000, - "LegendPrizeDarkElixirCap": 0, - "WarPrizeAllianceExpCap": 2, - "CartLootCapResource": 1000000, - "CartLootReengagementResource": 6000000, - "CartLootCapDarkElixir": 0, - "CartLootReengagementDarkElixir": 0, - "ReengagementBuildingBudget": 14515200, - "ReengagementHeroBudget": 0, - "ReengagementWallBudget": 7258600, - "ReengagementLabBudget": 14515200, - "HeroBoostHours": 0, - "PowerBoostHours": 72, - "ResourceProductionBoostHours": 72, - "StarBonusBoostHours": 72, - "Elixir Pump": 6, - "Gold Mine": 6, - "Wall": 125, - "Wizard Tower": 2, - "Air Defense": 2, - "Mortar": 2, - "Ejector": 4, - "Superbomb": 1, - "StrengthMaxTroopTypes": 6, - "StrengthMaxSpellTypes": 6, - "StrengthMaxSiegeTypes": 0, - "Air Blaster": 1, - "TreasuryWarGold": 1200000, - "TreasuryWarElixir": 1200000, - "TreasuryWarDarkElixir": 0, - "FriendlyCost": 0, - "PackElixir": 500000, - "PackGold": 500000, - "PackDarkElixir": 0, - "PackGold2": 500000, - "PackElixir2": 500000, - "DuelPrizeResourceCap": 180000, - "Elixir Pump2": 2, - "Elixir Storage2": 2, - "Gold Mine2": 2, - "Gold Storage2": 2, - "WallStraight": 120, - "Archer Tower2": 3, - "Troop Housing2": 5, - "Tesla Tower2": 2, - "Crusher": 2, - "AirGroundTrap": 5, - "MegaAirGroundTrap": 2, - "AttackCostVillage2": 0, - "Flamer": 1, - "UnlockStage": 2, - "Reinforcement Camp": 1, - "Recovery Building": 1, - "ElixirCartStorageCap": 200000 - }, - "7": { - "AttackCost": 350, - "ResourceStorageLootPercentage": 18, - "DarkElixirStorageLootPercentage": 6, - "ResourceStorageLootCap": 250000, - "DarkElixirStorageLootCap": 2000, - "WarPrizeResourceCap": 40000, - "WarPrizeDarkElixirCap": 125, - "WarPrizeCommonOreCap": 150, - "WarPrizeRareOreCap": 10, - "WarPrizeEpicOreCap": 0, - "LegendPrizeGoldCap": 50000, - "LegendPrizeElixirCap": 50000, - "LegendPrizeDarkElixirCap": 125, - "WarPrizeAllianceExpCap": 3, - "CartLootCapResource": 1400000, - "CartLootReengagementResource": 8000000, - "CartLootCapDarkElixir": 2800, - "CartLootReengagementDarkElixir": 80000, - "ReengagementBuildingBudget": 18144000, - "ReengagementHeroBudget": 4860000, - "ReengagementWallBudget": 9072000, - "ReengagementLabBudget": 18144000, - "HeroBoostHours": 0, - "PowerBoostHours": 96, - "ResourceProductionBoostHours": 96, - "StarBonusBoostHours": 96, - "Troop Housing": 4, - "Cannon": 5, - "Wall": 175, - "Archer Tower": 4, - "Air Defense": 3, - "Mortar": 3, - "Superbomb": 2, - "Mine": 6, - "Tesla Tower": 2, - "Hero Altar Barbarian King": 1, - "Dark Elixir Pump": 1, - "Dark Elixir Storage": 1, - "MegaAirTrap": 1, - "Dark Elixir Barrack": 1, - "StrengthMaxTroopTypes": 6, - "StrengthMaxSpellTypes": 6, - "StrengthMaxSiegeTypes": 0, - "TreasuryWarGold": 1600000, - "TreasuryWarElixir": 1600000, - "TreasuryWarDarkElixir": 8000, - "FriendlyCost": 0, - "PackElixir": 700000, - "PackGold": 700000, - "PackDarkElixir": 7000, - "PackGold2": 700000, - "PackElixir2": 700000, - "DuelPrizeResourceCap": 240000, - "WallStraight": 140, - "Cannon2": 3, - "Troop Housing2": 6, - "Tesla Tower2": 3, - "Pusher": 5, - "Air Defense Mini": 3, - "AttackCostVillage2": 0, - "Ejector2": 4, - "Giant Cannon": 1, - "ElixirCartStorageCap": 250000 - }, - "8": { - "AttackCost": 550, - "ResourceStorageLootPercentage": 16, - "DarkElixirStorageLootPercentage": 6, - "ResourceStorageLootCap": 300000, - "DarkElixirStorageLootCap": 2000, - "WarPrizeResourceCap": 55000, - "WarPrizeDarkElixirCap": 200, - "WarPrizeCommonOreCap": 380, - "WarPrizeRareOreCap": 15, - "WarPrizeEpicOreCap": 0, - "LegendPrizeGoldCap": 100000, - "LegendPrizeElixirCap": 100000, - "LegendPrizeDarkElixirCap": 200, - "WarPrizeAllianceExpCap": 4, - "CartLootCapResource": 1600000, - "CartLootReengagementResource": 10000000, - "CartLootCapDarkElixir": 3200, - "CartLootReengagementDarkElixir": 100000, - "ReengagementBuildingBudget": 21772800, - "ReengagementHeroBudget": 9720000, - "ReengagementWallBudget": 10886400, - "ReengagementLabBudget": 21772800, - "HeroBoostHours": 96, - "PowerBoostHours": 96, - "ResourceProductionBoostHours": 96, - "StarBonusBoostHours": 96, - "Elixir Storage": 3, - "Gold Storage": 3, - "Wall": 225, - "Archer Tower": 5, - "Wizard Tower": 3, - "Mortar": 4, - "Ejector": 6, - "Superbomb": 3, - "Tesla Tower": 3, - "Mini Spell Factory": 1, - "Dark Elixir Pump": 2, - "AirTrap": 4, - "MegaAirTrap": 2, - "StrengthMaxTroopTypes": 6, - "StrengthMaxSpellTypes": 7, - "StrengthMaxSiegeTypes": 0, - "Halloweenskels": 2, - "Bomb Tower": 1, - "TreasuryWarGold": 2000000, - "TreasuryWarElixir": 2000000, - "TreasuryWarDarkElixir": 10000, - "FriendlyCost": 0, - "PackElixir": 800000, - "PackGold": 800000, - "PackDarkElixir": 8000, - "PackGold2": 800000, - "PackElixir2": 800000, - "DuelPrizeResourceCap": 300000, - "Elixir Pump2": 3, - "Gold Mine2": 3, - "WallStraight": 160, - "Double Cannon": 3, - "Mega Tesla": 1, - "Air Defense Mini": 4, - "MegaAirGroundTrap": 3, - "AttackCostVillage2": 0, - "Ejector2": 5, - "Battle Copter Altar": 1, - "ElixirCartStorageCap": 300000, - "Smithy": 1 - }, - "9": { - "AttackCost": 750, - "ResourceStorageLootPercentage": 14, - "DarkElixirStorageLootPercentage": 5, - "ResourceStorageLootCap": 350000, - "DarkElixirStorageLootCap": 2500, - "WarPrizeResourceCap": 70000, - "WarPrizeDarkElixirCap": 333, - "WarPrizeCommonOreCap": 410, - "WarPrizeRareOreCap": 18, - "WarPrizeEpicOreCap": 0, - "LegendPrizeGoldCap": 150000, - "LegendPrizeElixirCap": 150000, - "LegendPrizeDarkElixirCap": 500, - "WarPrizeAllianceExpCap": 5, - "CartLootCapResource": 1800000, - "CartLootReengagementResource": 11500000, - "CartLootCapDarkElixir": 3600, - "CartLootReengagementDarkElixir": 115000, - "ReengagementBuildingBudget": 25401600, - "ReengagementHeroBudget": 32400000, - "ReengagementWallBudget": 12700800, - "ReengagementLabBudget": 25401600, - "HeroBoostHours": 96, - "PowerBoostHours": 96, - "ResourceProductionBoostHours": 96, - "StarBonusBoostHours": 96, - "Elixir Storage": 4, - "Gold Storage": 4, - "Elixir Pump": 7, - "Gold Mine": 7, - "Wall": 250, - "Archer Tower": 6, - "Wizard Tower": 4, - "Air Defense": 4, - "Superbomb": 4, - "Tesla Tower": 4, - "Bow": 2, - "Dark Elixir Pump": 3, - "Hero Altar Archer Queen": 1, - "MegaAirTrap": 4, - "StrengthMaxTroopTypes": 7, - "StrengthMaxSpellTypes": 7, - "StrengthMaxSiegeTypes": 0, - "Totem": 1, - "Halloweenskels": 2, - "Air Blaster": 2, - "TreasuryWarGold": 2400000, - "TreasuryWarElixir": 2400000, - "TreasuryWarDarkElixir": 12000, - "FriendlyCost": 0, - "PackElixir": 900000, - "PackGold": 900000, - "PackDarkElixir": 9000, - "PackGold2": 900000, - "PackElixir2": 900000, - "DuelPrizeResourceCap": 360000, - "WallStraight": 180, - "Air Defense Mini": 5, - "MegaAirGroundTrap": 4, - "AttackCostVillage2": 0, - "Ejector2": 6, - "LavaLauncher": 1, - "Builder6Unlock": 1, - "Reinforcement Camp": 2, - "ElixirCartStorageCap": 350000 - }, - "10": { - "AttackCost": 900, - "ResourceStorageLootPercentage": 12, - "DarkElixirStorageLootPercentage": 4, - "ResourceStorageLootCap": 400000, - "DarkElixirStorageLootCap": 3000, - "WarPrizeResourceCap": 90000, - "WarPrizeDarkElixirCap": 500, - "WarPrizeCommonOreCap": 460, - "WarPrizeRareOreCap": 21, - "WarPrizeEpicOreCap": 3, - "LegendPrizeGoldCap": 250000, - "LegendPrizeElixirCap": 250000, - "LegendPrizeDarkElixirCap": 1200, - "WarPrizeAllianceExpCap": 7, - "CartLootCapResource": 2000000, - "CartLootReengagementResource": 13000000, - "CartLootCapDarkElixir": 4000, - "CartLootReengagementDarkElixir": 130000, - "ReengagementBuildingBudget": 29635200, - "ReengagementHeroBudget": 38880000, - "ReengagementWallBudget": 14817600, - "ReengagementLabBudget": 29635200, - "HeroBoostHours": 120, - "PowerBoostHours": 120, - "ResourceProductionBoostHours": 120, - "StarBonusBoostHours": 120, - "Cannon": 6, - "Wall": 275, - "Archer Tower": 7, - "Superbomb": 5, - "Bow": 3, - "AirTrap": 5, - "MegaAirTrap": 5, - "Dark Tower": 2, - "StrengthMaxTroopTypes": 8, - "StrengthMaxSpellTypes": 8, - "StrengthMaxSiegeTypes": 0, - "Totem": 2, - "Halloweenskels": 3, - "Bomb Tower": 2, - "TreasuryWarGold": 2800000, - "TreasuryWarElixir": 2800000, - "TreasuryWarDarkElixir": 14000, - "FriendlyCost": 0, - "PackElixir": 1000000, - "PackGold": 1000000, - "PackDarkElixir": 10000, - "PackGold2": 1000000, - "PackElixir2": 1000000, - "DuelPrizeResourceCap": 420000, - "AirGroundTrap": 6, - "Xbow_BB": 1, - "ElixirCartStorageCap": 400000 - }, - "11": { - "AttackCost": 1000, - "ResourceStorageLootPercentage": 10, - "DarkElixirStorageLootPercentage": 4, - "ResourceStorageLootCap": 450000, - "DarkElixirStorageLootCap": 3500, - "WarPrizeResourceCap": 110000, - "WarPrizeDarkElixirCap": 600, - "WarPrizeCommonOreCap": 560, - "WarPrizeRareOreCap": 24, - "WarPrizeEpicOreCap": 3, - "LegendPrizeGoldCap": 350000, - "LegendPrizeElixirCap": 350000, - "LegendPrizeDarkElixirCap": 3250, - "WarPrizeAllianceExpCap": 9, - "CartLootCapResource": 2200000, - "CartLootReengagementResource": 14000000, - "CartLootCapDarkElixir": 4400, - "CartLootReengagementDarkElixir": 140000, - "ReengagementBuildingBudget": 33868800, - "ReengagementHeroBudget": 45360000, - "ReengagementWallBudget": 16934400, - "ReengagementLabBudget": 33868800, - "HeroBoostHours": 120, - "PowerBoostHours": 120, - "ResourceProductionBoostHours": 120, - "StarBonusBoostHours": 120, - "Cannon": 7, - "Wall": 300, - "Archer Tower": 8, - "Wizard Tower": 5, - "Bow": 4, - "StrengthMaxTroopTypes": 10, - "StrengthMaxSpellTypes": 8, - "StrengthMaxSiegeTypes": 0, - "Hero Altar Grand Warden": 1, - "Ancient Artillery": 1, - "TreasuryWarGold": 3200000, - "TreasuryWarElixir": 3200000, - "TreasuryWarDarkElixir": 16000, - "FriendlyCost": 0, - "PackElixir": 1000000, - "PackGold": 1000000, - "PackDarkElixir": 10000, - "TornadoTrap": 1, - "ElixirCartStorageCap": 9999990 - }, - "12": { - "AttackCost": 1100, - "ResourceStorageLootPercentage": 10, - "DarkElixirStorageLootPercentage": 4, - "ResourceStorageLootCap": 500000, - "DarkElixirStorageLootCap": 4000, - "WarPrizeResourceCap": 120000, - "WarPrizeDarkElixirCap": 650, - "WarPrizeCommonOreCap": 610, - "WarPrizeRareOreCap": 27, - "WarPrizeEpicOreCap": 4, - "LegendPrizeGoldCap": 450000, - "LegendPrizeElixirCap": 450000, - "LegendPrizeDarkElixirCap": 6500, - "WarPrizeAllianceExpCap": 10, - "CartLootCapResource": 2400000, - "CartLootReengagementResource": 15000000, - "CartLootCapDarkElixir": 4800, - "CartLootReengagementDarkElixir": 150000, - "ReengagementBuildingBudget": 36720000, - "ReengagementHeroBudget": 50000000, - "ReengagementWallBudget": 18360000, - "ReengagementLabBudget": 36720000, - "HeroBoostHours": 120, - "PowerBoostHours": 120, - "ResourceProductionBoostHours": 120, - "StarBonusBoostHours": 120, - "Wall": 300, - "Ejector": 8, - "Superbomb": 6, - "Tesla Tower": 5, - "AirTrap": 6, - "MegaAirTrap": 6, - "Dark Tower": 3, - "StrengthMaxTroopTypes": 12, - "StrengthMaxSpellTypes": 8, - "StrengthMaxSiegeTypes": 3, - "TreasuryWarGold": 3600000, - "TreasuryWarElixir": 3600000, - "TreasuryWarDarkElixir": 18000, - "FriendlyCost": 0, - "PackElixir": 1000000, - "PackGold": 1000000, - "PackDarkElixir": 10000, - "SiegeWorkshop": 1, - "ElixirCartStorageCap": 9999991 - }, - "13": { - "AttackCost": 1200, - "ResourceStorageLootPercentage": 10, - "DarkElixirStorageLootPercentage": 4, - "ResourceStorageLootCap": 550000, - "DarkElixirStorageLootCap": 4500, - "WarPrizeResourceCap": 130000, - "WarPrizeDarkElixirCap": 700, - "WarPrizeCommonOreCap": 710, - "WarPrizeRareOreCap": 30, - "WarPrizeEpicOreCap": 4, - "LegendPrizeGoldCap": 500000, - "LegendPrizeElixirCap": 500000, - "LegendPrizeDarkElixirCap": 7000, - "WarPrizeAllianceExpCap": 11, - "CartLootCapResource": 2600000, - "CartLootReengagementResource": 16000000, - "CartLootCapDarkElixir": 5200, - "CartLootReengagementDarkElixir": 160000, - "ReengagementBuildingBudget": 41040000, - "ReengagementHeroBudget": 55000000, - "ReengagementWallBudget": 20520000, - "ReengagementLabBudget": 41040000, - "HeroBoostHours": 120, - "PowerBoostHours": 120, - "ResourceProductionBoostHours": 120, - "StarBonusBoostHours": 120, - "Wall": 300, - "Ejector": 9, - "Mine": 7, - "MegaAirTrap": 7, - "StrengthMaxTroopTypes": 12, - "StrengthMaxSpellTypes": 8, - "StrengthMaxSiegeTypes": 3, - "TreasuryWarGold": 4000000, - "TreasuryWarElixir": 4000000, - "TreasuryWarDarkElixir": 20000, - "FriendlyCost": 0, - "PackElixir": 1000000, - "PackGold": 1000000, - "PackDarkElixir": 10000, - "Hero Altar Royal Champion": 1, - "Scattershot": 2, - "ElixirCartStorageCap": 9999992 - }, - "14": { - "AttackCost": 1300, - "ResourceStorageLootPercentage": 10, - "DarkElixirStorageLootPercentage": 4, - "ResourceStorageLootCap": 600000, - "DarkElixirStorageLootCap": 5000, - "WarPrizeResourceCap": 140000, - "WarPrizeDarkElixirCap": 750, - "WarPrizeCommonOreCap": 810, - "WarPrizeRareOreCap": 33, - "WarPrizeEpicOreCap": 5, - "LegendPrizeGoldCap": 550000, - "LegendPrizeElixirCap": 550000, - "LegendPrizeDarkElixirCap": 7000, - "WarPrizeAllianceExpCap": 12, - "CartLootCapResource": 2800000, - "CartLootReengagementResource": 17000000, - "CartLootCapDarkElixir": 5600, - "CartLootReengagementDarkElixir": 170000, - "ReengagementBuildingBudget": 41040000, - "ReengagementHeroBudget": 55000000, - "ReengagementWallBudget": 20520000, - "ReengagementLabBudget": 41040000, - "HeroBoostHours": 120, - "PowerBoostHours": 120, - "ResourceProductionBoostHours": 120, - "StarBonusBoostHours": 120, - "Wall": 325, - "Superbomb": 7, - "Mine": 8, - "AirTrap": 7, - "MegaAirTrap": 8, - "StrengthMaxTroopTypes": 12, - "StrengthMaxSpellTypes": 8, - "StrengthMaxSiegeTypes": 3, - "Halloweenskels": 4, - "TreasuryWarGold": 4400000, - "TreasuryWarElixir": 4400000, - "TreasuryWarDarkElixir": 22000, - "FriendlyCost": 0, - "PackElixir": 1000000, - "PackGold": 1000000, - "PackDarkElixir": 10000, - "Pet Shop": 1, - "ElixirCartStorageCap": 9999993 - }, - "15": { - "AttackCost": 1400, - "ResourceStorageLootPercentage": 10, - "DarkElixirStorageLootPercentage": 4, - "ResourceStorageLootCap": 650000, - "DarkElixirStorageLootCap": 5500, - "WarPrizeResourceCap": 150000, - "WarPrizeDarkElixirCap": 800, - "WarPrizeCommonOreCap": 960, - "WarPrizeRareOreCap": 36, - "WarPrizeEpicOreCap": 5, - "LegendPrizeGoldCap": 600000, - "LegendPrizeElixirCap": 600000, - "LegendPrizeDarkElixirCap": 7000, - "WarPrizeAllianceExpCap": 13, - "CartLootCapResource": 3000000, - "CartLootReengagementResource": 18000000, - "CartLootCapDarkElixir": 6000, - "CartLootReengagementDarkElixir": 180000, - "ReengagementBuildingBudget": 41040000, - "ReengagementHeroBudget": 55000000, - "ReengagementWallBudget": 20520000, - "ReengagementLabBudget": 41040000, - "HeroBoostHours": 120, - "PowerBoostHours": 120, - "ResourceProductionBoostHours": 120, - "StarBonusBoostHours": 120, - "Wall": 325, - "StrengthMaxTroopTypes": 12, - "StrengthMaxSpellTypes": 8, - "StrengthMaxSiegeTypes": 3, - "TreasuryWarGold": 4800000, - "TreasuryWarElixir": 4800000, - "TreasuryWarDarkElixir": 24000, - "FriendlyCost": 0, - "PackElixir": 1000000, - "PackGold": 1000000, - "PackDarkElixir": 10000, - "Spell Tower": 2, - "Monolith": 1, - "ElixirCartStorageCap": 9999994 - }, - "16": { - "AttackCost": 1500, - "ResourceStorageLootPercentage": 10, - "DarkElixirStorageLootPercentage": 4, - "ResourceStorageLootCap": 700000, - "DarkElixirStorageLootCap": 6000, - "WarPrizeResourceCap": 160000, - "WarPrizeDarkElixirCap": 850, - "WarPrizeCommonOreCap": 1110, - "WarPrizeRareOreCap": 39, - "WarPrizeEpicOreCap": 6, - "LegendPrizeGoldCap": 650000, - "LegendPrizeElixirCap": 650000, - "LegendPrizeDarkElixirCap": 7000, - "WarPrizeAllianceExpCap": 14, - "CartLootCapResource": 3200000, - "CartLootReengagementResource": 19000000, - "CartLootCapDarkElixir": 6400, - "CartLootReengagementDarkElixir": 190000, - "ReengagementBuildingBudget": 41040000, - "ReengagementHeroBudget": 55000000, - "ReengagementWallBudget": 20520000, - "ReengagementLabBudget": 41040000, - "HeroBoostHours": 120, - "PowerBoostHours": 120, - "ResourceProductionBoostHours": 120, - "StarBonusBoostHours": 120, - "Wall": 325, - "StrengthMaxTroopTypes": 13, - "StrengthMaxSpellTypes": 9, - "StrengthMaxSiegeTypes": 3, - "TreasuryWarGold": 5200000, - "TreasuryWarElixir": 5200000, - "TreasuryWarDarkElixir": 26000, - "FriendlyCost": 0, - "PackElixir": 1000000, - "PackGold": 1000000, - "PackDarkElixir": 10000, - "ElixirCartStorageCap": 9999995, - "Merged Archer Tower": 2, - "Merged Cannon": 2 - } +{ + "1": { + "AttackCost": 5, + "ResourceStorageLootPercentage": 20, + "DarkElixirStorageLootPercentage": 6, + "ResourceStorageLootCap": 200000, + "DarkElixirStorageLootCap": 2000, + "WarPrizeResourceCap": 1000, + "WarPrizeDarkElixirCap": 0, + "WarPrizeCommonOreCap": 0, + "WarPrizeRareOreCap": 0, + "WarPrizeEpicOreCap": 0, + "LegendPrizeGoldCap": 1000, + "LegendPrizeElixirCap": 1000, + "LegendPrizeDarkElixirCap": 0, + "WarPrizeAllianceExpCap": 1, + "CartLootCapResource": 200000, + "CartLootReengagementResource": 5000, + "CartLootCapDarkElixir": 0, + "CartLootReengagementDarkElixir": 0, + "ReengagementBuildingBudget": 0, + "ReengagementHeroBudget": 0, + "ReengagementWallBudget": 0, + "ReengagementLabBudget": 0, + "HeroBoostHours": 0, + "PowerBoostHours": 0, + "ResourceProductionBoostHours": 0, + "StarBonusBoostHours": 0, + "Troop Housing": 1, + "Elixir Storage": 1, + "Gold Storage": 1, + "Elixir Pump": 1, + "Gold Mine": 1, + "Barrack": 1, + "Cannon": 1, + "Cannon_gearup": 1, + "Archer Tower_gearup": 1, + "Mortar_gearup": 1, + "Alliance Castle": 1, + "Worker Building": 5, + "StrengthMaxTroopTypes": 6, + "StrengthMaxSpellTypes": 6, + "StrengthMaxSiegeTypes": 0, + "TreasuryGold": 0, + "TreasuryElixir": 0, + "TreasuryDarkElixir": 0, + "TreasuryWarGold": 50000, + "TreasuryWarElixir": 50000, + "TreasuryWarDarkElixir": 0, + "FriendlyCost": 0, + "PackElixir": 0, + "PackGold": 0, + "PackDarkElixir": 0, + "PackGold2": 0, + "PackElixir2": 0, + "DuelPrizeResourceCap": 4000, + "Elixir Pump2": 1, + "Gold Mine2": 1, + "WallStraight": 10, + "Cannon2": 1, + "Troop Housing2": 1, + "Laboratory2": 1, + "Barrack2": 1, + "AttackCostVillage2": 0, + "Builder6Home": 1, + "UnlockStage": 1, + "ElixirCartStorageCap": 17500 + }, + "2": { + "AttackCost": 10, + "ResourceStorageLootPercentage": 20, + "DarkElixirStorageLootPercentage": 6, + "ResourceStorageLootCap": 200000, + "DarkElixirStorageLootCap": 2000, + "WarPrizeResourceCap": 2500, + "WarPrizeDarkElixirCap": 0, + "WarPrizeCommonOreCap": 0, + "WarPrizeRareOreCap": 0, + "WarPrizeEpicOreCap": 0, + "LegendPrizeGoldCap": 2500, + "LegendPrizeElixirCap": 2500, + "LegendPrizeDarkElixirCap": 0, + "WarPrizeAllianceExpCap": 1, + "CartLootCapResource": 200000, + "CartLootReengagementResource": 25000, + "CartLootCapDarkElixir": 0, + "CartLootReengagementDarkElixir": 0, + "ReengagementBuildingBudget": 691200, + "ReengagementHeroBudget": 0, + "ReengagementWallBudget": 345600, + "ReengagementLabBudget": 691200, + "HeroBoostHours": 0, + "PowerBoostHours": 0, + "ResourceProductionBoostHours": 0, + "StarBonusBoostHours": 0, + "Elixir Pump": 2, + "Gold Mine": 2, + "Cannon": 2, + "Wall": 25, + "Archer Tower": 1, + "StrengthMaxTroopTypes": 6, + "StrengthMaxSpellTypes": 6, + "StrengthMaxSiegeTypes": 0, + "TreasuryWarGold": 200000, + "TreasuryWarElixir": 200000, + "TreasuryWarDarkElixir": 0, + "FriendlyCost": 0, + "PackElixir": 0, + "PackGold": 0, + "PackDarkElixir": 0, + "PackGold2": 0, + "PackElixir2": 0, + "DuelPrizeResourceCap": 16000, + "WallStraight": 20, + "Archer Tower2": 1, + "Troop Housing2": 2, + "Double Cannon": 1, + "Pusher": 1, + "AttackCostVillage2": 0, + "ElixirCartStorageCap": 37500 + }, + "3": { + "AttackCost": 50, + "ResourceStorageLootPercentage": 20, + "DarkElixirStorageLootPercentage": 6, + "ResourceStorageLootCap": 200000, + "DarkElixirStorageLootCap": 2000, + "WarPrizeResourceCap": 6250, + "WarPrizeDarkElixirCap": 0, + "WarPrizeCommonOreCap": 0, + "WarPrizeRareOreCap": 0, + "WarPrizeEpicOreCap": 0, + "LegendPrizeGoldCap": 6250, + "LegendPrizeElixirCap": 6250, + "LegendPrizeDarkElixirCap": 0, + "WarPrizeAllianceExpCap": 1, + "CartLootCapResource": 200000, + "CartLootReengagementResource": 150000, + "CartLootCapDarkElixir": 0, + "CartLootReengagementDarkElixir": 0, + "ReengagementBuildingBudget": 3369600, + "ReengagementHeroBudget": 0, + "ReengagementWallBudget": 1684800, + "ReengagementLabBudget": 3369600, + "HeroBoostHours": 0, + "PowerBoostHours": 0, + "ResourceProductionBoostHours": 0, + "StarBonusBoostHours": 0, + "Troop Housing": 2, + "Elixir Storage": 2, + "Gold Storage": 2, + "Elixir Pump": 3, + "Gold Mine": 3, + "Wall": 50, + "Mortar": 1, + "Mine": 2, + "Laboratory": 1, + "StrengthMaxTroopTypes": 6, + "StrengthMaxSpellTypes": 6, + "StrengthMaxSiegeTypes": 0, + "TreasuryWarGold": 400000, + "TreasuryWarElixir": 400000, + "TreasuryWarDarkElixir": 0, + "FriendlyCost": 0, + "PackElixir": 0, + "PackGold": 0, + "PackDarkElixir": 0, + "PackGold2": 0, + "PackElixir2": 0, + "DuelPrizeResourceCap": 40000, + "Elixir Storage2": 1, + "Gold Storage2": 1, + "WallStraight": 50, + "Cannon2": 2, + "Troop Housing2": 3, + "Tesla Tower2": 1, + "Pusher": 2, + "Air Defense Mini": 1, + "Crusher": 1, + "AirGroundTrap": 2, + "AttackCostVillage2": 0, + "Gem Mine": 1, + "Ejector2": 2, + "ElixirCartStorageCap": 62500 + }, + "4": { + "AttackCost": 100, + "ResourceStorageLootPercentage": 20, + "DarkElixirStorageLootPercentage": 6, + "ResourceStorageLootCap": 200000, + "DarkElixirStorageLootCap": 2000, + "WarPrizeResourceCap": 12500, + "WarPrizeDarkElixirCap": 0, + "WarPrizeCommonOreCap": 0, + "WarPrizeRareOreCap": 0, + "WarPrizeEpicOreCap": 0, + "LegendPrizeGoldCap": 12500, + "LegendPrizeElixirCap": 12500, + "LegendPrizeDarkElixirCap": 0, + "WarPrizeAllianceExpCap": 2, + "CartLootCapResource": 200000, + "CartLootReengagementResource": 1000000, + "CartLootCapDarkElixir": 0, + "CartLootReengagementDarkElixir": 0, + "ReengagementBuildingBudget": 6566400, + "ReengagementHeroBudget": 0, + "ReengagementWallBudget": 3283200, + "ReengagementLabBudget": 6566400, + "HeroBoostHours": 0, + "PowerBoostHours": 72, + "ResourceProductionBoostHours": 72, + "StarBonusBoostHours": 72, + "Elixir Pump": 4, + "Gold Mine": 4, + "Wall": 75, + "Archer Tower": 2, + "Air Defense": 1, + "Ejector": 2, + "StrengthMaxTroopTypes": 6, + "StrengthMaxSpellTypes": 6, + "StrengthMaxSiegeTypes": 0, + "TreasuryWarGold": 600000, + "TreasuryWarElixir": 600000, + "TreasuryWarDarkElixir": 0, + "FriendlyCost": 0, + "PackElixir": 100000, + "PackGold": 100000, + "PackDarkElixir": 0, + "PackGold2": 100000, + "PackElixir2": 100000, + "DuelPrizeResourceCap": 80000, + "WallStraight": 75, + "Archer Tower2": 2, + "Troop Housing2": 4, + "Clock Tower": 1, + "Guard Post": 1, + "Pusher": 3, + "AirGroundTrap": 3, + "Air Defense2": 1, + "MegaAirGroundTrap": 1, + "AttackCostVillage2": 0, + "ShrinkTrap": 1, + "ElixirCartStorageCap": 87500 + }, + "5": { + "AttackCost": 150, + "ResourceStorageLootPercentage": 20, + "DarkElixirStorageLootPercentage": 6, + "ResourceStorageLootCap": 200000, + "DarkElixirStorageLootCap": 2000, + "WarPrizeResourceCap": 20000, + "WarPrizeDarkElixirCap": 0, + "WarPrizeCommonOreCap": 0, + "WarPrizeRareOreCap": 0, + "WarPrizeEpicOreCap": 0, + "LegendPrizeGoldCap": 20000, + "LegendPrizeElixirCap": 20000, + "LegendPrizeDarkElixirCap": 0, + "WarPrizeAllianceExpCap": 2, + "CartLootCapResource": 600000, + "CartLootReengagementResource": 4000000, + "CartLootCapDarkElixir": 0, + "CartLootReengagementDarkElixir": 0, + "ReengagementBuildingBudget": 12096000, + "ReengagementHeroBudget": 0, + "ReengagementWallBudget": 6048000, + "ReengagementLabBudget": 12096000, + "HeroBoostHours": 0, + "PowerBoostHours": 72, + "ResourceProductionBoostHours": 72, + "StarBonusBoostHours": 72, + "Troop Housing": 3, + "Elixir Pump": 5, + "Gold Mine": 5, + "Cannon": 3, + "Wall": 100, + "Archer Tower": 3, + "Wizard Tower": 1, + "Mine": 4, + "Spell Forge": 1, + "AirTrap": 2, + "StrengthMaxTroopTypes": 6, + "StrengthMaxSpellTypes": 6, + "StrengthMaxSiegeTypes": 0, + "TreasuryWarGold": 800000, + "TreasuryWarElixir": 800000, + "TreasuryWarDarkElixir": 0, + "FriendlyCost": 0, + "PackElixir": 300000, + "PackGold": 300000, + "PackDarkElixir": 0, + "PackGold2": 300000, + "PackElixir2": 300000, + "FreezeBomb": 1, + "DuelPrizeResourceCap": 120000, + "WallStraight": 100, + "Double Cannon": 2, + "Multi Mortar": 1, + "Pusher": 4, + "Hero Altar Warmachine": 1, + "Air Defense Mini": 2, + "AirGroundTrap": 4, + "AttackCostVillage2": 0, + "Ejector2": 3, + "ElixirCartStorageCap": 150000 + }, + "6": { + "AttackCost": 250, + "ResourceStorageLootPercentage": 20, + "DarkElixirStorageLootPercentage": 6, + "ResourceStorageLootCap": 200000, + "DarkElixirStorageLootCap": 2000, + "WarPrizeResourceCap": 30000, + "WarPrizeDarkElixirCap": 0, + "WarPrizeCommonOreCap": 100, + "WarPrizeRareOreCap": 0, + "WarPrizeEpicOreCap": 0, + "LegendPrizeGoldCap": 30000, + "LegendPrizeElixirCap": 30000, + "LegendPrizeDarkElixirCap": 0, + "WarPrizeAllianceExpCap": 2, + "CartLootCapResource": 1000000, + "CartLootReengagementResource": 6000000, + "CartLootCapDarkElixir": 0, + "CartLootReengagementDarkElixir": 0, + "ReengagementBuildingBudget": 14515200, + "ReengagementHeroBudget": 0, + "ReengagementWallBudget": 7258600, + "ReengagementLabBudget": 14515200, + "HeroBoostHours": 0, + "PowerBoostHours": 72, + "ResourceProductionBoostHours": 72, + "StarBonusBoostHours": 72, + "Elixir Pump": 6, + "Gold Mine": 6, + "Wall": 125, + "Wizard Tower": 2, + "Air Defense": 2, + "Mortar": 2, + "Ejector": 4, + "Superbomb": 1, + "StrengthMaxTroopTypes": 6, + "StrengthMaxSpellTypes": 6, + "StrengthMaxSiegeTypes": 0, + "Air Blaster": 1, + "TreasuryWarGold": 1200000, + "TreasuryWarElixir": 1200000, + "TreasuryWarDarkElixir": 0, + "FriendlyCost": 0, + "PackElixir": 500000, + "PackGold": 500000, + "PackDarkElixir": 0, + "PackGold2": 500000, + "PackElixir2": 500000, + "DuelPrizeResourceCap": 180000, + "Elixir Pump2": 2, + "Elixir Storage2": 2, + "Gold Mine2": 2, + "Gold Storage2": 2, + "WallStraight": 120, + "Archer Tower2": 3, + "Troop Housing2": 5, + "Tesla Tower2": 2, + "Crusher": 2, + "AirGroundTrap": 5, + "MegaAirGroundTrap": 2, + "AttackCostVillage2": 0, + "Flamer": 1, + "UnlockStage": 2, + "Reinforcement Camp": 1, + "Recovery Building": 1, + "ElixirCartStorageCap": 200000 + }, + "7": { + "AttackCost": 350, + "ResourceStorageLootPercentage": 18, + "DarkElixirStorageLootPercentage": 6, + "ResourceStorageLootCap": 250000, + "DarkElixirStorageLootCap": 2000, + "WarPrizeResourceCap": 40000, + "WarPrizeDarkElixirCap": 125, + "WarPrizeCommonOreCap": 150, + "WarPrizeRareOreCap": 10, + "WarPrizeEpicOreCap": 0, + "LegendPrizeGoldCap": 50000, + "LegendPrizeElixirCap": 50000, + "LegendPrizeDarkElixirCap": 125, + "WarPrizeAllianceExpCap": 3, + "CartLootCapResource": 1400000, + "CartLootReengagementResource": 8000000, + "CartLootCapDarkElixir": 2800, + "CartLootReengagementDarkElixir": 80000, + "ReengagementBuildingBudget": 18144000, + "ReengagementHeroBudget": 4860000, + "ReengagementWallBudget": 9072000, + "ReengagementLabBudget": 18144000, + "HeroBoostHours": 0, + "PowerBoostHours": 96, + "ResourceProductionBoostHours": 96, + "StarBonusBoostHours": 96, + "Troop Housing": 4, + "Cannon": 5, + "Wall": 175, + "Archer Tower": 4, + "Air Defense": 3, + "Mortar": 3, + "Superbomb": 2, + "Mine": 6, + "Tesla Tower": 2, + "Hero Altar Barbarian King": 1, + "Dark Elixir Pump": 1, + "Dark Elixir Storage": 1, + "MegaAirTrap": 1, + "Dark Elixir Barrack": 1, + "StrengthMaxTroopTypes": 6, + "StrengthMaxSpellTypes": 6, + "StrengthMaxSiegeTypes": 0, + "TreasuryWarGold": 1600000, + "TreasuryWarElixir": 1600000, + "TreasuryWarDarkElixir": 8000, + "FriendlyCost": 0, + "PackElixir": 700000, + "PackGold": 700000, + "PackDarkElixir": 7000, + "PackGold2": 700000, + "PackElixir2": 700000, + "DuelPrizeResourceCap": 240000, + "WallStraight": 140, + "Cannon2": 3, + "Troop Housing2": 6, + "Tesla Tower2": 3, + "Pusher": 5, + "Air Defense Mini": 3, + "AttackCostVillage2": 0, + "Ejector2": 4, + "Giant Cannon": 1, + "ElixirCartStorageCap": 250000 + }, + "8": { + "AttackCost": 550, + "ResourceStorageLootPercentage": 16, + "DarkElixirStorageLootPercentage": 6, + "ResourceStorageLootCap": 300000, + "DarkElixirStorageLootCap": 2000, + "WarPrizeResourceCap": 55000, + "WarPrizeDarkElixirCap": 200, + "WarPrizeCommonOreCap": 380, + "WarPrizeRareOreCap": 15, + "WarPrizeEpicOreCap": 0, + "LegendPrizeGoldCap": 100000, + "LegendPrizeElixirCap": 100000, + "LegendPrizeDarkElixirCap": 200, + "WarPrizeAllianceExpCap": 4, + "CartLootCapResource": 1600000, + "CartLootReengagementResource": 10000000, + "CartLootCapDarkElixir": 3200, + "CartLootReengagementDarkElixir": 100000, + "ReengagementBuildingBudget": 21772800, + "ReengagementHeroBudget": 9720000, + "ReengagementWallBudget": 10886400, + "ReengagementLabBudget": 21772800, + "HeroBoostHours": 96, + "PowerBoostHours": 96, + "ResourceProductionBoostHours": 96, + "StarBonusBoostHours": 96, + "Elixir Storage": 3, + "Gold Storage": 3, + "Wall": 225, + "Archer Tower": 5, + "Wizard Tower": 3, + "Mortar": 4, + "Ejector": 6, + "Superbomb": 3, + "Tesla Tower": 3, + "Mini Spell Factory": 1, + "Dark Elixir Pump": 2, + "AirTrap": 4, + "MegaAirTrap": 2, + "StrengthMaxTroopTypes": 6, + "StrengthMaxSpellTypes": 7, + "StrengthMaxSiegeTypes": 0, + "Halloweenskels": 2, + "Bomb Tower": 1, + "TreasuryWarGold": 2000000, + "TreasuryWarElixir": 2000000, + "TreasuryWarDarkElixir": 10000, + "FriendlyCost": 0, + "PackElixir": 800000, + "PackGold": 800000, + "PackDarkElixir": 8000, + "PackGold2": 800000, + "PackElixir2": 800000, + "DuelPrizeResourceCap": 300000, + "Elixir Pump2": 3, + "Gold Mine2": 3, + "WallStraight": 160, + "Double Cannon": 3, + "Mega Tesla": 1, + "Air Defense Mini": 4, + "MegaAirGroundTrap": 3, + "AttackCostVillage2": 0, + "Ejector2": 5, + "Battle Copter Altar": 1, + "ElixirCartStorageCap": 300000, + "Smithy": 1 + }, + "9": { + "AttackCost": 750, + "ResourceStorageLootPercentage": 14, + "DarkElixirStorageLootPercentage": 5, + "ResourceStorageLootCap": 350000, + "DarkElixirStorageLootCap": 2500, + "WarPrizeResourceCap": 70000, + "WarPrizeDarkElixirCap": 333, + "WarPrizeCommonOreCap": 410, + "WarPrizeRareOreCap": 18, + "WarPrizeEpicOreCap": 0, + "LegendPrizeGoldCap": 150000, + "LegendPrizeElixirCap": 150000, + "LegendPrizeDarkElixirCap": 500, + "WarPrizeAllianceExpCap": 5, + "CartLootCapResource": 1800000, + "CartLootReengagementResource": 11500000, + "CartLootCapDarkElixir": 3600, + "CartLootReengagementDarkElixir": 115000, + "ReengagementBuildingBudget": 25401600, + "ReengagementHeroBudget": 32400000, + "ReengagementWallBudget": 12700800, + "ReengagementLabBudget": 25401600, + "HeroBoostHours": 96, + "PowerBoostHours": 96, + "ResourceProductionBoostHours": 96, + "StarBonusBoostHours": 96, + "Elixir Storage": 4, + "Gold Storage": 4, + "Elixir Pump": 7, + "Gold Mine": 7, + "Wall": 250, + "Archer Tower": 6, + "Wizard Tower": 4, + "Air Defense": 4, + "Superbomb": 4, + "Tesla Tower": 4, + "Bow": 2, + "Dark Elixir Pump": 3, + "Hero Altar Archer Queen": 1, + "MegaAirTrap": 4, + "StrengthMaxTroopTypes": 7, + "StrengthMaxSpellTypes": 7, + "StrengthMaxSiegeTypes": 0, + "Totem": 1, + "Halloweenskels": 2, + "Air Blaster": 2, + "TreasuryWarGold": 2400000, + "TreasuryWarElixir": 2400000, + "TreasuryWarDarkElixir": 12000, + "FriendlyCost": 0, + "PackElixir": 900000, + "PackGold": 900000, + "PackDarkElixir": 9000, + "PackGold2": 900000, + "PackElixir2": 900000, + "DuelPrizeResourceCap": 360000, + "WallStraight": 180, + "Air Defense Mini": 5, + "MegaAirGroundTrap": 4, + "AttackCostVillage2": 0, + "Ejector2": 6, + "LavaLauncher": 1, + "Builder6Unlock": 1, + "Reinforcement Camp": 2, + "ElixirCartStorageCap": 350000 + }, + "10": { + "AttackCost": 900, + "ResourceStorageLootPercentage": 12, + "DarkElixirStorageLootPercentage": 4, + "ResourceStorageLootCap": 400000, + "DarkElixirStorageLootCap": 3000, + "WarPrizeResourceCap": 90000, + "WarPrizeDarkElixirCap": 500, + "WarPrizeCommonOreCap": 460, + "WarPrizeRareOreCap": 21, + "WarPrizeEpicOreCap": 3, + "LegendPrizeGoldCap": 250000, + "LegendPrizeElixirCap": 250000, + "LegendPrizeDarkElixirCap": 1200, + "WarPrizeAllianceExpCap": 7, + "CartLootCapResource": 2000000, + "CartLootReengagementResource": 13000000, + "CartLootCapDarkElixir": 4000, + "CartLootReengagementDarkElixir": 130000, + "ReengagementBuildingBudget": 29635200, + "ReengagementHeroBudget": 38880000, + "ReengagementWallBudget": 14817600, + "ReengagementLabBudget": 29635200, + "HeroBoostHours": 120, + "PowerBoostHours": 120, + "ResourceProductionBoostHours": 120, + "StarBonusBoostHours": 120, + "Cannon": 6, + "Wall": 275, + "Archer Tower": 7, + "Superbomb": 5, + "Bow": 3, + "AirTrap": 5, + "MegaAirTrap": 5, + "Dark Tower": 2, + "StrengthMaxTroopTypes": 8, + "StrengthMaxSpellTypes": 8, + "StrengthMaxSiegeTypes": 0, + "Totem": 2, + "Halloweenskels": 3, + "Bomb Tower": 2, + "TreasuryWarGold": 2800000, + "TreasuryWarElixir": 2800000, + "TreasuryWarDarkElixir": 14000, + "FriendlyCost": 0, + "PackElixir": 1000000, + "PackGold": 1000000, + "PackDarkElixir": 10000, + "PackGold2": 1000000, + "PackElixir2": 1000000, + "DuelPrizeResourceCap": 420000, + "AirGroundTrap": 6, + "Xbow_BB": 1, + "ElixirCartStorageCap": 400000 + }, + "11": { + "AttackCost": 1000, + "ResourceStorageLootPercentage": 10, + "DarkElixirStorageLootPercentage": 4, + "ResourceStorageLootCap": 450000, + "DarkElixirStorageLootCap": 3500, + "WarPrizeResourceCap": 110000, + "WarPrizeDarkElixirCap": 600, + "WarPrizeCommonOreCap": 560, + "WarPrizeRareOreCap": 24, + "WarPrizeEpicOreCap": 3, + "LegendPrizeGoldCap": 350000, + "LegendPrizeElixirCap": 350000, + "LegendPrizeDarkElixirCap": 3250, + "WarPrizeAllianceExpCap": 9, + "CartLootCapResource": 2200000, + "CartLootReengagementResource": 14000000, + "CartLootCapDarkElixir": 4400, + "CartLootReengagementDarkElixir": 140000, + "ReengagementBuildingBudget": 33868800, + "ReengagementHeroBudget": 45360000, + "ReengagementWallBudget": 16934400, + "ReengagementLabBudget": 33868800, + "HeroBoostHours": 120, + "PowerBoostHours": 120, + "ResourceProductionBoostHours": 120, + "StarBonusBoostHours": 120, + "Cannon": 7, + "Wall": 300, + "Archer Tower": 8, + "Wizard Tower": 5, + "Bow": 4, + "StrengthMaxTroopTypes": 10, + "StrengthMaxSpellTypes": 8, + "StrengthMaxSiegeTypes": 0, + "Hero Altar Grand Warden": 1, + "Ancient Artillery": 1, + "TreasuryWarGold": 3200000, + "TreasuryWarElixir": 3200000, + "TreasuryWarDarkElixir": 16000, + "FriendlyCost": 0, + "PackElixir": 1000000, + "PackGold": 1000000, + "PackDarkElixir": 10000, + "TornadoTrap": 1, + "ElixirCartStorageCap": 9999990 + }, + "12": { + "AttackCost": 1100, + "ResourceStorageLootPercentage": 10, + "DarkElixirStorageLootPercentage": 4, + "ResourceStorageLootCap": 500000, + "DarkElixirStorageLootCap": 4000, + "WarPrizeResourceCap": 120000, + "WarPrizeDarkElixirCap": 650, + "WarPrizeCommonOreCap": 610, + "WarPrizeRareOreCap": 27, + "WarPrizeEpicOreCap": 4, + "LegendPrizeGoldCap": 450000, + "LegendPrizeElixirCap": 450000, + "LegendPrizeDarkElixirCap": 6500, + "WarPrizeAllianceExpCap": 10, + "CartLootCapResource": 2400000, + "CartLootReengagementResource": 15000000, + "CartLootCapDarkElixir": 4800, + "CartLootReengagementDarkElixir": 150000, + "ReengagementBuildingBudget": 36720000, + "ReengagementHeroBudget": 50000000, + "ReengagementWallBudget": 18360000, + "ReengagementLabBudget": 36720000, + "HeroBoostHours": 120, + "PowerBoostHours": 120, + "ResourceProductionBoostHours": 120, + "StarBonusBoostHours": 120, + "Wall": 300, + "Ejector": 8, + "Superbomb": 6, + "Tesla Tower": 5, + "AirTrap": 6, + "MegaAirTrap": 6, + "Dark Tower": 3, + "StrengthMaxTroopTypes": 12, + "StrengthMaxSpellTypes": 8, + "StrengthMaxSiegeTypes": 3, + "TreasuryWarGold": 3600000, + "TreasuryWarElixir": 3600000, + "TreasuryWarDarkElixir": 18000, + "FriendlyCost": 0, + "PackElixir": 1000000, + "PackGold": 1000000, + "PackDarkElixir": 10000, + "SiegeWorkshop": 1, + "ElixirCartStorageCap": 9999991 + }, + "13": { + "AttackCost": 1200, + "ResourceStorageLootPercentage": 10, + "DarkElixirStorageLootPercentage": 4, + "ResourceStorageLootCap": 550000, + "DarkElixirStorageLootCap": 4500, + "WarPrizeResourceCap": 130000, + "WarPrizeDarkElixirCap": 700, + "WarPrizeCommonOreCap": 710, + "WarPrizeRareOreCap": 30, + "WarPrizeEpicOreCap": 4, + "LegendPrizeGoldCap": 500000, + "LegendPrizeElixirCap": 500000, + "LegendPrizeDarkElixirCap": 7000, + "WarPrizeAllianceExpCap": 11, + "CartLootCapResource": 2600000, + "CartLootReengagementResource": 16000000, + "CartLootCapDarkElixir": 5200, + "CartLootReengagementDarkElixir": 160000, + "ReengagementBuildingBudget": 41040000, + "ReengagementHeroBudget": 55000000, + "ReengagementWallBudget": 20520000, + "ReengagementLabBudget": 41040000, + "HeroBoostHours": 120, + "PowerBoostHours": 120, + "ResourceProductionBoostHours": 120, + "StarBonusBoostHours": 120, + "Wall": 300, + "Ejector": 9, + "Mine": 7, + "MegaAirTrap": 7, + "StrengthMaxTroopTypes": 12, + "StrengthMaxSpellTypes": 8, + "StrengthMaxSiegeTypes": 3, + "TreasuryWarGold": 4000000, + "TreasuryWarElixir": 4000000, + "TreasuryWarDarkElixir": 20000, + "FriendlyCost": 0, + "PackElixir": 1000000, + "PackGold": 1000000, + "PackDarkElixir": 10000, + "Hero Altar Royal Champion": 1, + "Scattershot": 2, + "ElixirCartStorageCap": 9999992 + }, + "14": { + "AttackCost": 1300, + "ResourceStorageLootPercentage": 10, + "DarkElixirStorageLootPercentage": 4, + "ResourceStorageLootCap": 600000, + "DarkElixirStorageLootCap": 5000, + "WarPrizeResourceCap": 140000, + "WarPrizeDarkElixirCap": 750, + "WarPrizeCommonOreCap": 810, + "WarPrizeRareOreCap": 33, + "WarPrizeEpicOreCap": 5, + "LegendPrizeGoldCap": 550000, + "LegendPrizeElixirCap": 550000, + "LegendPrizeDarkElixirCap": 7000, + "WarPrizeAllianceExpCap": 12, + "CartLootCapResource": 2800000, + "CartLootReengagementResource": 17000000, + "CartLootCapDarkElixir": 5600, + "CartLootReengagementDarkElixir": 170000, + "ReengagementBuildingBudget": 41040000, + "ReengagementHeroBudget": 55000000, + "ReengagementWallBudget": 20520000, + "ReengagementLabBudget": 41040000, + "HeroBoostHours": 120, + "PowerBoostHours": 120, + "ResourceProductionBoostHours": 120, + "StarBonusBoostHours": 120, + "Wall": 325, + "Superbomb": 7, + "Mine": 8, + "AirTrap": 7, + "MegaAirTrap": 8, + "StrengthMaxTroopTypes": 12, + "StrengthMaxSpellTypes": 8, + "StrengthMaxSiegeTypes": 3, + "Halloweenskels": 4, + "TreasuryWarGold": 4400000, + "TreasuryWarElixir": 4400000, + "TreasuryWarDarkElixir": 22000, + "FriendlyCost": 0, + "PackElixir": 1000000, + "PackGold": 1000000, + "PackDarkElixir": 10000, + "Pet Shop": 1, + "ElixirCartStorageCap": 9999993 + }, + "15": { + "AttackCost": 1400, + "ResourceStorageLootPercentage": 10, + "DarkElixirStorageLootPercentage": 4, + "ResourceStorageLootCap": 650000, + "DarkElixirStorageLootCap": 5500, + "WarPrizeResourceCap": 150000, + "WarPrizeDarkElixirCap": 800, + "WarPrizeCommonOreCap": 960, + "WarPrizeRareOreCap": 36, + "WarPrizeEpicOreCap": 5, + "LegendPrizeGoldCap": 600000, + "LegendPrizeElixirCap": 600000, + "LegendPrizeDarkElixirCap": 7000, + "WarPrizeAllianceExpCap": 13, + "CartLootCapResource": 3000000, + "CartLootReengagementResource": 18000000, + "CartLootCapDarkElixir": 6000, + "CartLootReengagementDarkElixir": 180000, + "ReengagementBuildingBudget": 41040000, + "ReengagementHeroBudget": 55000000, + "ReengagementWallBudget": 20520000, + "ReengagementLabBudget": 41040000, + "HeroBoostHours": 120, + "PowerBoostHours": 120, + "ResourceProductionBoostHours": 120, + "StarBonusBoostHours": 120, + "Wall": 325, + "StrengthMaxTroopTypes": 12, + "StrengthMaxSpellTypes": 8, + "StrengthMaxSiegeTypes": 3, + "TreasuryWarGold": 4800000, + "TreasuryWarElixir": 4800000, + "TreasuryWarDarkElixir": 24000, + "FriendlyCost": 0, + "PackElixir": 1000000, + "PackGold": 1000000, + "PackDarkElixir": 10000, + "Spell Tower": 2, + "Monolith": 1, + "ElixirCartStorageCap": 9999994 + }, + "16": { + "AttackCost": 1500, + "ResourceStorageLootPercentage": 10, + "DarkElixirStorageLootPercentage": 4, + "ResourceStorageLootCap": 700000, + "DarkElixirStorageLootCap": 6000, + "WarPrizeResourceCap": 160000, + "WarPrizeDarkElixirCap": 850, + "WarPrizeCommonOreCap": 1110, + "WarPrizeRareOreCap": 39, + "WarPrizeEpicOreCap": 6, + "LegendPrizeGoldCap": 650000, + "LegendPrizeElixirCap": 650000, + "LegendPrizeDarkElixirCap": 7000, + "WarPrizeAllianceExpCap": 14, + "CartLootCapResource": 3200000, + "CartLootReengagementResource": 19000000, + "CartLootCapDarkElixir": 6400, + "CartLootReengagementDarkElixir": 190000, + "ReengagementBuildingBudget": 41040000, + "ReengagementHeroBudget": 55000000, + "ReengagementWallBudget": 20520000, + "ReengagementLabBudget": 41040000, + "HeroBoostHours": 120, + "PowerBoostHours": 120, + "ResourceProductionBoostHours": 120, + "StarBonusBoostHours": 120, + "Wall": 325, + "StrengthMaxTroopTypes": 13, + "StrengthMaxSpellTypes": 9, + "StrengthMaxSiegeTypes": 3, + "TreasuryWarGold": 5200000, + "TreasuryWarElixir": 5200000, + "TreasuryWarDarkElixir": 26000, + "FriendlyCost": 0, + "PackElixir": 1000000, + "PackGold": 1000000, + "PackDarkElixir": 10000, + "ElixirCartStorageCap": 9999995, + "Merged Archer Tower": 2, + "Merged Cannon": 2 + } } \ No newline at end of file diff --git a/assets/json/translations.json b/assets/json/translations.json index a22c1d8a..48579156 100644 --- a/assets/json/translations.json +++ b/assets/json/translations.json @@ -1,21936 +1,21936 @@ -{ - "TID_LANGUAGE_LOCALIZED_NAME": { - "EN": "English" - }, - "TID_BUILDING_HOUSE": { - "EN": "House" - }, - "TID_BUILDING_HOUSING": { - "EN": "Army Camp" - }, - "TID_BUILDING_TOWN_HALL": { - "EN": "Town Hall" - }, - "TID_BUILDING_ELIXIR_PUMP": { - "EN": "Elixir Collector" - }, - "TID_BUILDING_ELIXIR_STORAGE": { - "EN": "Elixir Storage" - }, - "TID_BUILDING_GOLD_MINE": { - "EN": "Gold Mine" - }, - "TID_BUILDING_GOLD_STORAGE": { - "EN": "Gold Storage" - }, - "TID_BUILDING_BARRACK": { - "EN": "Barracks" - }, - "TID_BUILDING_CANNON": { - "EN": "Cannon" - }, - "TID_BUILDING_TESLA_TOWER": { - "EN": "Hidden Tesla" - }, - "TID_BUILDING_WALL": { - "EN": "Wall" - }, - "TID_BUILDING_FENCE": { - "EN": "Fence" - }, - "TID_BUILDING_WIZARD_TOWER": { - "EN": "Wizard Tower" - }, - "TID_BUILDING_AIR_DEFENSE": { - "EN": "Air Defense" - }, - "TID_BUILDING_MORTAR": { - "EN": "Mortar" - }, - "TID_WORKER_BUILDING": { - "EN": "Builder's Hut" - }, - "TID_BUILDING_LABORATORY": { - "EN": "Laboratory" - }, - "TID_TRAP_BOMB": { - "EN": "Bomb Trap" - }, - "TID_TRAP_EJECT": { - "EN": "Spring Trap" - }, - "TID_TRAP_TIMETRAP": { - "EN": "Time Trap" - }, - "TID_BUTTON_SPEEDUP": { - "EN": "Finish Now" - }, - "TID_BUTTON_UPGRADE": { - "EN": "Upgrade" - }, - "TID_BUTTON_ATTACK": { - "EN": "Attack!" - }, - "TID_BUTTON_SHOP": { - "EN": "Shop" - }, - "TID_BUTTON_SELL": { - "EN": "Sell" - }, - "TID_BUTTON_CANCEL": { - "EN": "Cancel" - }, - "TID_BUTTON_TRAIN": { - "EN": "Train Troops" - }, - "TID_BUTTON_COLLECT": { - "EN": "Collect" - }, - "TID_BUTTON_INFO": { - "EN": "Info" - }, - "TID_BUTTON_CLEAR": { - "EN": "Remove" - }, - "TID_BUTTON_HOME": { - "EN": "Return Home" - }, - "TID_BUTTON_ACCEPT": { - "EN": "Accept" - }, - "TID_BUTTON_REJECT": { - "EN": "Reject" - }, - "TID_BUTTON_SEND": { - "EN": "Send" - }, - "TID_BUTTON_JOIN": { - "EN": "Join" - }, - "TID_TAB_GLOBAL_CHAT": { - "EN": "Global" - }, - "TID_TAB_ALLIANCE_CHAT": { - "EN": "Clan" - }, - "TID_OBSTACLE_TREE": { - "EN": "Tree" - }, - "TID_OBSTACLE_STONE": { - "EN": "Stone" - }, - "TID_OBSTACLE_BUSH": { - "EN": "Bush" - }, - "TID_OBSTACLE_TRUNK": { - "EN": "Trunk" - }, - "TID_OBSTACLE_MUSHROOM": { - "EN": "Mushroom" - }, - "TID_DECORATION_BARBARIAN_STATUE": { - "EN": "Mighty Statue" - }, - "TID_DECORATION_TORCH": { - "EN": "Torch" - }, - "TID_DECORATION_WHITE_FLAG": { - "EN": "White Flag" - }, - "TID_DECORATION_SKULL_FLAG": { - "EN": "Pirate Flag" - }, - "TID_DECORATION_FLOWERBOX1": { - "EN": "Cornflower Bed" - }, - "TID_DECORATION_FLOWERBOX2": { - "EN": "Sunflower Bed" - }, - "TID_DECORATION_WINDMETER": { - "EN": "Weather Vane" - }, - "TID_DECORATION_DOWNARROW_FLAG": { - "EN": "Rally Flag" - }, - "TID_DECORATION_UPARROW_FLAG": { - "EN": "Point Flag" - }, - "TID_DECORATION_SKULL_ALTAR": { - "EN": "Ancient Skull" - }, - "TID_DECORATION_NATIONAL_FLAG": { - "EN": "National Flag" - }, - "TID_TIME_DAYS": { - "EN": "d" - }, - "TID_TIME_HOURS": { - "EN": "h" - }, - "TID_TIME_MINS": { - "EN": "m" - }, - "TID_TIME_SECS": { - "EN": "s" - }, - "TID_BATTLE_TIME_TITLE": { - "EN": "Battle ends in:" - }, - "TID_POPUP_HEADER_WARNING": { - "EN": "Warning!" - }, - "TID_POPUP_UNDER_ATTACK": { - "EN": "You are under attack! Please wait, your village will load automatically." - }, - "TID_POPUP_TRY_AGAIN": { - "EN": "Estimated time left:" - }, - "TID_BUTTON_OKAY": { - "EN": "Okay" - }, - "TID_POPUP_TRAIN_TITLE": { - "EN": "Train troops " - }, - "TID_INVALID_PLACEMENT": { - "EN": "You cannot deploy troops on the red area!" - }, - "TID_ALL_TROOPS_USED": { - "EN": "All forces deployed" - }, - "TID_OTHER_TROOP_LEFT": { - "EN": "Select a different unit" - }, - "TID_DIAMONDS": { - "EN": "Gems" - }, - "TID_GOLD": { - "EN": "Gold" - }, - "TID_ELIXIR": { - "EN": "Elixir" - }, - "TID_ITEM_LEVEL": { - "EN": " (Level )" - }, - "TID_SHOP_TITLE": { - "EN": "Shop" - }, - "TID_ITEM_BROKEN": { - "EN": " (Broken)" - }, - "TID_BUILDING_ARCHER_TOWER": { - "EN": "Archer Tower" - }, - "TID_BUILDING_CLASS_ARMY": { - "EN": "Army Buildings" - }, - "TID_BUILDING_CLASS_DEFENSE": { - "EN": "Defenses" - }, - "TID_BUILDING_CLASS_RESOURCE": { - "EN": "Resources" - }, - "TID_BUILDING_CLASS_WALL": { - "EN": "Walls" - }, - "TID_NOT_ENOUGH_WORKERS_HEADER": { - "EN": "All builders are busy!" - }, - "TID_NOT_ENOUGH_WORKERS_TEXT": { - "EN": "Complete the previous building and free up a builder?" - }, - "TID_NOT_ENOUGH_WORKERS_TEXT_MASTER_BUILDER": { - "EN": "Complete the previous building and free up the Master Builder?" - }, - "TID_NOT_ENOUGH_RESOURCE": { - "EN": "You don't have enough !" - }, - "TID_NOT_ENOUGH_RESOURCE_TWO": { - "EN": "You don't have enough and !" - }, - "TID_TOWN_HALL_LEVEL_TOO_LOW": { - "EN": "You need to upgrade your Town Hall to level !" - }, - "TID_TOWN_HALL_LEVEL_TOO_LOW_2": { - "EN": "You need to upgrade your Builder Hall to level !" - }, - "TID_POPUP_UPGRADE_TITLE": { - "EN": "Upgrade to level ?" - }, - "TID_POPUP_UPGRADE_BUILD_MORE": { - "EN": "Build more:" - }, - "TID_RESOURCE_CAP_FULL_GOLD": { - "EN": "Build more or upgrade existing Gold Storages!" - }, - "TID_RESOURCE_CAP_FULL_ELIXIR": { - "EN": "Build more or upgrade existing Elixir Storages!" - }, - "TID_RESOURCE_CAP_FULL_GENERIC": { - "EN": "Build more or upgrade existing storages!" - }, - "TID_POPUP_FRIEND_LIST_TITLE": { - "EN": "Friends" - }, - "TID_POPUP_SOCIAL_LIST_TITLE": { - "EN": "Social" - }, - "TID_CONNECT_WITH_FACEBOOK_BUTTON": { - "EN": "Connect to Facebook" - }, - "TID_LOGIN_TO_FACEBOOK_BUTTON": { - "EN": "Login to Facebook" - }, - "TID_LOADING_FACEBOOK_FRIENDS": { - "EN": "Loading friend list..." - }, - "TID_OBSTACLE_TOMBSTONE": { - "EN": "Tombstone" - }, - "TID_NO_FACEBOOK_FRIENDS": { - "EN": "Unable to find Facebook friends who play Clash of Clans" - }, - "TID_ATTACK_FAIL_NO_MATCHES": { - "EN": "Unable to find villages to attack!" - }, - "TID_ATTACK_FAIL_ALREADY_UNDER_ATTACK": { - "EN": "Can't attack! Village is already under attack." - }, - "TID_ATTACK_FAIL_TARGET_ONLINE": { - "EN": "Can't attack! Village owner is online." - }, - "TID_ATTACK_FAIL_SAME_ALLIANCE": { - "EN": "Can't attack your own clan members!" - }, - "TID_ATTACK_FAIL_SHIELD": { - "EN": "Can't attack! Village has active Shield" - }, - "TID_ATTACK_FAIL_LEVEL_DIFFERENCE": { - "EN": "Can't attack! Level difference is more than " - }, - "TID_ATTACK_FAIL_NEWBIE_PROTECTED": { - "EN": "Can't attack this village because its Town Hall is below level ." - }, - "TID_DEFAULT_VILLAGE_NAME": { - "EN": "'s Village" - }, - "TID_BATTLE_LOG_TITLE": { - "EN": "You've been attacked!" - }, - "TID_BATTLE_LOG_ITEM": { - "EN": " attacked you