Wrap app
13
app/.editorconfig
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
# Editor configuration, see https://editorconfig.org
|
||||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[*.md]
|
||||
max_line_length = off
|
||||
trim_trailing_whitespace = false
|
||||
46
app/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
# See http://help.github.com/ignore-files/ for more about ignoring files.
|
||||
|
||||
# compiled output
|
||||
/dist
|
||||
/tmp
|
||||
/out-tsc
|
||||
# Only exists if Bazel was run
|
||||
/bazel-out
|
||||
|
||||
# dependencies
|
||||
/node_modules
|
||||
|
||||
# profiling files
|
||||
chrome-profiler-events*.json
|
||||
speed-measure-plugin*.json
|
||||
|
||||
# IDEs and editors
|
||||
/.idea
|
||||
.project
|
||||
.classpath
|
||||
.c9/
|
||||
*.launch
|
||||
.settings/
|
||||
*.sublime-workspace
|
||||
|
||||
# IDE - VSCode
|
||||
.vscode/*
|
||||
!.vscode/settings.json
|
||||
!.vscode/tasks.json
|
||||
!.vscode/launch.json
|
||||
!.vscode/extensions.json
|
||||
.history/*
|
||||
|
||||
# misc
|
||||
/.sass-cache
|
||||
/connect.lock
|
||||
/coverage
|
||||
/libpeerconnection.log
|
||||
npm-debug.log
|
||||
yarn-error.log
|
||||
testem.log
|
||||
/typings
|
||||
|
||||
# System Files
|
||||
.DS_Store
|
||||
Thumbs.db
|
||||
27
app/README.md
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
# TFTPaths
|
||||
|
||||
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.2.1.
|
||||
|
||||
## Development server
|
||||
|
||||
Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.
|
||||
|
||||
## Code scaffolding
|
||||
|
||||
Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.
|
||||
|
||||
## Build
|
||||
|
||||
Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `--prod` flag for a production build.
|
||||
|
||||
## Running unit tests
|
||||
|
||||
Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
||||
|
||||
## Running end-to-end tests
|
||||
|
||||
Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).
|
||||
|
||||
## Further help
|
||||
|
||||
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
|
||||
129
app/angular.json
Normal file
|
|
@ -0,0 +1,129 @@
|
|||
{
|
||||
"$schema": "./node_modules/@angular/cli/lib/config/schema.json",
|
||||
"version": 1,
|
||||
"newProjectRoot": "projects",
|
||||
"projects": {
|
||||
"TFTPaths": {
|
||||
"projectType": "application",
|
||||
"schematics": {
|
||||
"@schematics/angular:component": {
|
||||
"style": "scss"
|
||||
}
|
||||
},
|
||||
"root": "",
|
||||
"sourceRoot": "src",
|
||||
"prefix": "app",
|
||||
"architect": {
|
||||
"build": {
|
||||
"builder": "@angular-devkit/build-angular:browser",
|
||||
"options": {
|
||||
"outputPath": "dist/TFTPaths",
|
||||
"index": "src/index.html",
|
||||
"main": "src/main.ts",
|
||||
"polyfills": "src/polyfills.ts",
|
||||
"tsConfig": "tsconfig.app.json",
|
||||
"aot": false,
|
||||
"assets": [
|
||||
"src/favicon.ico",
|
||||
"src/assets"
|
||||
],
|
||||
"styles": [
|
||||
"src/styles.scss"
|
||||
],
|
||||
"scripts": []
|
||||
},
|
||||
"configurations": {
|
||||
"production": {
|
||||
"fileReplacements": [
|
||||
{
|
||||
"replace": "src/environments/environment.ts",
|
||||
"with": "src/environments/environment.prod.ts"
|
||||
}
|
||||
],
|
||||
"optimization": true,
|
||||
"outputHashing": "all",
|
||||
"sourceMap": false,
|
||||
"extractCss": true,
|
||||
"namedChunks": false,
|
||||
"aot": true,
|
||||
"extractLicenses": true,
|
||||
"vendorChunk": false,
|
||||
"buildOptimizer": true,
|
||||
"budgets": [
|
||||
{
|
||||
"type": "initial",
|
||||
"maximumWarning": "2mb",
|
||||
"maximumError": "5mb"
|
||||
},
|
||||
{
|
||||
"type": "anyComponentStyle",
|
||||
"maximumWarning": "6kb",
|
||||
"maximumError": "10kb"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"serve": {
|
||||
"builder": "@angular-devkit/build-angular:dev-server",
|
||||
"options": {
|
||||
"browserTarget": "TFTPaths:build"
|
||||
},
|
||||
"configurations": {
|
||||
"production": {
|
||||
"browserTarget": "TFTPaths:build:production"
|
||||
}
|
||||
}
|
||||
},
|
||||
"extract-i18n": {
|
||||
"builder": "@angular-devkit/build-angular:extract-i18n",
|
||||
"options": {
|
||||
"browserTarget": "TFTPaths:build"
|
||||
}
|
||||
},
|
||||
"test": {
|
||||
"builder": "@angular-devkit/build-angular:karma",
|
||||
"options": {
|
||||
"main": "src/test.ts",
|
||||
"polyfills": "src/polyfills.ts",
|
||||
"tsConfig": "tsconfig.spec.json",
|
||||
"karmaConfig": "karma.conf.js",
|
||||
"assets": [
|
||||
"src/favicon.ico",
|
||||
"src/assets"
|
||||
],
|
||||
"styles": [
|
||||
"src/styles.scss"
|
||||
],
|
||||
"scripts": []
|
||||
}
|
||||
},
|
||||
"lint": {
|
||||
"builder": "@angular-devkit/build-angular:tslint",
|
||||
"options": {
|
||||
"tsConfig": [
|
||||
"tsconfig.app.json",
|
||||
"tsconfig.spec.json",
|
||||
"e2e/tsconfig.json"
|
||||
],
|
||||
"exclude": [
|
||||
"**/node_modules/**"
|
||||
]
|
||||
}
|
||||
},
|
||||
"e2e": {
|
||||
"builder": "@angular-devkit/build-angular:protractor",
|
||||
"options": {
|
||||
"protractorConfig": "e2e/protractor.conf.js",
|
||||
"devServerTarget": "TFTPaths:serve"
|
||||
},
|
||||
"configurations": {
|
||||
"production": {
|
||||
"devServerTarget": "TFTPaths:serve:production"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}},
|
||||
"defaultProject": "TFTPaths"
|
||||
}
|
||||
12
app/browserslist
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
# This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
|
||||
# For additional information regarding the format and rule options, please see:
|
||||
# https://github.com/browserslist/browserslist#queries
|
||||
|
||||
# You can see what browsers were selected by your queries by running:
|
||||
# npx browserslist
|
||||
|
||||
> 0.5%
|
||||
last 2 versions
|
||||
Firefox ESR
|
||||
not dead
|
||||
not IE 9-11 # For IE 9-11 support, remove 'not'.
|
||||
32
app/e2e/protractor.conf.js
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
// @ts-check
|
||||
// Protractor configuration file, see link for more information
|
||||
// https://github.com/angular/protractor/blob/master/lib/config.ts
|
||||
|
||||
const { SpecReporter } = require('jasmine-spec-reporter');
|
||||
|
||||
/**
|
||||
* @type { import("protractor").Config }
|
||||
*/
|
||||
exports.config = {
|
||||
allScriptsTimeout: 11000,
|
||||
specs: [
|
||||
'./src/**/*.e2e-spec.ts'
|
||||
],
|
||||
capabilities: {
|
||||
'browserName': 'chrome'
|
||||
},
|
||||
directConnect: true,
|
||||
baseUrl: 'http://localhost:4200/',
|
||||
framework: 'jasmine',
|
||||
jasmineNodeOpts: {
|
||||
showColors: true,
|
||||
defaultTimeoutInterval: 30000,
|
||||
print: function() {}
|
||||
},
|
||||
onPrepare() {
|
||||
require('ts-node').register({
|
||||
project: require('path').join(__dirname, './tsconfig.json')
|
||||
});
|
||||
jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
|
||||
}
|
||||
};
|
||||
23
app/e2e/src/app.e2e-spec.ts
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
import { AppPage } from './app.po';
|
||||
import { browser, logging } from 'protractor';
|
||||
|
||||
describe('workspace-project App', () => {
|
||||
let page: AppPage;
|
||||
|
||||
beforeEach(() => {
|
||||
page = new AppPage();
|
||||
});
|
||||
|
||||
it('should display welcome message', () => {
|
||||
page.navigateTo();
|
||||
expect(page.getTitleText()).toEqual('Welcome to TFTPaths!');
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
// Assert that there are no errors emitted from the browser
|
||||
const logs = await browser.manage().logs().get(logging.Type.BROWSER);
|
||||
expect(logs).not.toContain(jasmine.objectContaining({
|
||||
level: logging.Level.SEVERE,
|
||||
} as logging.Entry));
|
||||
});
|
||||
});
|
||||
11
app/e2e/src/app.po.ts
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
import { browser, by, element } from 'protractor';
|
||||
|
||||
export class AppPage {
|
||||
navigateTo() {
|
||||
return browser.get(browser.baseUrl) as Promise<any>;
|
||||
}
|
||||
|
||||
getTitleText() {
|
||||
return element(by.css('app-root h1')).getText() as Promise<string>;
|
||||
}
|
||||
}
|
||||
13
app/e2e/tsconfig.json
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"extends": "../tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "../out-tsc/e2e",
|
||||
"module": "commonjs",
|
||||
"target": "es5",
|
||||
"types": [
|
||||
"jasmine",
|
||||
"jasminewd2",
|
||||
"node"
|
||||
]
|
||||
}
|
||||
}
|
||||
32
app/karma.conf.js
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
// Karma configuration file, see link for more information
|
||||
// https://karma-runner.github.io/1.0/config/configuration-file.html
|
||||
|
||||
module.exports = function (config) {
|
||||
config.set({
|
||||
basePath: '',
|
||||
frameworks: ['jasmine', '@angular-devkit/build-angular'],
|
||||
plugins: [
|
||||
require('karma-jasmine'),
|
||||
require('karma-chrome-launcher'),
|
||||
require('karma-jasmine-html-reporter'),
|
||||
require('karma-coverage-istanbul-reporter'),
|
||||
require('@angular-devkit/build-angular/plugins/karma')
|
||||
],
|
||||
client: {
|
||||
clearContext: false // leave Jasmine Spec Runner output visible in browser
|
||||
},
|
||||
coverageIstanbulReporter: {
|
||||
dir: require('path').join(__dirname, './coverage/TFTPaths'),
|
||||
reports: ['html', 'lcovonly', 'text-summary'],
|
||||
fixWebpackSourcePaths: true
|
||||
},
|
||||
reporters: ['progress', 'kjhtml'],
|
||||
port: 9876,
|
||||
colors: true,
|
||||
logLevel: config.LOG_INFO,
|
||||
autoWatch: true,
|
||||
browsers: ['Chrome'],
|
||||
singleRun: false,
|
||||
restartOnFileChange: true
|
||||
});
|
||||
};
|
||||
11981
app/package-lock.json
generated
Normal file
48
app/package.json
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
{
|
||||
"name": "tftpaths",
|
||||
"version": "0.0.0",
|
||||
"scripts": {
|
||||
"ng": "ng",
|
||||
"start": "ng serve",
|
||||
"build": "ng build",
|
||||
"test": "ng test",
|
||||
"lint": "ng lint",
|
||||
"e2e": "ng e2e"
|
||||
},
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@angular/animations": "~8.2.0",
|
||||
"@angular/common": "~8.2.0",
|
||||
"@angular/compiler": "~8.2.0",
|
||||
"@angular/core": "~8.2.0",
|
||||
"@angular/forms": "~8.2.0",
|
||||
"@angular/platform-browser": "~8.2.0",
|
||||
"@angular/platform-browser-dynamic": "~8.2.0",
|
||||
"@angular/router": "~8.2.0",
|
||||
"lodash": "^4.17.15",
|
||||
"rxjs": "~6.4.0",
|
||||
"tslib": "^1.10.0",
|
||||
"zone.js": "~0.9.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@angular-devkit/build-angular": "~0.802.1",
|
||||
"@angular/cli": "~8.2.1",
|
||||
"@angular/compiler-cli": "~8.2.0",
|
||||
"@angular/language-service": "~8.2.0",
|
||||
"@types/node": "~8.9.4",
|
||||
"@types/jasmine": "~3.3.8",
|
||||
"@types/jasminewd2": "~2.0.3",
|
||||
"codelyzer": "^5.0.0",
|
||||
"jasmine-core": "~3.4.0",
|
||||
"jasmine-spec-reporter": "~4.2.1",
|
||||
"karma": "~4.1.0",
|
||||
"karma-chrome-launcher": "~2.2.0",
|
||||
"karma-coverage-istanbul-reporter": "~2.0.1",
|
||||
"karma-jasmine": "~2.0.1",
|
||||
"karma-jasmine-html-reporter": "^1.4.0",
|
||||
"protractor": "~5.4.0",
|
||||
"ts-node": "~7.0.0",
|
||||
"tslint": "~5.15.0",
|
||||
"typescript": "~3.5.3"
|
||||
}
|
||||
}
|
||||
15
app/src/app/app-routing.module.ts
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
import { NgModule } from '@angular/core';
|
||||
import { Routes, RouterModule } from '@angular/router';
|
||||
import { LayoutComponent } from 'src/components/layout/layout.component';
|
||||
|
||||
|
||||
const routes: Routes = [
|
||||
{ path: '', component: LayoutComponent, pathMatch: 'full' },
|
||||
{ path: '**', component: LayoutComponent, pathMatch: 'full' }
|
||||
];
|
||||
|
||||
@NgModule({
|
||||
imports: [RouterModule.forRoot(routes)],
|
||||
exports: [RouterModule]
|
||||
})
|
||||
export class AppRoutingModule { }
|
||||
1
app/src/app/app.component.html
Normal file
|
|
@ -0,0 +1 @@
|
|||
<router-outlet></router-outlet>
|
||||
0
app/src/app/app.component.scss
Normal file
35
app/src/app/app.component.spec.ts
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
import { TestBed, async } from '@angular/core/testing';
|
||||
import { RouterTestingModule } from '@angular/router/testing';
|
||||
import { AppComponent } from './app.component';
|
||||
|
||||
describe('AppComponent', () => {
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [
|
||||
RouterTestingModule
|
||||
],
|
||||
declarations: [
|
||||
AppComponent
|
||||
],
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
it('should create the app', () => {
|
||||
const fixture = TestBed.createComponent(AppComponent);
|
||||
const app = fixture.debugElement.componentInstance;
|
||||
expect(app).toBeTruthy();
|
||||
});
|
||||
|
||||
it(`should have as title 'TFTPaths'`, () => {
|
||||
const fixture = TestBed.createComponent(AppComponent);
|
||||
const app = fixture.debugElement.componentInstance;
|
||||
expect(app.title).toEqual('TFTPaths');
|
||||
});
|
||||
|
||||
it('should render title in a h1 tag', () => {
|
||||
const fixture = TestBed.createComponent(AppComponent);
|
||||
fixture.detectChanges();
|
||||
const compiled = fixture.debugElement.nativeElement;
|
||||
expect(compiled.querySelector('h1').textContent).toContain('Welcome to TFTPaths!');
|
||||
});
|
||||
});
|
||||
10
app/src/app/app.component.ts
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
import { Component } from '@angular/core';
|
||||
|
||||
@Component({
|
||||
selector: 'app-root',
|
||||
templateUrl: './app.component.html',
|
||||
styleUrls: ['./app.component.scss']
|
||||
})
|
||||
export class AppComponent {
|
||||
title = 'TFTPaths';
|
||||
}
|
||||
24
app/src/app/app.module.ts
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
import { BrowserModule } from '@angular/platform-browser';
|
||||
import { NgModule } from '@angular/core';
|
||||
|
||||
import { AppRoutingModule } from './app-routing.module';
|
||||
import { AppComponent } from './app.component';
|
||||
import { HomeComponent } from '../components/home/home.component';
|
||||
import { ReactiveFormsModule } from '@angular/forms';
|
||||
import { LayoutComponent } from '../components/layout/layout.component';
|
||||
|
||||
@NgModule({
|
||||
declarations: [
|
||||
AppComponent,
|
||||
HomeComponent,
|
||||
LayoutComponent
|
||||
],
|
||||
imports: [
|
||||
BrowserModule,
|
||||
AppRoutingModule,
|
||||
ReactiveFormsModule
|
||||
],
|
||||
providers: [],
|
||||
bootstrap: [AppComponent]
|
||||
})
|
||||
export class AppModule { }
|
||||
0
app/src/assets/.gitkeep
Normal file
BIN
app/src/assets/images/Aatrox.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
app/src/assets/images/Ahri.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
app/src/assets/images/Akali.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
app/src/assets/images/Anivia.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
app/src/assets/images/Ashe.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
app/src/assets/images/AurelionSol.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
app/src/assets/images/Blitzcrank.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
app/src/assets/images/Brand.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
app/src/assets/images/Braum.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
app/src/assets/images/Camille.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
app/src/assets/images/Chogath.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
app/src/assets/images/Darius.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
app/src/assets/images/Draven.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
app/src/assets/images/Elise.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
app/src/assets/images/Evelynn.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
app/src/assets/images/Fiora.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
app/src/assets/images/Gangplank.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
app/src/assets/images/Garen.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
app/src/assets/images/Gnar.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
app/src/assets/images/Graves.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
app/src/assets/images/Jayce.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
app/src/assets/images/Jinx.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
app/src/assets/images/Karthus.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
app/src/assets/images/Kassadin.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
app/src/assets/images/Katarina.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
app/src/assets/images/Kayle.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
app/src/assets/images/Kennen.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
app/src/assets/images/Khazix.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
app/src/assets/images/Kindred.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
app/src/assets/images/Leona.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
app/src/assets/images/Lissandra.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
app/src/assets/images/Lucian.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
app/src/assets/images/Lulu.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
app/src/assets/images/MissFortune.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
app/src/assets/images/Mordekaiser.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
app/src/assets/images/Morgana.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
app/src/assets/images/Nidalee.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
app/src/assets/images/Poppy.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
app/src/assets/images/Pyke.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
app/src/assets/images/RekSai.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
app/src/assets/images/Rengar.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
app/src/assets/images/Sejuani.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
app/src/assets/images/Shen.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
app/src/assets/images/Shyvana.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
app/src/assets/images/Swain.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
app/src/assets/images/Tristana.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
app/src/assets/images/TwistedFate.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
app/src/assets/images/Varus.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
app/src/assets/images/Vayne.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
app/src/assets/images/Veigar.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
app/src/assets/images/Vi.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
app/src/assets/images/Volibear.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
app/src/assets/images/Warwick.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
app/src/assets/images/Yasuo.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
app/src/assets/images/Zed.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
app/src/assets/images/assassin.png
Normal file
|
After Width: | Height: | Size: 744 B |
BIN
app/src/assets/images/blademaster.png
Normal file
|
After Width: | Height: | Size: 369 B |
BIN
app/src/assets/images/brawler.png
Normal file
|
After Width: | Height: | Size: 523 B |
BIN
app/src/assets/images/demon.png
Normal file
|
After Width: | Height: | Size: 530 B |
BIN
app/src/assets/images/dragon.png
Normal file
|
After Width: | Height: | Size: 654 B |
BIN
app/src/assets/images/elementalist.png
Normal file
|
After Width: | Height: | Size: 841 B |
BIN
app/src/assets/images/exile.png
Normal file
|
After Width: | Height: | Size: 617 B |
BIN
app/src/assets/images/glacial.png
Normal file
|
After Width: | Height: | Size: 685 B |
BIN
app/src/assets/images/guardian.png
Normal file
|
After Width: | Height: | Size: 497 B |
BIN
app/src/assets/images/gunslinger.png
Normal file
|
After Width: | Height: | Size: 692 B |
BIN
app/src/assets/images/hextech.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
app/src/assets/images/imperial.png
Normal file
|
After Width: | Height: | Size: 235 B |
BIN
app/src/assets/images/knight.png
Normal file
|
After Width: | Height: | Size: 714 B |
BIN
app/src/assets/images/logo.png
Normal file
|
After Width: | Height: | Size: 2.3 KiB |
BIN
app/src/assets/images/ninja.png
Normal file
|
After Width: | Height: | Size: 575 B |
BIN
app/src/assets/images/noble.png
Normal file
|
After Width: | Height: | Size: 385 B |
BIN
app/src/assets/images/phantom.png
Normal file
|
After Width: | Height: | Size: 555 B |
BIN
app/src/assets/images/pirate.png
Normal file
|
After Width: | Height: | Size: 914 B |
BIN
app/src/assets/images/ranger.png
Normal file
|
After Width: | Height: | Size: 689 B |
BIN
app/src/assets/images/robot.png
Normal file
|
After Width: | Height: | Size: 482 B |
BIN
app/src/assets/images/shapeshifter.png
Normal file
|
After Width: | Height: | Size: 495 B |
BIN
app/src/assets/images/sorcerer.png
Normal file
|
After Width: | Height: | Size: 475 B |
BIN
app/src/assets/images/void.png
Normal file
|
After Width: | Height: | Size: 866 B |
BIN
app/src/assets/images/wild.png
Normal file
|
After Width: | Height: | Size: 706 B |
BIN
app/src/assets/images/yordle.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
867
app/src/common/constants.ts
Normal file
|
|
@ -0,0 +1,867 @@
|
|||
import { Champion } from 'src/models/champion';
|
||||
import { Bonus } from 'src/models/bonus';
|
||||
|
||||
export class Constants {
|
||||
public static Champions: Champion [] = [
|
||||
{
|
||||
name: 'Aatrox',
|
||||
roles: [
|
||||
'demon',
|
||||
'blademaster'
|
||||
],
|
||||
cost: 3,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Ahri',
|
||||
roles: [
|
||||
'wild',
|
||||
'sorcerer'
|
||||
],
|
||||
cost: 2,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'AurelionSol',
|
||||
roles: [
|
||||
'dragon',
|
||||
'sorcerer'
|
||||
],
|
||||
cost: 4,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Anivia',
|
||||
roles: [
|
||||
'glacial',
|
||||
'elementalist'
|
||||
],
|
||||
cost: 5,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Ashe',
|
||||
roles: [
|
||||
'glacial',
|
||||
'ranger'
|
||||
],
|
||||
cost: 3,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Akali',
|
||||
roles: [
|
||||
'ninja',
|
||||
'assassin'
|
||||
],
|
||||
cost: 4,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Brand',
|
||||
roles: [
|
||||
'demon',
|
||||
'elementalist'
|
||||
],
|
||||
cost: 4,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Braum',
|
||||
roles: [
|
||||
'glacial',
|
||||
'guardian'
|
||||
],
|
||||
cost: 2,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Blitzcrank',
|
||||
roles: [
|
||||
'robot',
|
||||
'brawler'
|
||||
],
|
||||
cost: 2,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Chogath',
|
||||
roles: [
|
||||
'void',
|
||||
'brawler'
|
||||
],
|
||||
cost: 4,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Draven',
|
||||
roles: [
|
||||
'imperial',
|
||||
'blademaster'
|
||||
],
|
||||
cost: 4,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Darius',
|
||||
roles: [
|
||||
'imperial',
|
||||
'knight'
|
||||
],
|
||||
cost: 1,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
}
|
||||
,
|
||||
{
|
||||
name: 'Evelynn',
|
||||
roles: [
|
||||
'demon',
|
||||
'assassin'
|
||||
],
|
||||
cost: 1,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Elise',
|
||||
roles: [
|
||||
'demon',
|
||||
'shapeshifter'
|
||||
],
|
||||
cost: 1,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Fiora',
|
||||
roles: [
|
||||
'noble',
|
||||
'blademaster'
|
||||
],
|
||||
cost: 1,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Gnar',
|
||||
roles: [
|
||||
'wild',
|
||||
'yordle',
|
||||
'shapeshifter'
|
||||
],
|
||||
cost: 3,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Garen',
|
||||
roles: [
|
||||
'noble',
|
||||
'knight'
|
||||
],
|
||||
cost: 1,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Gangplank',
|
||||
roles: [
|
||||
'pirate',
|
||||
'gunslinger',
|
||||
'blademaster'
|
||||
],
|
||||
cost: 3,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Graves',
|
||||
roles: [
|
||||
'pirate',
|
||||
'gunslinger'
|
||||
],
|
||||
cost: 1,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Kayle',
|
||||
roles: [
|
||||
'noble',
|
||||
'knight'
|
||||
],
|
||||
cost: 5,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Karthus',
|
||||
roles: [
|
||||
'phantom',
|
||||
'sorcerer'
|
||||
],
|
||||
cost: 5,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Kennen',
|
||||
roles: [
|
||||
'ninja',
|
||||
'yordle',
|
||||
'elementalist'
|
||||
],
|
||||
cost: 3,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Katarina',
|
||||
roles: [
|
||||
'imperial',
|
||||
'assassin'
|
||||
],
|
||||
cost: 3,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Kindred',
|
||||
roles: [
|
||||
'phantom',
|
||||
'ranger'
|
||||
],
|
||||
cost: 4,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Kassadin',
|
||||
roles: [
|
||||
'void',
|
||||
'sorcerer'
|
||||
],
|
||||
cost: 1,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Khazix',
|
||||
roles: [
|
||||
'void',
|
||||
'assassin'
|
||||
],
|
||||
cost: 1,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Lissandra',
|
||||
roles: [
|
||||
'glacial',
|
||||
'elementalist'
|
||||
],
|
||||
cost: 2,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Lucian',
|
||||
roles: [
|
||||
'noble',
|
||||
'gunslinger'
|
||||
],
|
||||
cost: 2,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Lulu',
|
||||
roles: [
|
||||
'yordle',
|
||||
'sorcerer'
|
||||
],
|
||||
cost: 2,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Leona',
|
||||
roles: [
|
||||
'noble',
|
||||
'guardian'
|
||||
],
|
||||
cost: 4,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'MissFortune',
|
||||
roles: [
|
||||
'pirate',
|
||||
'gunslinger'
|
||||
],
|
||||
cost: 5,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Mordekaiser',
|
||||
roles: [
|
||||
'phantom',
|
||||
'knight'
|
||||
],
|
||||
cost: 1,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Morgana',
|
||||
roles: [
|
||||
'demon',
|
||||
'sorcerer'
|
||||
],
|
||||
cost: 3,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Nidalee',
|
||||
roles: [
|
||||
'wild',
|
||||
'shapeshifter'
|
||||
],
|
||||
cost: 1,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Pyke',
|
||||
roles: [
|
||||
'pirate',
|
||||
'assassin'
|
||||
],
|
||||
cost: 2,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Poppy',
|
||||
roles: [
|
||||
'yordle',
|
||||
'knight'
|
||||
],
|
||||
cost: 3,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Rengar',
|
||||
roles: [
|
||||
'wild',
|
||||
'assassin'
|
||||
],
|
||||
cost: 3,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'RekSai',
|
||||
roles: [
|
||||
'void',
|
||||
'brawler'
|
||||
],
|
||||
cost: 2,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Swain',
|
||||
roles: [
|
||||
'demon',
|
||||
'imperial',
|
||||
'shapeshifter'
|
||||
],
|
||||
cost: 5,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Sejuani',
|
||||
roles: [
|
||||
'glacial',
|
||||
'knight'
|
||||
],
|
||||
cost: 4,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Shen',
|
||||
roles: [
|
||||
'ninja',
|
||||
'blademaster'
|
||||
],
|
||||
cost: 2,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Shyvana',
|
||||
roles: [
|
||||
'dragon',
|
||||
'shapeshifter'
|
||||
],
|
||||
cost: 3,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'TwistedFate',
|
||||
roles: [
|
||||
'pirate',
|
||||
'sorcerer'
|
||||
],
|
||||
cost: 2,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Tristana',
|
||||
roles: [
|
||||
'yordle',
|
||||
'gunslinger'
|
||||
],
|
||||
cost: 1,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Varus',
|
||||
roles: [
|
||||
'demon',
|
||||
'ranger'
|
||||
],
|
||||
cost: 2,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Vayne',
|
||||
roles: [
|
||||
'noble',
|
||||
'ranger'
|
||||
],
|
||||
cost: 1,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Veigar',
|
||||
roles: [
|
||||
'yordle',
|
||||
'sorcerer'
|
||||
],
|
||||
cost: 3,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Volibear',
|
||||
roles: [
|
||||
'glacial',
|
||||
'brawler'
|
||||
],
|
||||
cost: 3,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Warwick',
|
||||
roles: [
|
||||
'wild',
|
||||
'brawler',
|
||||
],
|
||||
cost: 1,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Yasuo',
|
||||
roles: [
|
||||
'exile',
|
||||
'blademaster'
|
||||
],
|
||||
cost: 5,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Zed',
|
||||
roles: [
|
||||
'ninja',
|
||||
'assassin'
|
||||
],
|
||||
cost: 2,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Camille',
|
||||
roles: [
|
||||
'hextech',
|
||||
'blademaster'
|
||||
],
|
||||
cost: 1,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Jayce',
|
||||
roles: [
|
||||
'hextech',
|
||||
'shapeshifter'
|
||||
],
|
||||
cost: 2,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Jinx',
|
||||
roles: [
|
||||
'hextech',
|
||||
'gunslinger'
|
||||
],
|
||||
cost: 4,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
},
|
||||
{
|
||||
name: 'Vi',
|
||||
roles: [
|
||||
'hextech',
|
||||
'brawler'
|
||||
],
|
||||
cost: 2,
|
||||
isSelected: false,
|
||||
sinergy: false
|
||||
}
|
||||
];
|
||||
public static championName = 'name';
|
||||
public static roles = [
|
||||
'demon',
|
||||
'blademaster',
|
||||
'imperial',
|
||||
'assassin',
|
||||
'shapeshifter',
|
||||
'wild',
|
||||
'noble',
|
||||
'ranger',
|
||||
'sorcerer',
|
||||
'yordle',
|
||||
'knight',
|
||||
'ninja',
|
||||
'elementalist',
|
||||
'pirate',
|
||||
'hextech',
|
||||
'brawler',
|
||||
'glacial',
|
||||
'void',
|
||||
'exile',
|
||||
'dragon',
|
||||
'gunslinger',
|
||||
'phantom',
|
||||
'guardian',
|
||||
'robot'
|
||||
];
|
||||
public static bonuses: Bonus [] = [
|
||||
{
|
||||
description: 'Demon basic attacks have a 40% chance to burn 20 mana from their target and return 15 mana to the attacker',
|
||||
role: 'demon',
|
||||
units: 2,
|
||||
maxUnits: 6
|
||||
},
|
||||
{
|
||||
description: 'Demon basic attacks have a 40% chance to burn 20 mana from their target and return 30 mana to the attacker',
|
||||
role: 'demon',
|
||||
units: 4,
|
||||
maxUnits: 6
|
||||
},
|
||||
{
|
||||
description: 'Demon basic attacks have a 40% chance to burn 20 mana from their target and return 45 mana to the attacker',
|
||||
role: 'demon',
|
||||
units: 6,
|
||||
maxUnits: 6
|
||||
},
|
||||
{
|
||||
description: 'Dragons are 83% inmune to Magic Damage',
|
||||
role: 'dragon',
|
||||
units: 2,
|
||||
maxUnits: 2
|
||||
},
|
||||
{
|
||||
description: 'Exiles start combat with a shield equal to 100% max HP when placed adjacent to NO other units',
|
||||
role: 'exile',
|
||||
units: 1,
|
||||
maxUnits: 1
|
||||
},
|
||||
{
|
||||
description: 'Glacial units have a 25% chance to stun on hit for two seconds',
|
||||
role: 'glacial',
|
||||
units: 2,
|
||||
maxUnits: 6
|
||||
},
|
||||
{
|
||||
description: 'Glacial units have a 35% chance to stun on hit for two seconds',
|
||||
role: 'glacial',
|
||||
units: 4,
|
||||
maxUnits: 6
|
||||
},
|
||||
{
|
||||
description: 'Glacial units have a 45% chance to stun on hit for two seconds',
|
||||
role: 'glacial',
|
||||
units: 6,
|
||||
maxUnits: 6
|
||||
},
|
||||
{
|
||||
description: 'Robots start combat with full mana',
|
||||
role: 'robot',
|
||||
units: 1,
|
||||
maxUnits: 1
|
||||
},
|
||||
{
|
||||
description: 'Double damage for one random Imperial',
|
||||
role: 'imperial',
|
||||
units: 2,
|
||||
maxUnits: 4
|
||||
},
|
||||
{
|
||||
description: 'Double damage for all Imperials',
|
||||
role: 'imperial',
|
||||
units: 4,
|
||||
maxUnits: 4
|
||||
},
|
||||
{
|
||||
description: '+60 Armor and magic resist, heal 35 on hit for random ally',
|
||||
role: 'noble',
|
||||
units: 3,
|
||||
maxUnits: 6
|
||||
},
|
||||
{
|
||||
description: '+60 Armor and magic resist, heal 35 on hit for all allies',
|
||||
role: 'noble',
|
||||
units: 6,
|
||||
maxUnits: 6
|
||||
},
|
||||
{
|
||||
description: 'Exactly 1: +60 attack damage and ability power for one Ninja',
|
||||
role: 'ninja',
|
||||
units: 1,
|
||||
maxUnits: 4
|
||||
},
|
||||
{
|
||||
description: 'Exactly 4: +70 attack damage and ability power for your Ninjas',
|
||||
role: 'ninja',
|
||||
units: 4,
|
||||
maxUnits: 4
|
||||
},
|
||||
{
|
||||
description: 'You earn up to 4 additional gold from each PVP round, average 1.75 gold',
|
||||
role: 'pirate',
|
||||
units: 3,
|
||||
maxUnits: 3
|
||||
},
|
||||
{
|
||||
description: 'Curse a random enemy at the start of combat, setting their HP to 100',
|
||||
role: 'phantom',
|
||||
units: 2,
|
||||
maxUnits: 2
|
||||
},
|
||||
{
|
||||
description: `Each unit's attacks give then Fury (5 stack cap). Stacks give 12% attack speed. For Wild`,
|
||||
role: 'wild',
|
||||
units: 2,
|
||||
maxUnits: 4
|
||||
},
|
||||
{
|
||||
description: `Each unit's attacks give then Fury (5 stack cap). Stacks give 12% attack speed. For team`,
|
||||
role: 'wild',
|
||||
units: 4,
|
||||
maxUnits: 4
|
||||
},
|
||||
{
|
||||
description: 'Void units deal true damage',
|
||||
role: 'void',
|
||||
units: 3,
|
||||
maxUnits: 3
|
||||
},
|
||||
{
|
||||
description: 'Attacks against your Yordles have a 30% chance to miss, also dodges on-hit effects',
|
||||
role: 'yordle',
|
||||
units: 3,
|
||||
maxUnits: 6
|
||||
},
|
||||
{
|
||||
description: 'Attacks against your Yordles have a 55% chance to miss, also dodges on-hit effects',
|
||||
role: 'yordle',
|
||||
units: 6,
|
||||
maxUnits: 6
|
||||
},
|
||||
{
|
||||
description: '+125% crit damage for Assassins',
|
||||
role: 'assassin',
|
||||
units: 3,
|
||||
maxUnits: 6
|
||||
},
|
||||
{
|
||||
description: '+350% crit damage for Assassins',
|
||||
role: 'assassin',
|
||||
units: 6,
|
||||
maxUnits: 6
|
||||
},
|
||||
{
|
||||
description: 'Blademasters attack 1 extra time',
|
||||
role: 'blademaster',
|
||||
units: 3,
|
||||
maxUnits: 9
|
||||
},
|
||||
{
|
||||
description: 'Blademasters attack 2 extra times',
|
||||
role: 'blademaster',
|
||||
units: 6,
|
||||
maxUnits: 9
|
||||
},
|
||||
{
|
||||
description: 'Blademasters attack 4 extra times',
|
||||
role: 'blademaster',
|
||||
units: 9,
|
||||
maxUnits: 9
|
||||
},
|
||||
{
|
||||
description: '+300 health to Brawlers',
|
||||
role: 'brawler',
|
||||
units: 2,
|
||||
maxUnits: 6
|
||||
},
|
||||
{
|
||||
description: '+600 health to Brawlers',
|
||||
role: 'brawler',
|
||||
units: 4,
|
||||
maxUnits: 6
|
||||
},
|
||||
{
|
||||
description: '+1000 health to Brawlers',
|
||||
role: 'brawler',
|
||||
units: 6,
|
||||
maxUnits: 6
|
||||
},
|
||||
{
|
||||
description: 'Each combat, summon a golem with 2200 hp',
|
||||
role: 'elementalist',
|
||||
units: 3,
|
||||
maxUnits: 3
|
||||
},
|
||||
{
|
||||
description: `+50 Armor to allies that start combat adjacent to them, guardians don't buff themselves`,
|
||||
role: 'guardian',
|
||||
units: 2,
|
||||
maxUnits: 2
|
||||
},
|
||||
{
|
||||
description: '50% chance on attack to attack one additional target in range',
|
||||
role: 'gunslinger',
|
||||
units: 2,
|
||||
maxUnits: 6
|
||||
},
|
||||
{
|
||||
description: '50% chance on attack to attack two additional targets in range',
|
||||
role: 'gunslinger',
|
||||
units: 4,
|
||||
maxUnits: 6
|
||||
},
|
||||
{
|
||||
description: '50% chance on attack to attack three additional targets in range',
|
||||
role: 'gunslinger',
|
||||
units: 6,
|
||||
maxUnits: 6
|
||||
},
|
||||
{
|
||||
description: 'Your team ignores 15 damage from all sources',
|
||||
role: 'knight',
|
||||
units: 2,
|
||||
maxUnits: 6
|
||||
},
|
||||
{
|
||||
description: 'Your team ignores 30 damage from all sources',
|
||||
role: 'knight',
|
||||
units: 4,
|
||||
maxUnits: 6
|
||||
},
|
||||
{
|
||||
description: 'Your team ignores 55 damage from all sources',
|
||||
role: 'knight',
|
||||
units: 6,
|
||||
maxUnits: 6
|
||||
},
|
||||
{
|
||||
description: 'Every 3 seconds, Rangers have a 25% chance to double their attack speed for 3s',
|
||||
role: 'ranger',
|
||||
units: 2,
|
||||
maxUnits: 4
|
||||
},
|
||||
{
|
||||
description: 'Every 3 seconds Rangers have a 65% chance to double their attack speed for 3s',
|
||||
role: 'ranger',
|
||||
units: 4,
|
||||
maxUnits: 4
|
||||
},
|
||||
{
|
||||
description: 'On transform gain 60% max HP',
|
||||
role: 'shapeshifter',
|
||||
units: 3,
|
||||
maxUnits: 6
|
||||
},
|
||||
{
|
||||
description: 'On transform gain 120% max HP',
|
||||
role: 'shapeshifter',
|
||||
units: 3,
|
||||
maxUnits: 6
|
||||
},
|
||||
{
|
||||
description: 'Your team has +40 Ability Power',
|
||||
role: 'sorcerer',
|
||||
units: 3,
|
||||
maxUnits: 6
|
||||
},
|
||||
{
|
||||
description: 'Your team has +100 Ability Power',
|
||||
role: 'sorcerer',
|
||||
units: 6,
|
||||
maxUnits: 6
|
||||
},
|
||||
{
|
||||
description: 'Throw a bomb at an enemy unit with an item, and disables all items in a 1 hex radius for 8 seconds.',
|
||||
role: 'hextech',
|
||||
units: 2,
|
||||
maxUnits: 4
|
||||
},
|
||||
{
|
||||
description: 'Throw a bomb at an enemy unit with an item, and disables all items in a 2 hex radius for 8 seconds.',
|
||||
role: 'hextech',
|
||||
units: 4,
|
||||
maxUnits: 4
|
||||
}
|
||||
];
|
||||
}
|
||||