├── Server
├── Database
│ └── .gitkeep
├── Networking
│ └── index.js
└── DatabaseManager
│ └── index.js
├── Titan
├── BitStream
│ └── .gitkeep
├── Cryptography
│ └── .gitkeep
└── ByteStream
│ ├── ByteArray.js
│ └── index.js
├── .gitignore
├── start.bat
├── .gitattributes
├── Logic
├── Instances
│ ├── Alliance.js
│ ├── Server.js
│ └── Player.js
├── Protocol
│ ├── Commands
│ │ ├── Avatar
│ │ │ └── LogicChangeAvatarNameCommand.js
│ │ └── Home
│ │ │ ├── Server
│ │ │ └── LogicGiveDeliveryItems.js
│ │ │ └── Client
│ │ │ └── LogicPurchaseCommand.js
│ ├── Messages
│ │ ├── Server
│ │ │ ├── KeepAliveOKMessage.js
│ │ │ ├── ServerHelloMessage.js
│ │ │ ├── OwnHomeDataMessage.js
│ │ │ ├── AvailableServerCommandMessage.js
│ │ │ └── LoginOkMessage.js
│ │ └── Client
│ │ │ ├── GoHomeFromOfflinePractiseMessage.js
│ │ │ ├── KeepAliveMessage.js
│ │ │ ├── ClientHelloMessage.js
│ │ │ ├── EndClientTurnMessage.js
│ │ │ ├── ChangeAvatarNameMessage.js
│ │ │ └── LoginMessage.js
│ ├── PiranhaMessage.js
│ └── MessageFactory.js
├── Home
│ ├── ClientHome.js
│ ├── Logic
│ │ ├── LogicShopData.js
│ │ ├── LogicConfData.js
│ │ └── LogicDailyData.js
│ └── ClientAvatar.js
└── Assets
│ ├── Csvreader.js
│ └── Files
│ └── csv_logic
│ ├── characters.csv
│ └── cards.csv
├── package.json
└── README.md
/Server/Database/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/Titan/BitStream/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/Titan/Cryptography/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | *.db
3 |
--------------------------------------------------------------------------------
/start.bat:
--------------------------------------------------------------------------------
1 | cd Server/Networking
2 | node index.js
3 | pause
4 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/Logic/Instances/Alliance.js:
--------------------------------------------------------------------------------
1 | class Alliance{
2 | id = 0
3 | tick = 0
4 |
5 | constructor(){
6 | }
7 | }
8 | module.exports = Alliance
--------------------------------------------------------------------------------
/Logic/Protocol/Commands/Avatar/LogicChangeAvatarNameCommand.js:
--------------------------------------------------------------------------------
1 |
2 | class LogicChangeAvatarNameCommand{
3 | encode(self){
4 | self.writeString(self.player.name)// Name
5 | self.writeVInt(0)// Name Cost
6 | }
7 |
8 |
9 |
10 | constructor(){
11 | }
12 | }
13 |
14 | module.exports = LogicChangeAvatarNameCommand
--------------------------------------------------------------------------------
/Logic/Protocol/Messages/Server/KeepAliveOKMessage.js:
--------------------------------------------------------------------------------
1 | const PiranhaMessage = require('../../PiranhaMessage')
2 |
3 | class KeepAliveOKMessage extends PiranhaMessage {
4 | constructor (client) {
5 | super()
6 | this.id = 20108
7 | this.client = client
8 | this.version = 0
9 | }
10 |
11 | async encode () {
12 |
13 | }
14 | }
15 |
16 | module.exports = KeepAliveOKMessage
17 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "bsjss",
3 | "version": "0.0.1",
4 | "description": "A Brawl Stars Server Emulator by Lwitchy. Based on nodebrawl-core v2.3.1",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "author": "Lwitchy",
10 | "license": "ISC",
11 | "dependencies": {
12 | "crypto": "^1.0.1",
13 | "csv": "^6.2.7",
14 | "sqlite3": "^5.1.4"
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/Logic/Protocol/Messages/Server/ServerHelloMessage.js:
--------------------------------------------------------------------------------
1 | const PiranhaMessage = require('../../PiranhaMessage')
2 |
3 | class ServerHelloMessage extends PiranhaMessage {
4 | constructor (client) {
5 | super()
6 | this.id = 20100
7 | this.client = client
8 | this.version = 0
9 | }
10 |
11 | async encode () {
12 | this.writeInt(24)
13 | for (let i = 0; i < 24; i++)
14 | { this.writeByte(1) }
15 | }
16 | }
17 |
18 | module.exports = ServerHelloMessage
--------------------------------------------------------------------------------
/Logic/Protocol/PiranhaMessage.js:
--------------------------------------------------------------------------------
1 | const ByteStream = require('../../Titan/ByteStream')
2 |
3 |
4 | class PiranhaMessage extends ByteStream{
5 | constructor(bytes){
6 | super(bytes)
7 | this.id = 0
8 | this.client = null
9 | this.version = 0
10 | this.player = null
11 | }
12 | encode(){
13 |
14 | };
15 |
16 | decode(){
17 |
18 | };
19 |
20 | process(){
21 |
22 | }
23 |
24 | }
25 |
26 | module.exports = PiranhaMessage
--------------------------------------------------------------------------------
/Logic/Protocol/Messages/Client/GoHomeFromOfflinePractiseMessage.js:
--------------------------------------------------------------------------------
1 | const PiranhaMessage = require('../../PiranhaMessage')
2 | const OwnHomeDataMessage = require('../Server/OwnHomeDataMessage')
3 |
4 | class GoHomeFromOfflinePractiseMessage extends PiranhaMessage {
5 | constructor (bytes, client, player) {
6 | super(bytes)
7 | this.client = client
8 | this.player = player
9 | this.id = 14109
10 | this.version = 0
11 | }
12 |
13 | async decode () {
14 |
15 | }
16 |
17 | async process () {
18 | new OwnHomeDataMessage(this.client, this.player).send()
19 | }
20 | }
21 |
22 | module.exports = GoHomeFromOfflinePractiseMessage
23 |
--------------------------------------------------------------------------------
/Logic/Protocol/Messages/Client/KeepAliveMessage.js:
--------------------------------------------------------------------------------
1 | const PiranhaMessage = require('../../PiranhaMessage')
2 | const KeepAliveOKMessage = require('../Server/KeepAliveOKMessage')
3 | //const LobbyInfoMessage = require('../Server/LobbyInfoMessage')
4 |
5 | class KeepAliveMessage extends PiranhaMessage {
6 | constructor (bytes, client, player) {
7 | super(bytes)
8 | this.client = client
9 | this.player = player
10 | this.id = 10108
11 | this.version = 0
12 | }
13 |
14 | async decode () {
15 |
16 | }
17 |
18 | async process () {
19 | new KeepAliveOKMessage(this.client, this.player).send()
20 | //new LobbyInfoMessage(this.client, this.player).send()
21 | }
22 | }
23 |
24 | module.exports = KeepAliveMessage
25 |
--------------------------------------------------------------------------------
/Logic/Home/ClientHome.js:
--------------------------------------------------------------------------------
1 | const LogicDailyData = require('./Logic/LogicDailyData')
2 | const LogicConfData = require('./Logic/LogicConfData')
3 |
4 | class ClientHome{
5 | encode(self){
6 | new LogicDailyData().encode(self)
7 | new LogicConfData().encode(self)
8 |
9 | // Client Home Start
10 | self.writeInt(0) // PlayerID
11 | self.writeInt(self.player.low_id) // PlayerID
12 |
13 | self.writeVInt(0) // Notification Factory
14 |
15 | self.writeVInt(-64) // VideoAdStarted
16 | self.writeBoolean(false)
17 | self.writeVInt(0) // Gatcha Drop
18 | self.writeVInt(0) // FriendlyStarPower
19 | // Client Home End
20 |
21 | }
22 | }
23 |
24 | module.exports = ClientHome
--------------------------------------------------------------------------------
/Logic/Protocol/Messages/Server/OwnHomeDataMessage.js:
--------------------------------------------------------------------------------
1 | const PiranhaMessage = require('../../PiranhaMessage')
2 | const ClientHome = require('../../../Home/ClientHome')
3 | const ClientAvatar = require('../../../Home/ClientAvatar')
4 |
5 |
6 |
7 | class OwnHomeData extends PiranhaMessage{
8 | constructor(client, player, serverSettings){
9 | super()
10 | this.id = 24101
11 | this.client = client
12 | this.player = player
13 | this.serverSettings = serverSettings
14 | this.version = 1
15 | this.timestamp = Math.floor(Date.now() / 1000)
16 | }
17 |
18 | async encode(){
19 | new ClientHome().encode(this)
20 | new ClientAvatar().encode(this)
21 | }
22 | }
23 |
24 | module.exports = OwnHomeData
--------------------------------------------------------------------------------
/Logic/Protocol/MessageFactory.js:
--------------------------------------------------------------------------------
1 | const fs = require('fs')
2 |
3 |
4 | class MessageFactory{
5 | constructor () {
6 | this.packets = {}
7 |
8 | fs.readdir('../../Logic/Protocol/Messages/Client', (err, files) => {
9 | if (err)console.log(err)
10 | files.forEach(e => {
11 | try{
12 | const Packet = require(`./Messages/Client/${e.replace('.js', '')}`)
13 | const packetClass = new Packet()
14 |
15 | this.packets[packetClass.id] = Packet
16 | }catch(err){
17 | console.log(`Error Occured when try to load package "${e.replace(".js", "")}" packet!`)
18 | console.log(err)
19 | }
20 | })
21 | })
22 | }
23 | handle (id) {
24 | return this.packets[id]
25 | };
26 |
27 | getPackets () {
28 | return Object.keys(this.packets)
29 | }
30 | }
31 |
32 | module.exports = MessageFactory
--------------------------------------------------------------------------------
/Logic/Protocol/Messages/Client/ClientHelloMessage.js:
--------------------------------------------------------------------------------
1 | const PiranhaMessage = require('../../PiranhaMessage')
2 | const ServerHelloMessage = require('../Server/ServerHelloMessage')
3 |
4 |
5 | class ClientHelloMessage extends PiranhaMessage{
6 | constructor(bytes, client, player, db){
7 | super(bytes)
8 | this.client = client
9 | this.player = player
10 | this.db = db
11 | this.id = 10100
12 | this.version = 0
13 | }
14 |
15 | async decode(){
16 | this.protocol = this.readInt()
17 | this.key_version = this.readInt()
18 | this.major_version = this.readInt()
19 | this.minor_version = this.readInt()
20 | this.build_version = this.readInt()
21 | this.content_hash = this.readString()
22 | this.device_type = this.readInt()
23 | this.app_store = this.readInt()
24 | }
25 |
26 | async process(){
27 | new ServerHelloMessage(this.client).send()
28 | }
29 | }
30 |
31 | module.exports = ClientHelloMessage
--------------------------------------------------------------------------------
/Logic/Protocol/Messages/Client/EndClientTurnMessage.js:
--------------------------------------------------------------------------------
1 | const PiranhaMessage = require('../../PiranhaMessage')
2 | const LogicPurchaseCommand = require('../../Commands/Home/Client/LogicPurchaseCommand')
3 |
4 | class EndClientTurnMessage extends PiranhaMessage{
5 | constructor(bytes, client, player, db){
6 | super(bytes)
7 | this.client = client
8 | this.player = player
9 | this.db = db
10 | this.id = 14102
11 | this.version = 0
12 | }
13 | async decode(){
14 | this.readVInt()
15 | this.readVInt()
16 | this.readVInt()
17 | this.readVInt()
18 | this.command_id = this.readVInt()
19 | }
20 | async process(){
21 | var commands = {
22 | 519: LogicPurchaseCommand
23 | }
24 |
25 | if(this.command_id in commands){
26 | var command = new commands[this.command_id]
27 | command.decode(this)
28 | command.process(this, this.db)
29 | }
30 | }
31 | }
32 |
33 | module.exports = EndClientTurnMessage
--------------------------------------------------------------------------------
/Logic/Protocol/Messages/Server/AvailableServerCommandMessage.js:
--------------------------------------------------------------------------------
1 | const PiranhaMessage = require('../../PiranhaMessage')
2 | const LogicChangeAvatarNameCommand = require('../../Commands/Avatar/LogicChangeAvatarNameCommand')
3 | const LogicGiveDeliveryItems = require('../../Commands/Home/Server/LogicGiveDeliveryItems')
4 |
5 | class AvailableServerCommandMessage extends PiranhaMessage {
6 | constructor (client, player, command_id) {
7 | super()
8 | this.id = 24111
9 | this.client = client
10 | this.player = player
11 | this.command_id = command_id
12 | this.version = 0
13 | }
14 |
15 | async encode () {
16 | var commands = {
17 | 201: LogicChangeAvatarNameCommand,
18 | 203: LogicGiveDeliveryItems
19 | }
20 |
21 | if(this.command_id in commands){
22 |
23 | this.writeVInt(this.command_id)
24 | new commands[this.command_id]().encode(this)
25 |
26 | /*if(this.command_id == 201){
27 | new LogicChangeAvatarNameCommand().encode(this)
28 | }*/
29 | }
30 | }
31 | }
32 |
33 | module.exports = AvailableServerCommandMessage
--------------------------------------------------------------------------------
/Logic/Protocol/Messages/Client/ChangeAvatarNameMessage.js:
--------------------------------------------------------------------------------
1 | const PiranhaMessage = require('../../PiranhaMessage')
2 | const AvailableServerCommandMessage = require('../Server/AvailableServerCommandMessage')
3 |
4 | class ChangeAvatarNameMessage extends PiranhaMessage{
5 | constructor(bytes, client, player, db){
6 | super(bytes)
7 | this.client = client
8 | this.player = player
9 | this.db = db
10 | this.id = 10212
11 | }
12 | async decode(){
13 | this.username = this.readString()
14 | this.state = this.readVInt()
15 | }
16 | async process(){
17 | if(this.username){
18 | if(this.username.length > 3 && this.username.length < 20){
19 | this.player.name = this.username
20 | await this.db.update_data(0, this.player.low_id, this.player.token, 'name', this.player.name)
21 | await this.db.update_data(0, this.player.low_id, this.player.token, 'name_set', true)
22 | new AvailableServerCommandMessage(this.client, this.player, 201).send()
23 | }
24 | }
25 | }
26 | }
27 |
28 | module.exports = ChangeAvatarNameMessage
--------------------------------------------------------------------------------
/Logic/Instances/Server.js:
--------------------------------------------------------------------------------
1 | const CSVReader = require('../../Logic/Assets/Csvreader')
2 |
3 | class Server{
4 | server_port = 9339
5 |
6 | // CSV Data
7 | all_brawlers = []
8 | all_brawlers_card_id = {}
9 | all_skins = []
10 |
11 | loadCsvData(){
12 | const csvreader = new CSVReader()
13 | csvreader.loadAllBrawlers()
14 | .then((data)=>{
15 | this.all_brawlers = data;
16 | console.log("[INFO]:",this.all_brawlers.length, "Brawler Loaded.");
17 | })
18 | .then(()=>{
19 | const promises = [];
20 | for (var x = 0; x < this.all_brawlers.length; x++) {
21 | (function(w) {
22 | const promise = csvreader.loadCardID(this.all_brawlers[x]).then((index) => {
23 | this.all_brawlers_card_id[w] = index
24 | });
25 | promises.push(promise);
26 | }).call(this, x)
27 | }
28 | return Promise.all(promises);
29 | }).then(()=>{
30 | //finished
31 | console.log("[INFO]: Card IDs Loaded.")
32 | })
33 | }
34 |
35 | constructor(){
36 | }
37 | }
38 |
39 | module.exports = Server
--------------------------------------------------------------------------------
/Logic/Protocol/Messages/Server/LoginOkMessage.js:
--------------------------------------------------------------------------------
1 | const PiranhaMessage = require('../../PiranhaMessage')
2 |
3 |
4 | class LoginOkMessage extends PiranhaMessage{
5 | constructor(client, player, low_id, token){
6 | super()
7 | this.id = 20104
8 | this.client = client
9 | this.player = player
10 | this.version = 0
11 | }
12 |
13 | async encode(){
14 | this.writeLong(0, this.player.low_id)
15 | this.writeLong(0, this.player.low_id)
16 |
17 | this.writeString(this.player.token)// Tokenki
18 | this.writeString()// Facebook ID
19 | this.writeString()// Gamecenter ID (ios moment)
20 |
21 | // Versions
22 | this.writeInt(29)// Major
23 | this.writeInt(98)// Minor
24 | this.writeInt(1)// Build
25 |
26 | this.writeString("prod")// Environment
27 |
28 | this.writeInt(0)// Sessions Count
29 | this.writeInt(0)// Play Time Seconds
30 | this.writeInt(0)// Days Since Started Playing
31 |
32 | this.writeString()
33 | this.writeString()
34 | this.writeString()
35 |
36 | this.writeInt()
37 |
38 | this.writeString()
39 |
40 | this.writeString("AZ")// Region
41 | this.writeString()
42 |
43 | this.writeInt(1)
44 |
45 | this.writeString()
46 | this.writeString()
47 | this.writeString()
48 |
49 | this.writeVInt(0)
50 |
51 | this.writeString()
52 |
53 | this.writeVInt(1)
54 |
55 | }
56 | }
57 |
58 | module.exports = LoginOkMessage
--------------------------------------------------------------------------------
/Logic/Home/Logic/LogicShopData.js:
--------------------------------------------------------------------------------
1 | class LogicShopData{
2 |
3 | encode(self){
4 | var offers = self.player.offers
5 | var offer_length = offers.length
6 |
7 | // SHOP
8 | self.writeVInt(offer_length)
9 |
10 | // Rewards
11 | for(var i in offers){
12 | self.writeVInt(1)
13 |
14 | self.writeVInt(offers[i]['ID'])// ID
15 | self.writeVInt(offers[i]['Count'])// Count
16 | self.writeDataReference(offers[i]['DataReference'][0],offers[i]['DataReference'][1])
17 | self.writeVInt(offers[i]['ItemID'])// ItemID
18 |
19 | self.writeVInt(offers[i]['Currency'])// Currency (0-Gems,1-Gold,3-StarPoints)
20 | self.writeVInt(offers[i]['Cost'])// Cost
21 | self.writeVInt(200)// Time
22 | self.writeVInt(offers[i]['State'])// State (0-New with Animations, 1-New, 2-Nothing)
23 | self.writeVInt(0)
24 | self.writeBoolean(false)// Who Buyed
25 | self.writeVInt(0)// Offer Index
26 | self.writeVInt(0)
27 | self.writeBoolean(offers[i]['isDaily'])// isDaily?
28 | self.writeVInt(offers[i]['oldCost'])// OldPrice
29 | self.writeInt(0)
30 | self.writeString(offers[i]['offerText'])// Offer Text
31 | self.writeBoolean(false)
32 | self.writeString(offers[i]['offerBGR'])// Offer Background
33 | self.writeVInt(0)
34 | self.writeBoolean(offers[i]['isProcess'])// isProcess
35 | self.writeVInt(offers[i]['ExtraType'])// ExtraType
36 | self.writeVInt(offers[i]['Extra'])// Extra
37 | self.writeString()
38 | self.writeBoolean(offers[i]['isOneTimePurchase'])// isOneTimePurchase
39 | // SHOP
40 | }
41 | }
42 | }
43 |
44 | module.exports = LogicShopData
--------------------------------------------------------------------------------
/Logic/Protocol/Commands/Home/Server/LogicGiveDeliveryItems.js:
--------------------------------------------------------------------------------
1 |
2 |
3 | class LogicGiveDeliveryItems{
4 | encode(self){
5 | self.writeVInt(0)
6 | self.writeVInt(self.player.delivery_items['Count'])
7 |
8 | for(var i = 0; i < self.player.delivery_items.Count; i++){
9 | var type = self.player.delivery_items['Type']
10 | self.writeVInt(type)
11 |
12 | if(type !== 100){
13 | if(type == 10){
14 | // Brawl Box
15 | }
16 | if(type == 11){
17 | // Mega Box
18 | }
19 | if(type == 12){
20 | // Big Box
21 | }
22 | }else{
23 | var rewards = self.player.delivery_items['Items']
24 | }
25 |
26 | self.writeVInt(rewards.length)
27 | for(var x in rewards){
28 | self.writeVInt(rewards[x]['Amount'])
29 | self.writeVInt(rewards[x]['DataRef'][0], rewards[x]['DataRef'][1])
30 | self.writeVInt(rewards[x]['Value'])
31 | self.writeDataReference(rewards[x]['SkinID'][0], rewards[x]['SkinID'][1])
32 | self.writeDataReference(rewards[x]['PinID'][0], rewards[x]['PinID'][1])
33 | self.writeDataReference(rewards[x]['SPGID'][0], rewards[x]['SPGID'][1])
34 | self.writeVInt(0)
35 | }
36 | }
37 |
38 | self.writeBoolean(false)
39 |
40 | self.writeVInt(0)// milstoneid
41 | self.writeVInt(0)// milstone track
42 | self.writeVInt(0)
43 | self.writeVInt(0)
44 | self.writeVInt(0)// season end ril
45 | self.writeVInt(0)
46 |
47 | self.writeVInt(0)
48 | self.writeVInt(0)
49 | }
50 |
51 | constructor() {
52 | }
53 | }
54 | module.exports = LogicGiveDeliveryItems
--------------------------------------------------------------------------------
/Logic/Instances/Player.js:
--------------------------------------------------------------------------------
1 | class Player {
2 | state = 1
3 |
4 | low_id = 0
5 | high_id = 0
6 | token = "None"
7 |
8 | // Player Information
9 | name = "Player"
10 | name_set = false
11 | gems = 0
12 | coins = 0
13 | starpoints = 0
14 | exp_points = 0
15 | trophies = 0
16 | highest_trophies = 0
17 | trophyroad_reward = 1
18 | name_color = 0
19 | profile_icon = 0
20 | region = "AZ"
21 | content_creator = "BSJSS"
22 | inbox = []
23 | offers = [
24 | {
25 | "ID": 4,
26 | "Count": 1,
27 | "DataReference": [0, 0],
28 | "ItemID": 52,
29 | "Currency": 0,
30 | "Cost": 0,
31 | "State": 0,
32 | "isDaily": false,
33 | "oldCost": 0,
34 | "offerText": "",
35 | "offerBGR": "",
36 | "isProcess": false,
37 | "ExtraType": 0,
38 | "Extra": 0,
39 | "isOneTimePurchase": false
40 | }
41 |
42 | ]
43 |
44 |
45 | // Unlocked Data
46 | unlocked_brawlers = [0,8]
47 | unlocked_skins = []
48 | unlocked_pins = []
49 | unlocked_thumbnails = []
50 | unlocked_gadgets = []
51 |
52 | // Selected Data
53 | selected_brawler = 0
54 | selected_skins = {}
55 | selected_gadgets = {}
56 |
57 | // Brawlers Data
58 | brawlers_trophies = {}
59 | brawlers_high_trophies = {}
60 | brawlers_level = {}
61 | brawlers_powerpoints = {}
62 |
63 |
64 | delivery_items = {}
65 |
66 |
67 | update_brawler_data(){
68 | for (let x of this.unlocked_brawlers) {
69 | this.brawlers_trophies[x.toString()] = 0;
70 | }
71 | for (let x of this.unlocked_brawlers) {
72 | this.brawlers_high_trophies[x.toString()] = 0;
73 | }
74 | for (let x of this.unlocked_brawlers) {
75 | this.brawlers_level[x.toString()] = 0;
76 | }
77 | for (let x of this.unlocked_brawlers) {
78 | this.brawlers_powerpoints[x.toString()] = 0;
79 | }
80 |
81 | }
82 |
83 | constructor(){
84 | }
85 | }
86 | module.exports = Player
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # ABANDONED PROJECT - I do not suggest you to use this, I don't have idea to continue this project maybe if some miracle happens
2 | # NOTE
3 | This content is not affiliated with, endorsed, sponsored, or specifically approved by Supercell and Supercell is not responsible for it. For more information see Supercell’s Fan Content Policy
4 | # PROJECT-BSJSS
5 | BSJSS - V39 Brawl stars server based on nodeJS.
6 |
7 | Also! This is First Version of BSJSS! I will update this project and will add more features
8 |
9 | U can write me what you want to see in BSJSS
10 |
11 | # How to run?
12 | The main file in Server/Networking/index.js
13 |
14 | I added simple shortcut for windows users.
15 |
16 | - Install node and run with this code `node index.js`
17 |
18 | # About BSJSS
19 | A Brawl Stars Server Emulator by Lwitchy. Based on nodebrawl-core v2.3.1
20 | Note: Also this is first version of `BSJSS` It will be updated later.
21 |
22 | # Features of this server
23 | - Based on nodeJS
24 | - SQLITE3 Database (Create Account, Load Account, Update Account)
25 | - 3 shop offer type working (Gems, Coins, Skins also you can write others I showed how it's working)
26 | - Set Avatar name
27 | - CSV Reader (Only Characters and Card IDs)
28 |
29 | # How to connect Server?
30 | Download the BSDS Client for connect server
31 |
32 | Android: https://www.mediafire.com/file/4lqxq2phdswikv1/com.projectbsds.v3999-rev1.apk/file
33 |
34 | IOS: https://mega.nz/file/9p9AHIhI#nzbAHRjy-eJhjlxAmbYSLVj6zvOg_OXPdgy46JI25ss
35 |
36 | # Screenshots
37 | 
38 | 
39 | 
40 | 
41 |
42 |
43 | # Contact with me
44 | You can message me from discord lwitchy#1935
45 |
--------------------------------------------------------------------------------
/Server/Networking/index.js:
--------------------------------------------------------------------------------
1 | // Project BSJSS
2 | const net = require('net')
3 | const Player = require('../../Logic/Instances/Player.js')
4 | const Server = require('../../Logic/Instances/Server')
5 | const MessageFactory = require('../../Logic/Protocol/MessageFactory.js')
6 | const DB = require('../DatabaseManager/index')
7 |
8 | const serverSettings = new Server()
9 | const playerClass = new Player()
10 | const server = new net.Server()
11 | const Messages = new MessageFactory()
12 | const dbmanager = new DB(playerClass)
13 |
14 | serverSettings.loadCsvData()
15 | playerClass.update_brawler_data(serverSettings)
16 |
17 |
18 | server.on('connection', async (client) => {
19 | client.setNoDelay(true)
20 | client.log = function (text) {
21 | return console.log(`[${this.remoteAddress.split(':').slice(-1)}] >> ${text}`)
22 | }
23 |
24 | client.log('[SERVER]: New Connection!')
25 | const packets = Messages.getPackets();
26 | client.player = playerClass
27 | client.db = dbmanager
28 | client.serverSettings = serverSettings
29 |
30 | client.on('data', async (packet) => {
31 | const message = {
32 | id: packet.readUInt16BE(0),
33 | len: packet.readUIntBE(2, 3),
34 | version: packet.readUInt16BE(5),
35 | payload: packet.slice(7, this.len),
36 | client,
37 | }
38 | if (packets.indexOf(String(message.id)) !== -1) {
39 | try {
40 | const packet = new (Messages.handle(message.id))(message.payload, client, client.player, client.db, client.serverSettings)
41 |
42 | client.log(`[CLIENT][<<]: New Packet! ${message.id} (${packet.constructor.name})`)
43 | await packet.decode()
44 | await packet.process()
45 | } catch (e) {
46 | console.log(e)
47 | }
48 | } else {
49 | client.log(`[CLIENT][<<]: Packet not handled! ${message.id}!`)
50 | }
51 | })
52 |
53 | client.on('end', async () => {
54 | return client.log('[SERVER]: Client disconnected.')
55 | })
56 |
57 | client.on('error', async error => {
58 | try {
59 | console.log(error)
60 | client.destroy()
61 | } catch (e) { }
62 | })
63 | })
64 |
65 | server.once('listening', () => console.log(`Server Listening ${serverSettings.server_port} PORT`))
66 | server.listen(serverSettings.server_port)
67 |
68 |
69 |
70 | process.on("uncaughtException", e => console.log(e));
71 | process.on("unhandledRejection", e => console.log(e));
72 |
--------------------------------------------------------------------------------
/Titan/ByteStream/ByteArray.js:
--------------------------------------------------------------------------------
1 | class ByteArray {
2 | static bytesToString (arr) {
3 | let str = ''
4 | arr = new Uint8Array(arr)
5 | for (const i in arr) {
6 | str += String.fromCharCode(arr[i])
7 | }
8 | return str
9 | }
10 |
11 | static stringToBytes (str) {
12 | let ch, st, re = []
13 | for (let i = 0; i < str.length; i++) {
14 | ch = str.charCodeAt(i)
15 | st = []
16 | do {
17 | st.push(ch & 0xFF)
18 | ch = ch >> 8
19 | }
20 | while (ch)
21 | re = re.concat(st.reverse())
22 | }
23 | return re
24 | }
25 |
26 | static bytesToHex (arr) {
27 | let str = ''
28 | let k, j
29 | for (let i = 0; i < arr.length; i++) {
30 | k = arr[i]
31 | j = k
32 | if (k < 0) {
33 | j = k + 256
34 | }
35 | if (j < 16) {
36 | str += '0'
37 | }
38 | str += j.toString(16)
39 | }
40 | return str
41 | }
42 |
43 | static hexToBytes (str) {
44 | let pos = 0
45 | let len = str.length
46 | if (len % 2 !== 0)
47 | { return null }
48 | len /= 2
49 | const hexA = []
50 | for (let i = 0; i < len; i++) {
51 | const s = str.substr(pos, 2)
52 | const v = parseInt(s, 16)
53 | hexA.push(v)
54 | pos += 2
55 | }
56 | return hexA
57 | }
58 |
59 | static arrayToBytes (arr) {
60 | const result = new Buffer.alloc(arr.length)
61 |
62 | for (let i = 0; i < arr.length; i++) {
63 | result[i] = arr[i]
64 | }
65 | return result
66 | }
67 |
68 | static intToBytes (x) {
69 | const bytes = new Buffer.alloc(4)
70 | bytes[0] = x
71 | bytes[1] = x >> 8
72 | bytes[2] = x >> 16
73 | bytes[3] = x >> 24
74 | return bytes
75 | };
76 |
77 | static getInt (bytes) {
78 | if (bytes.length === 1) {
79 | return bytes[0]
80 | }
81 |
82 | if (bytes.length === 2) {
83 | return bytes[1] >> 8 | bytes[0]
84 | }
85 |
86 | if (bytes.length === 3) {
87 | return bytes[2] << 16 | bytes[1] << 8 | bytes[0]
88 | }
89 |
90 | if (bytes.length === 4) {
91 | return bytes[3] >> 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0]
92 | }
93 | else {
94 | return -1
95 | }
96 | }
97 | }
98 |
99 | module.exports = ByteArray
100 |
--------------------------------------------------------------------------------
/Logic/Assets/Csvreader.js:
--------------------------------------------------------------------------------
1 | const fs = require('fs');
2 | const csv = require('csv');
3 |
4 | class CSVReader{
5 | readCsv(filename, isEncodeUTF = false) {
6 | return new Promise((resolve, reject) => {
7 | let rowData = [];
8 | let lineCount = 0;
9 | let stream;
10 |
11 | if (isEncodeUTF) {
12 | stream = fs.createReadStream(filename, { encoding: 'utf-8' });
13 | } else {
14 | stream = fs.createReadStream(filename);
15 | }
16 |
17 | stream.pipe(csv.parse())
18 | .on('data', (row) => {
19 | if (lineCount === 0 || lineCount === 1) {
20 | lineCount++;
21 | } else {
22 | rowData.push(row);
23 | lineCount++;
24 | }
25 | })
26 | .on('end', () => {
27 | resolve(rowData);
28 | })
29 | .on('error', (err) => {
30 | reject(err);
31 | });
32 | });
33 | }
34 |
35 | loadCardID(brawlerId) {
36 | return new Promise((resolve, reject) => {
37 | let charsData, cardsData;
38 | this.readCsv(`../../Logic/Assets/Files/csv_logic/characters.csv`, false)
39 | .then((data) => {
40 | charsData = data;
41 | return this.readCsv(`../../Logic/Assets/Files/csv_logic/cards.csv`, false)
42 | })
43 | .then((data) => {
44 | cardsData = data;
45 | for (let i = 0; i < charsData.length; i++) {
46 | if (i == brawlerId) {
47 | const name = charsData[i][0];
48 | for (let j = 0; j < cardsData.length; j++) {
49 | if (cardsData[j][7].toLowerCase() == '0' && cardsData[j][3] == name) {
50 | resolve(j);
51 | return;
52 | }
53 | }
54 | }
55 | }
56 | })
57 | .catch((err) => {
58 | reject(err);
59 | });
60 | });
61 | }
62 |
63 | loadAllBrawlers(){
64 | return new Promise((resolve, reject) => {
65 | let brawlers = []
66 | this.readCsv('../../Logic/Assets/Files/csv_logic/characters.csv')
67 | .then((data)=>{
68 | var charsData = data;
69 | for(let i=0; i < charsData.length; i++){
70 | if(charsData[i][23] == 'Hero' && charsData[i][2].toLowerCase() !== 'true' && charsData[i][1].toLowerCase() !== 'true'){
71 | //console.log(charsData[i][0])
72 | brawlers.push(i)
73 | }
74 | }
75 | resolve(brawlers)
76 | return;
77 | })
78 | })
79 | }
80 | }
81 |
82 |
83 | module.exports = CSVReader
--------------------------------------------------------------------------------
/Logic/Protocol/Commands/Home/Client/LogicPurchaseCommand.js:
--------------------------------------------------------------------------------
1 | const AvailableServerCommand = require('../../../Messages/Server/AvailableServerCommandMessage')
2 |
3 | class LogicPurchaseCommand{
4 | decode(self){
5 | self.readVInt()
6 | self.readVInt()
7 | self.readLogicLong()
8 | this.offer_index = self.readVInt()
9 | this.brawler = self.readDataReference()[1]
10 | }
11 | process(self){
12 | var offers = self.player.offers
13 | var offer_id = offers[this.offer_index]['ID']
14 | var offer_count = offers[this.offer_index]['Count']
15 | var offer_char = offers[this.offer_index]['DataReference'][1]
16 | var offer_itemID = offers[this.offer_index]['ItemID']
17 | var offer_currency = offers[this.offer_index]['Currency']
18 | var offer_cost = offers[this.offer_index]['Cost']
19 |
20 |
21 | self.player.delivery_items = {
22 | 'Count': 1,
23 | 'Type': 0,
24 | 'Items': []
25 | }
26 |
27 | // Update Costs
28 | if(offer_currency == 0){
29 | self.player.gems - offer_cost
30 | self.db.update_data(0,self.player.low_id,self.player.token,'gems',self.player.gems)
31 | }else if(offer_currency == 1){
32 | self.player.coins - offer_cost
33 | //self.db.update_data(0, self.player.low_id,self.player.token,'')
34 | }else if(offer_currency == 3){
35 | // starpoints
36 | }
37 | /* Add your offers to here! */
38 |
39 | // Give Items
40 | if (offer_id == 1){
41 | var item = {'Amount': offer_count, 'DataRef': [0,0], 'Value': 7, 'SkinID': [0,0], 'PinID':[0,0], 'SPGID': [0,0]}
42 | self.player.delivery_items['Type'] = 100
43 | self.player.delivery_items['Items'].push(item)
44 |
45 | self.player.coins += offer_count
46 | self.db.update_data(0, self.player.low_id, self.player.token, 'coins', self.player.coins)
47 | new AvailableServerCommand(self.client, self.player, 203).send()
48 | }
49 |
50 | if (offer_id == 4){
51 | var item = {'Amount': offer_count, 'DataRef': [0,0], 'Value': 9, 'SkinID': [29,offer_itemID], 'PinID': [0,0], 'SPGID': [0,0]}
52 | self.player.delivery_items['Type'] = 100
53 | self.player.delivery_items['Items'].push(item)
54 |
55 | self.player.unlocked_skins.push(offer_itemID)
56 | self.db.update_data(0,self.player.low_id, self.player.token, 'unlocked_skins', self.player.unlocked_skins)
57 |
58 | new AvailableServerCommand(self.client, self.player, 203).send()
59 | }
60 |
61 | if (offer_id == 16){
62 | var item = {'Amount': offer_count, 'DataRef': [0, 0], 'Value': 8, 'SkinID': [0,0], 'PinID': [0,0], 'SPGID': [0,0]}
63 | self.player.delivery_items['Type'] = 100
64 | self.player.delivery_items['Items'].push(item)
65 |
66 | self.player.gems += offer_count
67 | self.db.update_data(0,self.player.low_id, self.player.token, 'gems', self.player.gems)
68 | new AvailableServerCommand(self.client, self.player, 203).send()
69 | }
70 |
71 |
72 |
73 |
74 | }
75 |
76 |
77 | constructor() {
78 | }
79 | }
80 |
81 | module.exports = LogicPurchaseCommand
--------------------------------------------------------------------------------
/Logic/Home/ClientAvatar.js:
--------------------------------------------------------------------------------
1 |
2 |
3 | class ClientAvatar{
4 | encode(self){
5 | // Logic Client Avatar Start
6 | self.writeVInt(0) //ID?
7 | self.writeVInt(self.player.low_id) //ID?
8 |
9 | self.writeVInt(0) //ID?
10 | self.writeVInt(self.player.low_id) //ID?
11 |
12 | self.writeVInt(0) //ID?
13 | self.writeVInt(self.player.low_id) //ID?
14 |
15 | if (self.player.name === "Player" && !self.player.name_set) {
16 | self.writeString("Player")
17 | self.writeVInt(0)
18 | }else{
19 | self.writeString(self.player.name)
20 | self.writeVInt(1)
21 | }
22 |
23 | self.writeString()
24 | self.writeVInt(15) // Commodity Count
25 |
26 |
27 | // Resources Array
28 | self.writeVInt(self.player.unlocked_brawlers.length + 1)
29 | for(var x in self.player.unlocked_brawlers){
30 | self.writeDataReference(23, self.serverSettings.all_brawlers_card_id[self.player.unlocked_brawlers[x]])
31 | self.writeVInt(1)
32 | }
33 |
34 | self.writeDataReference(5,8)
35 | self.writeVInt(self.player.coins)
36 | // Resources Array End
37 |
38 | // Brawlers Trophies Array
39 | self.writeVInt(0)
40 | // Brawlers Trophies Array End
41 |
42 | // Brawlers Trophies for Rank Array
43 | self.writeVInt(0)
44 | // Brawlers Trophies for Rank Array End
45 |
46 |
47 | // Unknown Brawlers Array
48 | self.writeVInt(0) // Count
49 | // Unknown Brawlers Array End
50 |
51 | // Brawlers Power Points Array
52 | self.writeVInt(0)
53 | // Brawlers Power Points Array End
54 |
55 | // Brawlers Power Level Array
56 | self.writeVInt(0)
57 | // Brawlers Power Level Array End
58 |
59 | // Array
60 | self.writeVInt(0) // Count
61 | // Brawlers Star Powers Array End
62 |
63 | // "NEW" Brawlers Tag Array
64 | self.writeVInt(0)
65 | // "NEW" Brawlers Tag array End
66 |
67 | // Array
68 | self.writeVInt(0)
69 |
70 | // Array
71 | self.writeVInt(0)
72 |
73 | // Array
74 | self.writeVInt(0)
75 |
76 | // Array
77 | self.writeVInt(0)
78 |
79 | // Array
80 | self.writeVInt(0)
81 |
82 | // Array
83 | self.writeVInt(0)
84 |
85 | // Array
86 | self.writeVInt(0)
87 |
88 | self.writeVInt(self.player.gems) // Gems
89 | self.writeVInt(self.player.gems) // Gems
90 | self.writeVInt(self.player.exp_points) // EXP
91 | self.writeVInt(100)
92 | self.writeVInt(0) // CumulativePurchasedDiamonds or Avatar User Level Tier | 10000 < Level Tier = 3 | 1000 < Level Tier = 2 | 0 < Level Tier = 1
93 | self.writeVInt(0) // Battle Count
94 | self.writeVInt(0) // WinCount
95 | self.writeVInt(0) // LoseCount
96 | self.writeVInt(0) // WinLooseStreak
97 | self.writeVInt(0) // NpcWinCount
98 | self.writeVInt(0) // NpcLoseCount
99 | self.writeVInt(2) // TutorialState | shouldGoToFirstTutorialBattle = State == 0
100 | self.writeVInt(0) // TimeStamp
101 | }
102 | }
103 |
104 | module.exports = ClientAvatar
--------------------------------------------------------------------------------
/Logic/Home/Logic/LogicConfData.js:
--------------------------------------------------------------------------------
1 | class LogicConfData{
2 | encode(self){
3 | //Logic Conf Data start
4 | self.writeVInt(0)
5 |
6 | self.writeVInt(22) // Count
7 | self.writeVInt(1) // Gem Grab
8 | self.writeVInt(2) // Showdown
9 | self.writeVInt(3) // Daily Events
10 | self.writeVInt(4) // Team Events
11 | self.writeVInt(5) // Duo Showdown
12 | self.writeVInt(6) // Team Events 2
13 | self.writeVInt(7) // Special Events
14 | self.writeVInt(8) // Solo Events
15 | self.writeVInt(9) // Power Play
16 | self.writeVInt(10) // Seasonal Events
17 | self.writeVInt(11) // Seasonal Events 2
18 | self.writeVInt(12) // Candidates of The Day
19 | self.writeVInt(13) // Winner of The Day
20 | self.writeVInt(14) // Solo Mode Power League
21 | self.writeVInt(15) // Team Mode Power League
22 | self.writeVInt(16) // Club league
23 | self.writeVInt(17) // Club league
24 | self.writeVInt(20) // Championship Challenge (Stage 1)
25 | self.writeVInt(21) // Championship Challenge (Stage 2)
26 | self.writeVInt(22) // Championship Challenge (Stage 3)
27 | self.writeVInt(23) // Championship Challenge (Stage 4)
28 | self.writeVInt(24) // Championship Challenge (Stage 5)
29 | // Event Slots IDs Array End
30 |
31 | // Events Count
32 | self.writeVInt(1) // Events
33 |
34 | self.writeVInt(1)
35 | self.writeVInt(1) // EventType
36 | self.writeVInt(0) // EventsBeginCountdown
37 | self.writeVInt(0) // Timer
38 | self.writeVInt(0) // tokens reward for new event
39 | self.writeDataReference(15, 7) // MapID
40 | self.writeVInt(-64) // GameModeVariation
41 | self.writeVInt(2) // State
42 | self.writeString()
43 | self.writeVInt(0)
44 | self.writeVInt(0)
45 | self.writeVInt(0)
46 | self.writeVInt(0) // Modifiers
47 | self.writeVInt(0)
48 | self.writeVInt(0)
49 | self.writeBoolean(false) // Map Maker Map Structure Array
50 | self.writeVInt(0)
51 | self.writeBoolean(false) // Power League Data Array
52 | self.writeVInt(0)
53 | self.writeVInt(0)
54 | self.writeVInt(0) // Chronos Text Entry
55 | self.writeVInt(-64)
56 | self.writeBoolean(false)
57 |
58 | self.writeVInt(0) // Coming Up Events Count
59 |
60 | self.writeVInt(8) // Brawler Upgrade Cost
61 | self.writeVInt(25)
62 | self.writeVInt(40)
63 | self.writeVInt(80)
64 | self.writeVInt(145)
65 | self.writeVInt(295)
66 | self.writeVInt(485)
67 | self.writeVInt(805)
68 | self.writeVInt(1255)
69 |
70 | self.writeVInt(4) // Shop Coins Price
71 | self.writeVInt(20)
72 | self.writeVInt(50)
73 | self.writeVInt(140)
74 | self.writeVInt(280)
75 |
76 | self.writeVInt(4) // Shop Coins Amount
77 | self.writeVInt(150)
78 | self.writeVInt(400)
79 | self.writeVInt(1200)
80 | self.writeVInt(2600)
81 |
82 | self.writeBoolean(true) // Show Offers Packs
83 |
84 | //Locked for chronos array
85 | self.writeVInt(0)// Count
86 | //Locked for chronos array End
87 |
88 | self.writeVInt(1) // IntValueEntry
89 | self.writeLongInt(1, 41000000 + 28) // ThemeID
90 |
91 |
92 | self.writeVInt(0) // Timed Int Value Entry
93 |
94 | self.writeVInt(0) // Custom Event
95 |
96 | self.writeVInt(0)
97 |
98 | self.writeVInt(0)
99 | self.writeVInt(0)
100 | // Logic Conf Data End
101 | }
102 |
103 |
104 | }
105 |
106 | module.exports = LogicConfData
--------------------------------------------------------------------------------
/Logic/Protocol/Messages/Client/LoginMessage.js:
--------------------------------------------------------------------------------
1 | const PiranhaMessage = require('../../PiranhaMessage')
2 | const LoginOkMessage = require('../../Messages/Server/LoginOkMessage')
3 | const OwnHomeData = require('../Server/OwnHomeDataMessage')
4 | const crypto = require('crypto')
5 |
6 | class LoginMessage extends PiranhaMessage {
7 | constructor (bytes, client, player, db, serverSettings) {
8 | super(bytes)
9 | this.client = client
10 | this.player = player
11 | this.serverSettings = serverSettings
12 | this.db = db
13 | this.id = 10101
14 | this.version = 0
15 | }
16 |
17 | async decode () {
18 | this.player.high_id = this.readInt()
19 | this.player.low_id = this.readInt()
20 | this.player.token = this.readString()
21 |
22 | this.major = this.readInt()
23 | this.minor = this.readInt()
24 | this.build = this.readInt()
25 | }
26 |
27 | async process () {
28 | function generate_token(){// Generating user token))
29 | const currentDateTime = new Date().valueOf().toString();
30 | const random = Math.random().toString();
31 | return crypto.createHash('sha1').update(currentDateTime + random).digest('hex');
32 | }
33 |
34 | function generate_id(length){// Generating used id between 0-9 random numbers
35 | let randomNumberString = '';
36 | for (let i = 0; i < length; i++) {
37 | randomNumberString += Math.floor(Math.random() * 10);
38 | }
39 | return parseInt(randomNumberString);
40 | }
41 |
42 | if(this.player.state == 1){// State check (ig I will not share with crypto so u can delete)
43 | if(this.player.low_id == 0){// If low_id == 0 means there is no id saved in client so new account
44 | // Generate New ID
45 | var id = generate_id(8)
46 | var token = generate_token()
47 |
48 | // Set Token and ID
49 | this.player.low_id = id
50 | this.player.token = token
51 |
52 | // Create new data in DB
53 | this.db.create_account(id, token)
54 |
55 | // And send loginOK, OwnHomeData
56 | new LoginOkMessage(this.client, this.player, id, token).send()
57 | new OwnHomeData(this.client, this.player,this.serverSettings).send()
58 |
59 | }else{// Load account with id come from client
60 | var player = this.player
61 | var data = null
62 |
63 | this.db.load_data(0, this.player.low_id, this.player.token).then(function(result){
64 | // Set variables from result
65 | data = JSON.parse(result)
66 | }).then(() => {// After finish load data set variables
67 | player.name = data['name']
68 | player.name_set = data['name_set']
69 | player.gems = data['gems']
70 | player.exp_points = data['exp_points']
71 | player.trophies = data['trophies']
72 | player.highest_trophies = data['highest_trophies']
73 | player.trophyroad_reward = data['trophyroad_reward']
74 | player.name_color = data['name_color']
75 | player.profile_icon = data['profile_icon']
76 | player.region = data['region']
77 | player.content_creator = data['content_creator']
78 | player.inbox = data['inbox']
79 | //player.offers = data['offers']
80 | player.unlocked_brawlers = data['unlocked_brawlers']
81 | player.unlocked_skins = data['unlocked_skins']
82 | player.unlocked_pins = data['unlocked_pins']
83 | player.unlocked_thumbnails = data['unlocked_thumbnails']
84 | player.unlocked_gadgets = data['unlocked_gadgets']
85 | player.selected_brawler = data['selected_brawler']
86 | player.selected_skins = data['selected_skins']
87 | player.selected_gadgets = data['selected_gadgets']
88 | player.brawlers_trophies = data['brawlers_trophies']
89 | player.brawlers_high_trophies = data['brawlers_high_trophies']
90 | player.brawlers_level = data['brawlers_level']
91 | player.brawlers_powerpoints = data['brawlers_powerpoints']
92 |
93 | // And send loginOK, OwnHomeData
94 | new LoginOkMessage(this.client, this.player).send()
95 | new OwnHomeData(this.client, this.player, this.serverSettings).send()
96 | })
97 | }
98 |
99 | }
100 | }
101 | }
102 |
103 | module.exports = LoginMessage
--------------------------------------------------------------------------------
/Server/DatabaseManager/index.js:
--------------------------------------------------------------------------------
1 | const sqlite3 = require('sqlite3')
2 |
3 | class DatabaseManager{
4 | constructor(player){
5 | this.player = player
6 | // Connect to database
7 | console.log("Attempt to connect database!")
8 | this.db = new sqlite3.Database('../Database/Players.db', (err)=>{
9 | if(err){// Failed
10 | console.log('Failed to connect database!')
11 | }else{// Success
12 | console.log('Connected to database!')
13 | // Create Table
14 | this.create_table()
15 | }
16 | })
17 |
18 | }
19 |
20 | log_ping(){
21 | console.log("Log Ping!")
22 | }
23 |
24 | create_table(){// Create SQL Table
25 | const create_table_sqlite3 = 'CREATE TABLE IF NOT EXISTS main (id integer, token text, data json)'
26 | this.db.run(create_table_sqlite3)
27 |
28 | }
29 |
30 | create_account(low_id, token){
31 | // JSON Data
32 | const data = {
33 | 'token': token,
34 | 'id': low_id,
35 | 'name': this.player.name,
36 | 'name_set': this.player.name_set,
37 | 'gems': this.player.gems,
38 | 'coins': this.player.coins,
39 | 'starpoints': this.player.starpoints,
40 | 'exp_points': this.player.gems,
41 | 'trophies': this.player.trophies,
42 | 'highest_trophies': this.player.highest_trophies,
43 | 'trophyroad_reward': this.player.trophyroad_reward,
44 | 'name_color': this.player.name_color,
45 | 'profile_icon': this.player.profile_icon,
46 | 'region': this.player.region,
47 | 'content_creator': this.player.content_creator,
48 | 'inbox': this.player.inbox,
49 | 'offers': this.player.offers,
50 | 'unlocked_brawlers': this.player.unlocked_brawlers,
51 | 'unlocked_skins': this.player.unlocked_skins,
52 | 'unlocked_pins': this.player.unlocked_pins,
53 | 'unlocked_thumbnails': this.player.unlocked_thumbnails,
54 | 'unlocked_gadgets': this.player.unlocked_gadgets,
55 | 'selected_brawler': this.player.selected_brawler,
56 | 'selected_skins': this.player.selected_skins,
57 | 'selected_gadgets': this.player.selected_gadgets,
58 | 'brawlers_trophies': this.player.brawlers_trophies,
59 | 'brawlers_high_trophies': this.player.brawlers_high_trophies,
60 | 'brawlers_level': this.player.brawlers_level,
61 | 'brawlers_powerpoints': this.player.brawlers_powerpoints
62 | }
63 |
64 | // Dump JSON data
65 | const dump_data = JSON.stringify(data)// dump
66 | this.db.run(`INSERT INTO main(id, token, data) VALUES(${low_id},"${token}",'${dump_data}')`, function(err){
67 | if(err){
68 | return console.log(err)
69 | }else{
70 | // omg success
71 | }
72 | })
73 | }
74 |
75 | load_data(high_id, low_id, token){// Load Data and return with it
76 | return new Promise((resolve, reject)=>{// Spend 30 min to find how to return? ahh
77 | this.db.get(`SELECT * from main where id=${low_id} AND token="${token}"`, (err,result)=>{
78 | if(err){// yes and I'm talking in code with myself
79 | console.log(err)
80 | reject()
81 | }else{// ig need to sleep
82 | resolve(result['data'])
83 | }// I feel bad enough for today
84 | })
85 | })
86 | }
87 |
88 | update_data(high_id, low_id, token, item, value){
89 | return new Promise((resolve, reject) => {this.db.get(`SELECT * from main where id=${low_id} AND token="${token}"`, (err,result)=>{
90 | if(err){
91 | console.log(err)// imagine
92 | reject()
93 | }else{
94 | // Loaded DATA
95 | const loaded_data = result['data']
96 | // JSON Parse
97 | const data = JSON.parse(loaded_data)
98 | // Update DATA
99 | data[`${item}`] = value
100 | // Dump Data
101 | const dump_data = JSON.stringify(data)// dump json data again damn
102 | this.db.run(`UPDATE main SET data='${dump_data}' WHERE id=${low_id} AND token="${token}"`)
103 | resolve()
104 | }
105 | })
106 | })
107 | }
108 |
109 | }
110 |
111 |
112 |
113 | module.exports = DatabaseManager
--------------------------------------------------------------------------------
/Logic/Home/Logic/LogicDailyData.js:
--------------------------------------------------------------------------------
1 | var LogicShopData = require('./LogicShopData')
2 | class LogicDailyData{
3 | encode(self){
4 | // Logic Daily Data Start
5 | self.writeVInt(0) //Timestamp
6 | self.writeVInt(0) //Timestamp
7 |
8 | self.writeVInt(0) //Timestamp
9 | self.writeVInt(0) //Timestamp
10 |
11 |
12 | self.writeVInt(self.player.trophies)//Trophies
13 | self.writeVInt(self.player.highest_trophies)//HTRP
14 | self.writeVInt(self.player.highest_trophies)//HTRP
15 | self.writeVInt(self.player.trophyroad_reward)//TrophyRoadReward
16 |
17 | self.writeVInt(self.player.exp_points)//EXP
18 |
19 | self.writeDataReference(28, self.player.profile_icon)
20 | self.writeDataReference(43, self.player.name_color)
21 |
22 | //Played Game Modes Array
23 | self.writeVInt(0)
24 | //Played Game Modes Array End
25 |
26 | //Selected Skins Array
27 | self.writeVInt(0)
28 | //Selected Skins Array End
29 |
30 | //Selected Skins Random
31 | self.writeVInt(0)
32 | //self.writeDataReference(29, i)
33 | //Selected Skins Random End
34 |
35 | // Current Random Skin
36 | self.writeVInt(0)
37 | // Current Random Skin End
38 |
39 | // Selected Group Skin
40 | self.writeVInt(0) // Skin Count
41 | //self.writeVInt(1) // Group Index
42 | //self.writeDataReference(29, 18) // SkinID
43 | // Selected Group Skin End
44 |
45 | // Unlocked Skins Array
46 | self.writeVInt(self.player.unlocked_skins.length)
47 | for (var x in self.player.unlocked_skins){
48 | self.writeDataReference(29, self.player.unlocked_skins[x])
49 | }
50 | // Unlocked Skins Array End
51 |
52 | // Unlocked Skin Purchase Option
53 | self.writeVInt(0)
54 | // Unlocked Skin Purchase Option End
55 |
56 | self.writeVInt(0)
57 |
58 | self.writeVInt(0)// Leaderboard Region | 0 = Global, 1 = Asia
59 | self.writeVInt(self.player.highest_trophies)// Trophy Road Highest Trophies
60 | self.writeVInt(0)// Tokens Used In Battles
61 | self.writeVInt(1)// Control Mode
62 | self.writeBoolean(false)// Is Token Limit Reached
63 | self.writeVInt(0)// Tokens Doubler
64 | self.writeVInt(0)// Trophy Road Timer
65 | self.writeVInt(0)// Power Play Timer (maybe power league now?)
66 | self.writeVInt(0)// Brawl Pass Timer
67 |
68 | self.writeVInt(0) // Starpower Drop
69 | self.writeVInt(0) // Gadget Drop
70 |
71 | self.writeVInt(0) // Rarity Count
72 |
73 |
74 |
75 | self.writeByte(4) // Shop Token Doubler
76 | self.writeVInt(2) // Token Doubler New Tag State
77 | self.writeVInt(2) // Event Tickets New Tag State
78 | self.writeVInt(2) // Coin Packs New Tag State
79 | self.writeVInt(0) // Change Name Cost
80 | self.writeVInt(0) // Timer For the Next Name Change
81 |
82 |
83 | new LogicShopData().encode(self)
84 |
85 | self.writeVInt(0)
86 |
87 | self.writeVInt(0) // Available tokens from battles
88 | self.writeVInt(0) // Timer for new tokens
89 |
90 | self.writeVInt(0)
91 |
92 | self.writeVInt(0)// Event Tickets lol
93 | self.writeVInt(0)// Tickets (still?)
94 |
95 | self.writeDataReference(16, 0)// Home Brawler
96 | self.writeString(self.player.region)
97 | self.writeString(self.player.content_creator)
98 |
99 | // Home Events arraychiki
100 | self.writeVInt(0)
101 |
102 | self.writeVInt(0)// CoolDown Entry Array
103 |
104 | // BrawlPass array
105 | self.writeVInt(1) // Season Count
106 |
107 | self.writeVInt(7) // Season
108 | self.writeVInt(0) // Tokens
109 | self.writeVInt(0) // isBrawlPass
110 | self.writeVInt(0)
111 |
112 | self.writeByte(2)
113 | self.writeInt(4294967292)
114 | self.writeInt(4294967295)
115 | self.writeInt(511)
116 | self.writeInt(0)
117 |
118 | self.writeByte(1)
119 | self.writeInt(4294967292)
120 | self.writeInt(4294967295)
121 | self.writeInt(511)
122 | self.writeInt(0)
123 | // BrawlPass array End
124 |
125 | self.writeVInt(0)
126 |
127 | // Quest Array
128 | self.writeBoolean(true)
129 | self.writeVInt(0)
130 | // Quest Array End
131 |
132 | // Emojis and Thumbnails Array
133 | self.writeBoolean(true)
134 | self.writeVInt(self.player.unlocked_pins.length + self.player.unlocked_thumbnails.length) // Vanity Count
135 | for(var x in self.player.unlocked_pins){
136 | self.writeDataReference(52, x)
137 | self.writeVInt(1)
138 | self.writeVInt(1)
139 | self.writeVInt(1)
140 | }
141 |
142 | for(var i in self.player.unlocked_thumbnails){
143 | self.writeDataReference(28, i)
144 | self.writeVInt(1)
145 | self.writeVInt(1)
146 | self.writeVInt(1)
147 | }
148 | // Emojis and Thumbnails Array End
149 |
150 | // ig thumnails? like comes with power league pfps
151 | self.writeBoolean(false)
152 | self.writeInt(0)
153 | // end
154 |
155 | // Logic Daily Data End
156 | }
157 | }
158 |
159 | module.exports = LogicDailyData
--------------------------------------------------------------------------------
/Titan/ByteStream/index.js:
--------------------------------------------------------------------------------
1 | const ByteArray = require('./ByteArray')
2 |
3 | class ByteStream {
4 | constructor (data) {
5 | this.buffer = data ? data : Buffer.alloc(0)
6 | this.length = 0
7 | this.offset = 0
8 | this.bitOffset = 0
9 | }
10 |
11 | readInt () {
12 | this.bitOffset = 0
13 | return (this.buffer[this.offset++] << 24 |
14 | (this.buffer[this.offset++] << 16 |
15 | (this.buffer[this.offset++] << 8 |
16 | this.buffer[this.offset++])))
17 | }
18 |
19 | skip (len) {
20 | this.bitOffset += len
21 | }
22 |
23 | readShort () {
24 | this.bitOffset = 0
25 | return (this.buffer[this.offset++] << 8 |
26 | this.buffer[this.offset++])
27 | }
28 |
29 |
30 | writeShort (value) {
31 | this.bitOffset = 0
32 | this.ensureCapacity(2)
33 | this.buffer[this.offset++] = (value >> 8)
34 | this.buffer[this.offset++] = (value)
35 | }
36 |
37 |
38 | writeInt (value) {
39 | this.bitOffset = 0
40 | this.ensureCapacity(4)
41 | this.buffer[this.offset++] = (value >> 24)
42 | this.buffer[this.offset++] = (value >> 16)
43 | this.buffer[this.offset++] = (value >> 8)
44 | this.buffer[this.offset++] = (value)
45 | }
46 |
47 |
48 | getHex () {
49 | return ByteArray.bytesToHex(this.buffer)
50 | }
51 |
52 | readString () {
53 | const length = this.readInt()
54 |
55 | if (length > 0 && length < 90000) {
56 | const stringBytes = this.buffer.slice(this.offset, this.offset + length)
57 | const string = stringBytes.toString('utf8')
58 | this.offset += length
59 | return string
60 | }
61 | return ''
62 | }
63 |
64 | readVInt () {
65 | let result = 0,
66 | shift = 0,
67 | s = 0,
68 | a1 = 0,
69 | a2 = 0
70 | do {
71 | let byte = this.buffer[this.offset++]
72 | if (shift === 0) {
73 | a1 = (byte & 0x40) >> 6
74 | a2 = (byte & 0x80) >> 7
75 | s = (byte << 1) & ~0x181
76 | byte = s | (a2 << 7) | a1
77 | }
78 | result |= (byte & 0x7f) << shift
79 | shift += 7
80 | if (!(byte & 0x80))
81 | { break }
82 | } while (true)
83 |
84 | return (result >> 1) ^ (-(result & 1))
85 | }
86 |
87 |
88 | readDataReference(){
89 | const a1 = this.readVInt()
90 | return [ a1, a1 == 0 ? 0 : this.readVInt() ]
91 | }
92 |
93 |
94 | writeDataReference (value1, value2) {
95 | if(value1 < 1){
96 | this.writeVInt(0)
97 | }else{
98 | this.writeVInt(value1)
99 | this.writeVInt(value2)
100 | }
101 | }
102 |
103 | writeVInt (value) {
104 | this.bitOffset = 0
105 | let temp = (value >> 25) & 0x40
106 |
107 | let flipped = value ^ (value >> 31)
108 |
109 | temp |= value & 0x3F
110 |
111 | value >>= 6
112 | flipped >>= 6
113 |
114 | if (flipped === 0) {
115 | this.writeByte(temp)
116 | return 0
117 | }
118 |
119 | this.writeByte(temp | 0x80)
120 |
121 | flipped >>= 7
122 | let r = 0
123 |
124 | if (flipped)
125 | { r = 0x80 }
126 |
127 | this.writeByte((value & 0x7F) | r)
128 |
129 | value >>= 7
130 |
131 | while (flipped !== 0) {
132 | flipped >>= 7
133 | r = 0
134 | if (flipped)
135 | { r = 0x80 }
136 | this.writeByte((value & 0x7F) | r)
137 | value >>= 7
138 | }
139 | }
140 |
141 |
142 | writeBoolean (value) {
143 | if (this.bitOffset === 0) {
144 | this.ensureCapacity(1)
145 | this.buffer[this.offset++] = 0
146 | }
147 |
148 | if (value)
149 | { this.buffer[this.offset - 1] |= (1 << this.bitOffset) }
150 |
151 | this.bitOffset = (this.bitOffset + 1) & 7
152 | }
153 |
154 | readBoolean(){
155 | return this.readVInt() >= 1
156 | }
157 |
158 |
159 | writeString (value) {
160 | if (!value || value == null || value.length > 90000) {
161 | this.writeInt(-1)
162 | return
163 | }
164 |
165 | const buf = Buffer.from(value, 'utf8')
166 | this.writeInt(buf.length)
167 | this.buffer = Buffer.concat([this.buffer, buf])
168 | this.offset += buf.length
169 | }
170 |
171 |
172 | writeStringReference = this.writeString
173 |
174 | writeLongLong (value) {
175 | this.writeInt(value >> 32)
176 | this.writeInt(value)
177 | }
178 |
179 | writeLongInt(value1, value2){
180 | this.writeInt(value1)
181 | this.writeInt(value2)
182 | }
183 |
184 | writeLogicLong (value1, value2) {
185 | this.writeVInt(value1)
186 | this.writeVInt(value2)
187 | }
188 |
189 |
190 | readLogicLong () {
191 | return [ this.readVInt(), this.readVInt() ]
192 | }
193 |
194 |
195 | writeLong (value1, value2) {
196 | this.writeInt(value1)
197 | this.writeInt(value2)
198 | }
199 |
200 |
201 | readLong () {
202 | return [ this.readInt(), this.readInt() ]
203 | }
204 |
205 |
206 | writeByte (value) {
207 | this.bitOffset = 0
208 | this.ensureCapacity(1)
209 | this.buffer[this.offset++] = value
210 | }
211 |
212 |
213 | writeBytes (buffer) {
214 | const length = buffer.length
215 |
216 | if (buffer != null) {
217 | this.writeInt(length)
218 | this.buffer = Buffer.concat([this.buffer, buffer])
219 | this.offset += length
220 | return
221 | }
222 |
223 | this.writeInt(-1)
224 | }
225 |
226 |
227 | ensureCapacity (capacity) {
228 | const bufferLength = this.buffer.length
229 |
230 | if (this.offset + capacity > bufferLength) {
231 | const tmpBuffer = new Buffer.alloc(capacity)
232 | this.buffer = Buffer.concat([this.buffer, tmpBuffer])
233 | }
234 | }
235 |
236 |
237 | send () {
238 | if (this.id < 20000) return;
239 |
240 | this.encode()
241 |
242 | const header = Buffer.alloc(7)
243 | header.writeUInt16BE(this.id, 0)
244 | header.writeUIntBE(this.buffer.length, 2, 3)
245 | header.writeUInt16BE(this.version, 5)
246 |
247 | this.client.write(Buffer.concat([header, this.buffer, Buffer.from([0xFF, 0xFF, 0x0, 0x0, 0x0, 0x0, 0x0])]))
248 | this.client.log(`[SERVER][>>]: Packet ${this.id} (${this.constructor.name}) was sent.`)
249 | }
250 | }
251 |
252 | module.exports = ByteStream
253 |
--------------------------------------------------------------------------------
/Logic/Assets/Files/csv_logic/characters.csv:
--------------------------------------------------------------------------------
1 | Name,LockedForChronos,Disabled,ItemName,WeaponSkill,UltimateSkill,Pet,Speed,Hitpoints,HealthPromilleLostPerSecond,HealPercentChange,MeleeAutoAttackSplashDamage,AutoAttackSpeedMs,AutoAttackDamage,AutoAttackBulletsPerShot,AutoAttackMode,AutoAttackProjectileSpread,AutoAttackProjectile,AutoAttackRange,RegeneratePerSecond,LowPriorityTarget,UltiChargeMul,UltiChargeUltiMul,Type,CarryableType,DamagerPercentFromAliens,DefaultSkin,ManualRotations,FileName,BlueExportName,RedExportName,ShadowExportName,AreaEffect,DeathAreaEffect,TakeDamageEffect,DeathEffect,MoveEffect,ReloadEffect,OutOfAmmoEffect,DryFireEffect,SpawnEffect,MeleeHitEffect,AutoAttackStartEffect,BoneEffect1,BoneEffect2,BoneEffect3,BoneEffect4,BoneEffectUse,LoopedEffect,LoopedEffect2,KillCelebrationSoundVO,InLeadCelebrationSoundVO,StartSoundVO,UseUltiSoundVO,TakeDamageSoundVO,DeathSoundVO,AttackSoundVO,UnlockVO,UnlockVOIndex,AttackStartEffectOffset,TwoWeaponAttackEffectOffset,ShadowScaleX,ShadowScaleY,ShadowX,ShadowY,ShadowSkew,Scale,HeroScreenScale,FitToBoxScale,EndScreenScale,GatchaScreenScale,HomeScreenScale,ShowPetInHeroScreen,HeroScreenXOffset,HeroScreenZOffset,HeroScreenEmoteX,HeroScreenEmoteY,CollisionRadius,HealthBar,HealthBarOffsetY,FlyingHeight,ProjectileStartZ,StopMovementAfterMS,WaitMS,TID,ForceAttackAnimationToEnd,IconSWF,IconExportName,RecoilAmount,Homeworld,FootstepClip,DifferentFootstepOffset,FootstepIntervalMS,AttackingWeaponScale,UseThrowingLeftWeaponBoneScaling,UseThrowingRightWeaponBoneScaling,CommonSetUpgradeBonus,RareSetUpgradeBonus,SuperRareSetUpgradeBonus,CanWalkOverWater,UseColorMod,RedAdd,GreenAdd,BlueAdd,RedMul,GreenMul,BlueMul,ChargeUltiAutomatically,ChargeUltiFromDamage,VideoLink,ShouldEncodePetStatus,SecondaryPet,ExtraMinions,PetAutoSpawnDelay,HasPowerLevels,OffenseRating,DefenseRating,UtilityRating,UniqueProperty,UniquePropertyValue1,UniquePropertyValue2
2 | string,boolean,boolean,string,string,string,string,int,int,int,int,boolean,int,int,int,string,int,string,int,int,boolean,int,int,String,string,int,string,boolean,string,string,string,string,string,string,string,string,string,string,string,string,string,string,string,string,string,string,string,string,string,string,string,string,string,string,string,string,string,string,int,int,int,int,int,int,int,int,int,int,int,int,int,int,boolean,int,int,int,int,int,string,int,int,int,int,int,string,boolean,string,string,int,string,string,int,int,int,boolean,boolean,int,int,int,boolean,boolean,int,int,int,int,int,int,int,int,string,boolean,boolean,int,int,boolean,int,int,int,int,int,int
3 | ShotgunGirl,,,shelly,ShotgunGirlWeapon,ShotgunGirlUlti,,720,3800,,,,,,,,,,12,,,134,112,Hero,,,BanditGirlDefault,,,,,,,,takedamage_gen,death_shotgun_girl,Gen_move_fx,reload_shotgun_girl,No_ammo_shotgungirl,Dry_fire_shotgungirl,,,,,,,,,,,Shelly_Kill,Shelly_Lead,Shelly_Start,Utilshotgun_Vo,ShellyTakedamge_Vo,Shelly_Die,,Shelly_Start,2,30,,80,80,,,35,116,210,284,90,175,260,,,,-25,40,120,Medium,-48,,450,,,TID_SHOTGUN_GIRL,,sc/ui.sc,hero_icon_shelly,1000,human,footstep,25,250,200,,,1,3,2,,,,,,,,,,,ShellyTutorial,,,,,,4,3,2,,,
4 | Gunslinger,,,colt,GunslingerWeapon,GunslingerUlti,,720,2800,,,,,,,,,,12,,,93,87,Hero,,,GunSlingerDefault,,,,,,,,takedamage_gen,death_gunslinger,Gen_move_fx,reload_gunslinger,No_ammo_shotgungirl,Dry_fire_shotgungirl,,,,,,,,,,,Hotshot_Kill,Hotshot_Lead,Hotshot_Start,Hotshot_Ulti,Hotshot_Takedamge_Vo,Hotshot_Die,,Hotshot_Start,1,35,50,80,80,,,35,116,210,284,90,185,270,,,,-30,40,120,Medium,-52,,400,,,TID_GUNSLINGER,,sc/ui.sc,hero_icon_colt,300,human,footstep,25,300,160,,,2,3,1,,,,,,,,,,,ColtTutorial,,,,,,5,2,2,,,
5 | BullDude,,,bull,BullDudeWeapon,BullDudeUlti,,770,5000,,,,,,,,,,12,,,100,150,Hero,,,BullGuyDefault,,,,,,,,takedamage_gen,death_bull_dude,Gen_move_fx,reload_bull_dude,No_ammo_shotgungirl,Dry_fire_shotgungirl,,,,,,,,,,,Bull_kill,Bull_lead,Bull_start,Bull_ulti,Bull_takedamage_vo,Bull_die,,Bull_start,0,40,,80,80,,,35,116,175,236,80,150,220,,,,-30,45,145,Medium,-64,,450,,,TID_BULL_DUDE,,sc/ui.sc,hero_icon_bull,600,human,footstep,40,300,130,,,1,2,3,,,,,,,,,,240,BullTutorial,,,,,,3,4,2,,,
6 | RocketGirl,,,brock,RocketGirlWeapon,RocketGirlUlti,,720,2400,,,,,,,,,,12,,,90,80,Hero,,,RocketGirlDefault,,,,,,,,takedamage_gen,death_rocket_girl,Gen_move_fx,reload_rocket_girl,No_ammo_shotgungirl,Brock_dryfire,,,,,,,,,,,Brock_kill_vo,Brock_lead_vo,Brock_start_vo,Brock_ulti_vo,Brock_hurt_vo,Brock_die_vo,,Brock_start_vo,3,35,,80,80,,,35,116,200,270,90,180,260,,,,-50,,120,Medium,-52,,500,,,TID_ROCKET_GIRL,,sc/ui.sc,hero_icon_brock,300,human,footstep,25,500,100,,,2,3,1,,,,,,,,,,,BrockTutorial,,,,,,5,2,2,,,
7 | TrickshotDude,,,ricochet,TrickshotDudeWeapon,TrickshotDudeUlti,,720,2800,,,,,,,,,,12,,,105,105,Hero,,,TrickshotDefault,,,,,,,,takedamage_gen,death_trickshot_dude,Gen_move_fx,reload_trickshot_dude,No_ammo_shotgungirl,dry_fire_mechanic,,,,,,,,,,,Rick_kill,Rick_lead,Rick_start,Rick_ulti,Rick_hurt,Rick_die,,Rick_start,0,60,,80,80,,,35,116,200,280,90,175,260,,,,-40,,120,Medium,-49,,450,,,TID_TRICKSHOT_DUDE,,sc/ui.sc,hero_icon_rick,300,human,footstep,25,300,160,,,2,3,1,,,,,,,,,,,RicoTutorial,,,,,,5,2,2,,,
8 | Cactus,,,spike,CactusWeapon,CactusUlti,,720,2400,,,,,,,,,,12,,,103,125,Hero,,,CactusDefault,,,,,,,,takedamage_gen,death_cactus,Gen_move_fx,reload_cactus,No_ammo_shotgungirl,crow_dryfire,,,,,,,,,,,,,,,,,,,,35,,80,80,,,35,116,240,324,80,210,290,,,,,50,120,Medium,-32,,450,,,TID_CACTUS,,sc/ui.sc,hero_icon_spike,0,human,footstep,40,300,100,true,true,2,1,3,,,,,,,,,,,SpikeTutorial,,,,,,4,2,3,,,
9 | Barkeep,,,barley,BarkeepWeapon,BarkeepUlti,,720,2400,,,,,,,,,,12,,,100,74,Hero,,,BarkeepDefault,,,,,,,,takedamage_gen,death_barkeep,Gen_move_fx,reload_barkeep,No_ammo_shotgungirl,dry_fire_barkeep,,,,,,,,,,,Barley_Kill,Barley_Lead,Barley_Start,Barley_Ulti,Barley_Hurt,Barley_Die,Barley_throw,Barley_Start,0,,,80,80,,,35,116,190,290,80,180,250,,,,-30,,120,Medium,-45,,350,,,TID_BARKEEP,,sc/ui.sc,hero_icon_barley,0,human,footstep,25,300,100,true,true,2,3,1,,,,,,,,,,,BarleyTutorial,,,,,,5,2,2,,,
10 | Mechanic,,,jessie,MechanicWeapon,MechanicUlti,,720,3000,,,,,,,,,,12,,,63,97,Hero,,,MechanicDefault,,,,,,,,takedamage_gen,death_mechanic,Gen_move_fx,reload_mechanic,No_ammo_shotgungirl,dry_fire_mechanic,,,,,,,,,,,Jess_kill,Jess_lead,Jess_start,Jess_ulti,Jess_takedamage,Jess_die,,Jess_start,0,35,,80,80,,,35,116,190,300,80,150,270,true,-800,100,-80,60,120,Medium,-47,,350,,,TID_MECHANIC,,sc/ui.sc,hero_icon_jess,500,human,footstep,20,200,160,,,3,2,1,,,,,,,,,,,JessieTutorial,,,,,,3,2,4,,,
11 | Shaman,,,nita,ShamanWeapon,ShamanUlti,,720,4000,,,,,,,,,,12,,,76,100,Hero,,,ShamanDefault,,,,,,,,takedamage_gen,death_shaman,Gen_move_fx,,No_ammo_shotgungirl,dry_fire_barkeep,,,,,,,,,,,Nita_kill,Nita_lead,Nita_start,Nita_ulti,Nita_hurt,Nita_death,,Nita_start,0,35,,80,80,,,35,116,190,250,80,150,270,true,-600,1000,-250,60,120,Medium,-46,,100,,,TID_SHAMAN,,sc/ui.sc,hero_icon_nita,1000,human,footstep,25,250,160,,,3,1,2,,,,,,,,,,,NitaTutorial,,,,,,3,4,2,,,
12 | TntDude,,,dynamike,TntDudeWeapon,TntDudeUlti,TntPet,770,2800,,,,,,,,,,12,,,125,91,Hero,,,TntGuyDefault,,,,,,,,takedamage_gen,death_tnt_dude,Gen_move_fx,reload_tnt_dude,No_ammo_shotgungirl,dry_fire_barkeep,,,,,,,,,,,Tnt_guy_kill_vo,Tnt_guy_lead_vo,Tnt_guy_start_vo,Tnt_guy_ulti_vo,Tnt_guy_hurt_vo,Tnt_guy_die_vo,,Tnt_guy_start_vo,2,35,,80,80,,,35,116,190,300,80,150,270,,,,,60,120,Medium,-50,,350,,,TID_TNT_DUDE,,sc/ui.sc,hero_icon_mike,0,human,footstep,25,200,100,true,true,2,1,3,,,,,,,,,,,MikeTutorial,,,,,,5,2,2,,,
13 | Luchador,,,elprimo,LuchadorWeapon,LuchadorUlti,,770,6000,,,,,,,,,,12,,,70,125,Hero,,,LuchadorDefault,,,,,,,,takedamage_gen,death_luchador,Gen_move_fx,,No_ammo_shotgungirl,dry_fire_barkeep,,Gen_hit_melee,,,,,,,,,El_primo_kill,El_primo_lead,El_primo_start,El_primo_ulti,El_primo_hurt,El_primo_die,El_primo_atk,El_primo_start,2,50,50,80,80,,,35,116,170,245,90,150,235,,,,-20,-20,145,Medium,-56,,400,,,TID_LUCHADOR,,sc/ui.sc,hero_icon_primo,0,human,footstep,40,250,130,,,1,3,2,,,,,,,,,,240,PrimpTutorial,,,,,,2,5,2,,,
14 | Undertaker,,,mortis,UndertakerWeapon,UndertakerUlti,,820,3800,,,,,,,,,,12,,,89,134,Hero,,,UndertakerDefault,,,,,,,,takedamage_gen,death_undertaker,Gen_move_fx,reload_undertaker,No_ammo_shotgungirl,dry_fire_barkeep,,Dummy_effect,,,,,,,,,Mortis_kill,Mortis_lead,Mortis_start,Mortis_ulti_vo,Mortis_hurt,Mortis_die,Mortis_atk_vo,Mortis_start,1,50,,80,80,,,35,130,200,285,95,170,260,,,,,20,120,Medium,-59,,350,,,TID_UNDERTAKER,,sc/ui.sc,hero_icon_mortis,0,human,footstep,25,350,165,,,1,2,3,,,,,,,,,,,MortisTutorial,,,,,,2,3,4,,,
15 | Crow,,,crow,CrowWeapon,CrowUlti,,820,2400,,,,,,,,,,12,,,89,75,Hero,,,CrowDefault,,,,,,,,takedamage_gen,death_crow,Gen_move_fx,reload_crow,No_ammo_shotgungirl,crow_dryfire,,,,,,,,,,,Crow_Kill,Crow_Lead,Crow_Start,Crow_Ulti,Crow_Takedamage,Crow_Die,,Crow_Start,0,45,,80,80,,,35,116,230,350,90,210,290,,,,-10,20,120,Medium,-41,,400,,,TID_CROW,,sc/ui.sc,hero_icon_crow,0,human,footstep,20,200,100,true,true,2,1,3,,,,,,,,,,,CrowTutorial,,,,,,5,1,3,,,
16 | DeadMariachi,,,poco,DeadMariachiWeapon,DeadMariachiUlti,,720,4000,,,,,,,,,,12,,,120,150,Hero,,,DeadMariachiDefault,,,,,,,,takedamage_gen,death_dead_mariachi,Gen_move_fx,reload_dead_mariachi,No_ammo_shotgungirl,dry_fire_barkeep,,,,,,,,,,,Poco_kill,Poco_lead,Poco_start,Poco_ulti_vo,Poco_hurt,Poco_die,,Poco_start,1,20,,80,80,,,35,116,200,300,85,180,260,,,,,60,120,Medium,-56,,0,,,TID_DEAD_MARIACHI,,sc/ui.sc,hero_icon_poco,0,human,footstep,25,250,100,,,1,3,2,,,,,,,,,,,PocoTutorial,,,,,,2,3,4,,,
17 | BowDude,,,bo,BowDudeWeapon,BowDudeUlti,,720,3600,,,,,,,,,,12,,,80,93,Hero,,,BowDudeDefault,,,,,,,,takedamage_gen,death_bow_dude,Gen_move_fx,reload_bow_dude,No_ammo_shotgungirl,dry_fire_bowdude,,,,,,,,,,,Bo_kill,Bo_lead,Bo_start,Bo_ulti_vo,Bo_hurt,Bo_die,Bo_atk_vo,Bo_start,2,45,,80,80,,,35,106,170,245,75,165,220,,-150,,-40,,120,Medium,-56,,400,,,TID_BOW_DUDE,,sc/ui.sc,hero_icon_bo,0,human,footstep,30,300,100,true,,1,2,3,,,,,,,,,,,BoTutorial,,,,,,3,2,4,,,
18 | Sniper,,,piper,SniperWeapon,SniperUlti,,720,2400,,,,,,,,,,12,,,97,90,Hero,,,SniperDefault,,,,,,,,takedamage_gen,death_sniper,Gen_move_fx,reload_sniper,No_ammo_shotgungirl,Minig_dryfire,,,,,,,,,,,Piper_Kill,Piper_Lead,Piper_Start,Piper_Ulti,Piper_Takedamage,Piper_Die,,Piper_Start,0,45,,80,80,,,35,116,200,320,90,190,260,,,,,,120,Medium,-46,,450,,,TID_SNIPER,,sc/ui.sc,hero_icon_piper,100,human,footstep,25,400,160,,,2,3,1,,,,,,,,,,,PiperTutorial,,,,,,5,1,3,,,
19 | MinigunDude,,,pam,MinigunDudeWeapon,MinigunDudeUlti,,720,4800,,,,,,,,,,12,,,105,130,Hero,,,MinigunDudeDefault,,,,,,,,takedamage_gen,death_minigun,Gen_move_fx,reload_minigun,No_ammo_shotgungirl,Minig_dryfire,,,,,,,,,,,Pam_kill,Pam_lead,Pam_start,Pam_ulti,Pam_hurt,Pam_die,,Pam_start,2,40,,80,80,,,35,106,170,245,75,150,220,true,-500,,-80,,145,Medium,-59,,450,,,TID_MINIGUN_DUDE,,sc/ui.sc,hero_icon_mj,400,human,footstep,30,400,130,,,1,3,2,,,,,,,,,,,PamTutorial,,,,,,2,4,3,,,
20 | BlackHole,,,tara,BlackHoleWeapon,BlackHoleUlti,BlackHolePet,720,3200,,,,,,,,,,12,,,73,90,Hero,,,BlackholeDefault,,,,,,,,takedamage_gen,death_blackhole,Gen_move_fx,reload_blackhole,No_ammo_shotgungirl,Mystic_dryfire,,,,,,,,,,,Tara_kill_vo,Tara_lead_vo,Tara_start_vo,,Tara_hurt_vo,Tara_die_vo,,Tara_start_vo,0,50,,80,80,,,35,120,210,300,90,175,270,,,,-20,30,120,Medium,-59,,450,,,TID_BLACK_HOLE,,sc/ui.sc,hero_icon_taro,400,human,footstep,25,300,130,,,1,2,3,,,,,,,,,,,TaraTutorial,,,,,,2,2,5,,,
21 | BarrelBot,,,darryl,BarrelBotWeapon,BarrelBotUlti,,770,5300,,,,,,,,,,12,,,117,120,Hero,,,BarrelbotDefault,,,,,,,,takedamage_gen,death_barrel_bot,Gen_move_fx,reload_barrel_bot,No_ammo_shotgungirl,Dry_fire_shotgungirl,,,,,,,,,,,Darryl_Kill_VO,Darryl_Lead_VO,Darryl_Start_VO,Darryl_Ulti_VO,Darryl_Hurt_VO,Darryl_Die_VO,,Darryl_Start_VO,4,50,0,80,80,,,35,116,190,257,80,175,230,,,,,80,145,Medium,-48,,450,,,TID_BARREL_BOT,,sc/ui.sc,hero_icon_barrelbot,600,human,footstep,40,300,130,,,1,2,3,,,,,,,,,132,,DarrylTutorial,,,,,,3,4,2,,,
22 | ArtilleryDude,,,penny,ArtilleryDudeWeapon,ArtilleryDudeUlti,,720,3400,,,,,,,,,,12,,,93,100,Hero,,,ArtilleryGalDefault,,,,,,,,takedamage_gen,death_artillery_dude,Gen_move_fx,reload_artillery_dude,No_ammo_shotgungirl,dry_fire_mechanic,,,,,,,,,,,Penny_kill,Penny_lead,Penny_start,Penny_ulti,Penny_takedamage,Penny_die,,Penny_start,0,35,,80,80,,,35,110,190,290,80,150,260,true,-500,600,-80,60,120,Medium,-45,,400,,,TID_ARTILLERY_DUDE,,sc/ui.sc,hero_icon_penny,500,human,footstep,20,200,160,,,3,2,1,,,,,,,,,,,PennyTutorial,,,,,,3,2,4,,,
23 | HammerDude,,,frank,HammerDudeWeapon,HammerDudeUlti,,770,7000,,,,,,,,,,12,,,120,120,Hero,,,FrankDefault,,,,,,,,takedamage_gen,death_hammer_dude,Gen_move_fx,,No_ammo_shotgungirl,dry_fire_barkeep,,,,,,,,,,,Frank_vo,Frank_vo,Frank_vo,Frank_vo,Frank_vo,Frank_vo,Frank_vo,Frank_vo,2,75,,80,80,,,35,110,150,240,80,150,230,,,,,,145,Medium,-60,,100,,,TID_HAMMER_DUDE,,sc/ui.sc,hero_icon_frank,0,human,footstep,40,250,130,,,1,3,2,,,,,,,,,,240,FrankTutorial,,,,,,2,5,2,,,
24 | HookDude,,,gene,HookWeapon,HookUlti,,720,3600,,,,,,,,,,12,,,105,100,Hero,,,HookDefault,,,,,,,,takedamage_gen,death_hook_dude,Gen_move_fx,reload_gene,No_ammo_shotgungirl,dry_fire_gene,,,,,,,,,,,Gene_vo,Gene_vo,Gene_vo,Gene_vo,Gene_vo,Gene_vo,,Gene_vo,1,30,,80,80,,,35,116,230,340,90,175,270,,,,,,120,Medium,-36,,350,,,TID_HOOK,,sc/ui.sc,hero_icon_gene,0,human,footstep,25,350,200,,,1,3,2,,,,,,,,,,,GeneTutorial,,,,,,2,2,5,,,
25 | ClusterBombDude,,,tick,ClusterBombDudeWeapon,ClusterBombDudeUlti,,720,2200,,,,,,,,,,12,,,110,70,Hero,,,ClusterBombDefault,,,,,,,,takedamage_gen,death_artillery_dude,Gen_move_fx,reload_tick,No_ammo_shotgungirl,Dry_fire_shotgungirl,,,,,,,,,,,Tick_vo_1,Tick_vo_1,Tick_vo_1,Tick_vo_1,Tick_vo_hurt,Tick_vo_die,,Tick_vo_1,0,35,,80,80,,,35,110,230,270,80,150,270,,,,-20,50,120,Medium,-40,,350,,,TID_CLUSTER_BOMB_DUDE,,sc/ui.sc,hero_icon_tick,0,human,footstep,85,300,160,,,3,2,1,,,,,,,,,,,,true,,,,,5,1,3,,,
26 | Ninja,,,leon,NinjaWeapon,NinjaUlti,,820,3200,,,,,,,,,,12,,,105,100,Hero,,,NinjaDefault,,,,,,,,takedamage_gen,death_ninja,Gen_move_fx,reload_leon,No_ammo_shotgungirl,Dry_fire_leon,,,,,,,,,,,Leon_kill_vo,Leon_lead_vo,Leon_start_vo,Leon_ulti_vo,Leon_hurt_vo,Leon_die_vo,,Leon_start_vo,2,50,,80,80,,,35,116,190,330,80,150,270,,,,,,120,Medium,-55,,450,,,TID_NINJA,,sc/ui.sc,hero_icon_leon,0,human,footstep,25,250,130,,,3,2,1,,,,,,,,,,,LeonTutorial,,,,,,4,2,3,,,
27 | Rosa,,,rosa,RosaWeapon,RosaUlti,,770,5400,,,,,,,,,,12,,,97,100,Hero,,,RosaDefault,,,,,,,,takedamage_gen,death_rosa,Gen_move_fx,reload_rosa,No_ammo_shotgungirl,dry_fire_barkeep,,,,,,,,,,,Rosa_kill,Rosa_lead,Rosa_start,Rosa_ulti_vo,Rosa_hurt,Rosa_die,,Rosa_start,2,50,,80,80,,,35,110,100,245,80,150,240,,,,,50,145,Medium,-55,,400,,,TID_ROSA,,sc/ui.sc,hero_icon_rosa,0,human,footstep,30,400,130,,,3,2,1,,,,,,,,,,,,,,,,,3,5,1,,,
28 | Whirlwind,,,carl,WhirlwindWeapon,WhirlwindUlti,,720,4400,,,,,,,,,,12,,,102,60,Hero,,,WhirlwindDefault,,,,,,,,takedamage_gen,death_whirlwind,Gen_move_fx,reload_whirlwind,No_ammo_shotgungirl,Dry_fire_whirlwind,,carl_def_ulti_hit,,,,,,,,,Carl_kill_vo,Carl_lead_vo,Carl_start_vo,Carl_ulti_vo,Carl_hurt_vo,Carl_die_vo,Carl_atk_vo,Carl_start_vo,5,30,,80,80,,,35,110,190,255,80,150,230,,,,-20,60,120,Medium,-48,,450,,,TID_WHIRLWIND,,sc/ui.sc,hero_icon_carl,0,human,,25,50,200,TRUE,TRUE,1,3,2,,,,,,,,,,,,,,,,,3,3,3,,,
29 | Baseball,,,bibi,BaseballWeapon,BaseballUlti,,820,4200,,,,,,,,,,12,,,110,112,Hero,,,BaseballDefault,,,,,,,,takedamage_gen,death_baseball,Gen_move_fx,reload_baseball,No_ammo_shotgungirl,dry_fire_barkeep,,bibi_def_atk_hit,,,,,,,,,Bibi_kill_vo,Bibi_lead_vo,Bibi_start_vo,Bibi_ulti_vo,Bibi_hurt_vo,Bibi_die_vo,,Bibi_start_vo,5,30,,80,80,,,35,116,210,320,90,190,270,,,,,60,120,Medium,-48,,450,,,TID_BASEBALL,,sc/ui.sc,hero_icon_bibi,0,human,footstep,25,400,100,,,1,3,2,,,,,,,,,,,,,,,,,3,3,3,,,
30 | Arcade,,,8bit,ArcadeWeapon,ArcadeUlti,,580,4800,,,,,,,,,,12,,,106,100,Hero,,,ArcadeDefault,,,,,,,,takedamage_gen,death_arcade,Gen_move_fx,reload_arcade,No_ammo_shotgungirl,arcade_dryfire,,,,,,,,,,,8bit_kill_vo,8bit_lead_vo,8bit_start_vo,8bit_ulti_vo,8bit_hurt_vo,8bit_die_vo,,8bit_start_vo,2,57,,80,80,,,35,116,240,300,80,210,240,true,-500,,,80,145,Medium,-43,,450,,,TID_ARCADE,,sc/ui.sc,hero_icon_8bit,0,human,footstep,30,400,130,,,1,3,2,,,,,,,,,,,,,,,,,5,1,3,,,
31 | Sandstorm,,,sandy,SandstormWeapon,SandstormUlti,,770,3800,,,,,,,,,,12,,,73,100,Hero,,,SandstormDefault,,,,,,,,takedamage_gen,death_rosa,Gen_move_fx,reload_sandy,No_ammo_shotgungirl,Dry_fire_sandy,,,,,,,,,,,Sandy_kill_vo,Sandy_lead_vo,Sandy_start_vo,Sandy_ulti_vo,Sandy_hurt_vo,Sandy_die_vo,,Sandy_start_vo,4,50,,80,80,,,35,116,190,330,80,150,270,,,,-10,30,145,Medium,-55,,400,,,TID_SANDSTORM,,sc/ui.sc,hero_icon_sandy,0,human,footstep,30,400,130,,,3,2,1,,,,,,,,,,,,,,,,,2,2,5,,,
32 | BeeSniper,,,bea,BeeSniperWeapon,BeeSniperUlti,BeeSniperSlowPot,720,2400,,,,,,,,,,12,,,178,100,Hero,,,BeeSniperDefault,,,,,,,,takedamage_gen,death_sniper,Gen_move_fx,reload_bea,No_ammo_bea,Minig_dryfire,,,,,,,,,,,Bea_Kill_VO,Bea_Lead_VO,Bea_Start_VO,Bea_Ulti_VO,Bea_Hurt_VO,Bea_Die_VO,Bea_Atk_VO,Bea_Start_VO,0,45,50,80,80,,,35,116,200,320,90,190,270,,,,,80,120,Medium,-46,,450,,,TID_BEE_SNIPER,,sc/ui.sc,hero_icon_bea,100,human,footstep,35,350,160,,,2,3,1,,,,,,,,,,,,,,,,,5,2,2,,,
33 | Mummy,,,emz,MummyWeapon,MummyUlti,,720,3600,,,,,,,,,,12,,,86,76,Hero,,,MummyDefault,,,,,,,,takedamage_gen,death_shotgun_girl,Gen_move_fx,Emz_reload,No_ammo_shotgungirl,Emz_dryfire,,,,,,,,,,,Emz_kill_vo,Emz_lead_vo,Emz_start_vo,Emz_ulti_vo,Emz_hurt_vo,Emz_die_vo,Emz_atk_vo,Emz_start_vo,3,30,,80,80,,,35,116,210,270,90,175,240,,,,-20,,120,Medium,-48,,450,,,TID_MUMMY,,sc/ui.sc,hero_icon_emz,0,human,footstep,25,250,200,,,1,3,2,,,,,,,,,,,ShellyTutorial,,,,,,4,2,3,,,
34 | SpawnerDude,,,mr.p,SpawnerDudeWeapon,SpawnerDudeUlti,,720,3000,,,,,,,,,,12,,,93,86,Hero,,,SpawnerDudeDefault,,,,,,,,takedamage_gen,death_artillery_dude,Gen_move_fx,Mrp_Reload,No_ammo_shotgungirl,Mrp_Dryfire,,,,,,,,,,,Mrp_Kill_VO,Mrp_Lead_VO,Mrp_Lead_VO,Mrp_Ulti_VO,Mrp_Hurt_VO,Mrp_Die_VO,Mrp_Atk_VO,Mrp_Lead_VO,0,35,75,80,80,,,35,110,240,330,90,175,300,true,-500,600,-50,80,120,Medium,-45,,400,,,TID_SPAWNER_DUDE,,sc/ui.sc,hero_icon_mrp,500,human,footstep,30,320,160,,,3,2,1,,,,,,,,,,,PennyTutorial,,,,,,3,2,4,,,
35 | Speedy,,,max,SpeedyWeapon,SpeedyUlti,,820,3200,,,,,,,,,,12,,,105,100,Hero,,,SpeedyDefault,,,,,,,,takedamage_gen,death_gunslinger,Gen_move_fx,reload_max,No_ammo_shotgungirl,dry_fire_max,,,,,,,,,,,Max_Kill_VO,Max_Lead_VO,Max_Start_VO,Max_Ulti_VO,Max_Hurt_VO,Max_Die_VO,,Max_Start_VO,2,35,,80,80,,,35,116,210,284,90,185,270,,,,-20,40,120,Medium,-52,,400,,,TID_SPEEDY,,sc/ui.sc,hero_icon_max,300,human,footstep,25,300,160,,,2,3,1,,,,,,,,,,,ColtTutorial,,,,,,2,2,5,,,
36 | 07220d24fa2e06c356cad4e7c6037d70b265010e,,true,shelly,ShotgunGirlWeapon,ShotgunGirlUlti,,720,3800,,,,,,,,,,12,,,134,112,Hero,,,BanditGirlDefault,,,,,,,,takedamage_gen,death_shotgun_girl,Gen_move_fx,reload_shotgun_girl,No_ammo_shotgungirl,Dry_fire_shotgungirl,,,,,,,,,,,Shelly_Kill,Shelly_Lead,Shelly_Start,Utilshotgun_Vo,ShellyTakedamge_Vo,Shelly_Die,,Shelly_Start,2,30,,80,80,,,35,116,210,284,90,175,260,,,,-25,40,120,Medium,-48,,450,,,TID_SHOTGUN_GIRL,,sc/ui.sc,hero_icon_shelly,1000,human,footstep,25,250,200,,,1,3,2,,,,,,,,,,,ShellyTutorial,,,,,,4,3,2,,,
37 | Driller,,,jacky,DrillerWeapon,DrillerUlti,,770,5000,,,,,,,,,,12,,,87,100,Hero,,,DrillerDefault,,,,,,,,takedamage_gen,death_shotgun_girl,Gen_move_fx,reload_jackie,No_ammo_shotgungirl,Jackie_dryfire,,,,,,,,,,,Jackie_Kill_VO,Jackie_Lead_VO,Jackie_Start_VO,Jackie_Ulti_VO,Jackie_Hurt_VO,Jackie_Die_VO,,Jackie_Start_VO,1,50,,80,80,,,35,130,210,350,90,175,310,,,,,,145,Medium,-59,,450,,,TID_DRILLER,,sc/ui.sc,hero_icon_jacky,400,human,footstep,25,300,130,,,1,2,3,,,,,,,,,,240,TaraTutorial,,,,,,2,5,2,,,
38 | Blower,,,gale,BlowerWeapon,BlowerUlti,,720,3600,,,,,,,,,,12,,,120,209,Hero,,,BlowerDefault,,,,,,,,takedamage_gen,death_shotgun_girl,Gen_move_fx,reload_gale,No_ammo_shotgungirl,gale_dryfire,,,,,,,,,,,Gale_Kill_VO,Gale_Lead_VO,Gale_Start_VO,Gale_Ulti_VO,Gale_Hurt_VO,Gale_Die_VO,,Gale_Start_VO,0,50,,80,80,,,35,120,210,300,90,175,270,,,,,50,120,Medium,-59,,450,,,TID_BLOWER,,sc/ui.sc,hero_icon_gale,400,human,footstep,25,300,130,,,1,2,3,,,,,,,,,,,TaraTutorial,,,,,,2,2,5,,,
39 | Controller,,,nani,ControllerWeapon,ControllerUlti,,720,2600,,,,,,,,,,12,,,100,50,Hero,,,ControllerDefault,,,,,,,,takedamage_gen,death_shotgun_girl,Gen_move_fx,Nani_Reload,No_ammo_shotgungirl,Nani_Dryfire,,,,,,,,,,,Nani_Kill_VO,Nani_Lead_VO,Nani_Start_VO,Nani_Ulti,Nani_Hurt_VO,Nani_Die_VO,,Nani_Start_VO,0,50,,80,80,,,35,100,210,300,90,175,270,,,,-260,100,120,Medium,-59,,250,,,TID_CONTROLLER,,sc/ui.sc,hero_icon_nani,400,human,footstep,25,300,130,,,1,2,3,,,,,,,,,,,TaraTutorial,,,,,,5,1,3,,,
40 | Wally,,,sprout,WallyWeapon,WallyUlti,,720,3000,,,,,,,,,,12,,,84,100,Hero,,,WallyDefault,,,,,,,,takedamage_gen,death_shotgun_girl,Gen_move_fx,reload_sprout,No_ammo_shotgungirl,sprout_dryfire,,,,,,,,,,,Sprout_Kill_VO,Sprout_Lead_VO,Sprout_Start_VO,Sprout_Ulti_VO,Sprout_Hurt_VO,Sprout_Die_VO,,Sprout_Start_VO,1,50,,80,80,,,35,120,210,300,90,175,270,,,,,140,120,Medium,-59,,450,,,TID_WALLY,,sc/ui.sc,hero_icon_sprout,400,human,footstep,25,300,130,,,1,2,3,,,,,,,,,,,TaraTutorial,,,,,,3,2,4,,,
41 | PowerLeveler,,,surge,PowerLevelerWeapon,PowerLevelerUlti,,650,2800,,,,,,,,,,12,,,120,134,Hero,,,PowerLevelerDefault,,,,,,,,takedamage_gen,death_artillery_dude,Gen_move_fx,Surge_Reload,No_ammo_shotgungirl,Surge_Dryfire,,,,,,,,,,,Surge_Kill_VO,Surge_Lead_VO,Surge_Start_VO,Surge_Ulti_VO,Surge_Hurt_VO,Surge_Die_VO,Surge_Atk_VO,Surge_Start_VO,4,35,,80,80,,,35,90,190,200,80,150,200,,,600,,,120,Medium,-45,,400,,,TID_POWER_LEVELER,,sc/ui.sc,hero_icon_surge,500,human,footstep,20,200,160,,,3,2,1,,,,,,,,,,,PennyTutorial,,,,,true,5,3,1,,,
42 | Percenter,,,colette,PercenterWeapon,PercenterUlti,,720,3400,,,,,,,,,,12,,,100,100,Hero,,,PercenterDefault,,,,,,,,takedamage_gen,death_mechanic,Gen_move_fx,reload_mechanic,No_ammo_shotgungirl,dry_fire_mechanic,,,,,,,,,,,Colette_Kill_VO,Colette_Lead_VO,Colette_Start_VO,Colette_Ulti_VO,Colette_Hurt_VO,Colette_Die_VO,,Colette_Start_VO,5,35,,80,80,,,35,116,210,284,90,175,260,,,,-25,40,120,Medium,-48,,400,,,TID_PERCENTER,,sc/ui.sc,hero_icon_colette,500,human,footstep,40,300,160,,,3,2,1,,,,,,,,,,,PennyTutorial,,,,,,4,2,3,,,
43 | FireDude,,,amber,FireDudeWeapon,FireDudeUlti,,720,3200,,,,,,,,,,12,,,91,53,Hero,,,FireDudeDefault,,,,,,,,takedamage_gen,death_arcade,Gen_move_fx,Amber_Reload,No_ammo_shotgungirl,Amber_Dryfire,,,,,,,,,,,Amber_Kill_VO,Amber_Lead_VO,Amber_Start_VO,Amber_Ulti_VO,Amber_Hurt_VO,Amber_Die_VO,Amber_Atk_VO,Amber_Start_VO,1,40,,80,80,,,35,116,210,284,90,175,260,true,,,-80,,120,Medium,-59,,450,,,TID_FIRE_DUDE,,sc/ui.sc,hero_icon_amber,400,human,footstep,30,400,130,,,1,3,2,,,,,,,,,,,PamTutorial,,,,,,5,2,2,,,
44 | IceDude,,,lou,IceDudeWeapon,IceDudeUlti,,720,3200,,,,,,,,,,12,,,143,100,Hero,,,IceDudeDefault,,,,,,,,takedamage_gen,death_cactus,Gen_move_fx,Lou_Reload,No_ammo_shotgungirl,Lou_Dryfire,,,,,,,,,,,Lou_Kill_VO,Lou_Lead_VO,Lou_Start_VO,Lou_Ulti_VO,Lou_Hurt_VO,Lou_Die_VO,Lou_Atk_VO,Lou_Start_VO,2,35,50,80,80,,,35,116,240,324,80,210,290,,,,,50,120,Medium,-32,,450,,,TID_ICE_DUDE,,sc/ui.sc,hero_icon_lou,0,human,footstep,40,300,100,true,true,2,1,3,,,,,,,,,,,SpikeTutorial,,,,,,3,1,5,,,
45 | SnakeOil,,,byron,SnakeOilWeapon,SnakeOilUlti,,720,2400,,,,,,,,,,12,,,131,61,Hero,,,SnakeOilDefault,,,,,,,,takedamage_gen,death_sniper,Gen_move_fx,Byron_Reload,No_ammo_shotgungirl,Byron_Dryfire,,,,,,,,,,,Snakeoil_Kill_VO,Snakeoil_Lead_VO,Snakeoil_Start_VO,Snakeoil_Ulti_VO,Snakeoil_Hurt_VO,Snakeoil_Die_VO,,Snakeoil_Start_VO,0,45,,80,80,,,35,140,230,320,100,190,260,,,,,,120,Medium,-46,,450,,,TID_SNAKE_OIL,,sc/ui.sc,hero_icon_byron,100,human,footstep,25,400,160,,,2,3,1,,,,,,,,,,,PiperTutorial,,,,,,3,2,4,,,
46 | Enrager,,,edgar,EnragerWeapon,EnragerUlti,,820,2800,,,,,,,,,,12,,,62,100,Hero,,,EnragerDefault,,,,,,,,takedamage_gen,death_undertaker,Gen_move_fx,Edgar_Reload,No_ammo_shotgungirl,dry_fire_barkeep,,,,,,,,,,,Edgar_Kill_VO,Edgar_Lead_VO,Edgar_Start_VO,Edgar_Ulti_VO,Edgar_Hurt_VO,Edgar_Die_VO,,Edgar_Start_VO,5,50,,80,80,,,35,116,200,285,95,170,260,,,,,20,120,Medium,-59,,350,,,TID_ENRAGER,,sc/ui.sc,hero_icon_edgar,0,human,footstep,25,350,165,,,1,2,3,,,,,,,,,132,,MortisTutorial,,,,,,5,3,1,,,
47 | Ruffs,,,ruffs,RuffsWeapon,RuffsUlti,,720,2800,,,,,,,,,,12,,,122,134,Hero,,,RuffsDefault,,,,,,,,takedamage_gen,death_sniper,Gen_move_fx,Ruff_Reload,No_ammo_shotgungirl,Ruff_Dryfire,,,,,,,,,,,Ruff_Kill_VO,Ruff_Lead_VO,Ruff_Start_VO,Ruff_Ulti_VO,Ruff_Hurt_VO,Ruff_Die_VO,,Ruff_Start_VO,1,45,,80,80,,,35,116,200,320,90,190,260,,,,,,120,Medium,-46,,450,,,TID_RUFFS,,sc/ui.sc,hero_icon_ruffs,100,human,footstep,25,400,160,,,2,3,1,,,,,,,,,,,PiperTutorial,,,,,,2,2,5,,,
48 | Roller,,,stu,RollerWeapon,RollerUlti,,720,2800,,,,,,,,,,12,,,1000,100,Hero,,,RollerDefault,,,,,,,,takedamage_gen,death_shotgun_girl,Gen_move_fx,Stu_Reload,No_ammo_shotgungirl,Stu_Dryfire,,,,,,,,,,,Stu_Kill_VO,Stu_Lead_VO,Stu_Start_VO,Stu_Ulti_VO,Stu_Hurt_VO,Stu_Die_VO,,Stu_Start_VO,7,30,50,80,80,,,35,130,210,284,90,175,290,,,,-25,40,120,Medium,-48,,450,,,TID_ROLLER,,sc/ui.sc,hero_icon_stu,1000,human,footstep,25,250,200,,,1,3,2,,,,,,,,,,,ShellyTutorial,,,,,,4,3,2,,,
49 | ElectroSniper,,,belle,ElectroSniperWeapon,ElectroSniperUlti,,720,2600,,,,,,,,,,12,,,84,200,Hero,,,ElectroSniperDefault,,,,,,,,takedamage_gen,death_shaman,Gen_move_fx,Belle_Reload,No_ammo_shotgungirl,Belle_Dryfire,,,,,,,,,,,Belle_Kill_VO,Belle_Lead_VO,Belle_Start_VO,Belle_Ulti_VO,Belle_Hurt_VO,Belle_Die_VO,,Belle_Start_VO,2,35,,80,80,,,35,116,190,300,80,150,270,,,,,,120,Medium,-46,,100,,,TID_ELECTRO_SNIPER,,sc/ui.sc,hero_icon_belle,1000,human,footstep,25,250,100,,,3,1,2,,,,,,,,,,,NitaTutorial,,,,,,5,1,3,,,
50 | StickyBomb,,,squeak,StickyBombWeapon,StickyBombUlti,,720,3600,,,,,,,,,,12,,,100,50,Hero,,,StickyBombDefault,,,,,,,,takedamage_gen,death_crow,Gen_move_fx,reload_crow,No_ammo_shotgungirl,crow_dryfire,,,,,,,,,,,Squeak_Kill_VO,Squeak_Lead_VO,Squeak_Start_VO,,Squeak_Hurt_VO,Squeak_Die_VO,,Squeak_Start_VO,3,45,,80,80,,,35,116,230,350,90,210,290,,,,-10,20,120,Medium,-41,,400,,,TID_STICKY_BOMB,,sc/ui.sc,hero_icon_squeak,0,human,footstep,20,200,100,true,true,2,1,3,,,,,,,,,,,CrowTutorial,,,,,,4,2,3,,,
51 | c40e04a2c11fef1c9e5ad740e344f6571f5e7d05,,true,shelly,ShotgunGirlWeapon,ShotgunGirlUlti,,720,3800,,,,,,,,,,12,,,134,112,Hero,,,BanditGirlDefault,,,,,,,,takedamage_gen,death_shotgun_girl,Gen_move_fx,reload_shotgun_girl,No_ammo_shotgungirl,Dry_fire_shotgungirl,,,,,,,,,,,Shelly_Kill,Shelly_Lead,Shelly_Start,Utilshotgun_Vo,ShellyTakedamge_Vo,Shelly_Die,,Shelly_Start,2,30,,80,80,,,35,116,210,284,90,175,260,,,,-25,40,120,Medium,-48,,450,,,TID_SHOTGUN_GIRL,,sc/ui.sc,hero_icon_shelly,1000,human,footstep,25,250,200,,,1,3,2,,,,,,,,,,,ShellyTutorial,,,,,,4,3,2,,,
52 | RopeDude,,,buzz,RopeDudeWeapon,RopeDudeUlti,,770,4200,,,,,,,,,,12,,,96,100,Hero,,,RopeDudeDefault,,,,,,RopeDudeSuperChargeArea,,takedamage_gen,death_rosa,Gen_move_fx,reload_rosa,No_ammo_shotgungirl,dry_fire_barkeep,,,,,,,,,,,Buzz_Kill_VO,Buzz_Lead_VO,Buzz_Start_VO,Buzz_Ulti_VO,Buzz_Hurt_VO,Buzz_Die_VO,,Buzz_Start_VO,2,50,,80,80,,,35,116,210,330,90,210,300,,,,,50,120,Medium,-55,,400,,,TID_ROPE_DUDE,,sc/ui.sc,hero_icon_buzz,0,human,footstep,30,400,130,,,3,2,1,,,,,,,,,,,,,,,,,3,2,4,,,
53 | AssaultShotgun,,,griff,AssaultShotgunWeapon,AssaultShotgunUlti,,720,3400,,,,,,,,,,12,,,152,102,Hero,,,AssaultShotgunDefault,,,,,,,,takedamage_gen,death_shotgun_girl,Gen_move_fx,Griff_Reload,No_ammo_shotgungirl,Dry_fire_shotgungirl,,,,,,,,,,,Griff_Kill_VO,Griff_Lead_VO,Griff_Start_VO,Griff_Ulti_VO,Griff_Hurt_VO,Griff_Die_VO,,Griff_Start_VO,2,30,,80,80,,,35,100,180,240,80,150,200,,,,-25,40,120,Medium,-48,,450,,,TID_ASSAULT_SHOTGUN,,sc/ui.sc,hero_icon_griff,1000,human,footstep,25,250,200,,,1,3,2,,,,,,,,,,,ShellyTutorial,,,,,,5,3,1,,,
54 | Knight,,,ash,KnightWeapon,KnightUlti,,720,4800,,,,,,,,,,12,,,84,50,Hero,,,KnightDefault,,,,,,,,takedamage_gen,death_baseball,Gen_move_fx,reload_baseball,No_ammo_shotgungirl,dry_fire_barkeep,,bibi_def_atk_hit,,,,,,,,,Ash_Kill_VO,Ash_Lead_VO,Ash_Start_VO,Ash_Ulti_VO,Ash_Hurt_VO,Ash_Die_VO,,Ash_Start_VO,0,75,,80,80,,,35,110,200,250,90,190,250,,,,-250,75,145,Medium,-48,,0,,,TID_KNIGHT,,sc/ui.sc,hero_icon_ash,0,human,footstep,25,400,100,,,1,3,2,,,,,,,,,,,,,,,,,5,3,1,,,
55 | MechaDude,,,meg,MechaDudeWeapon,MechaDudeUlti,MechaDudeBig,770,2200,,,,,,,,,,12,,,223,100,Hero,,,MechaDudeDefault,,,,,,,,takedamage_gen,death_sniper,Gen_move_fx,Meg_Reload,No_ammo_shotgungirl,Meg_Dryfire,,,,,,,,,,,Meg_kill_vo,Meg_lead_vo,Meg_start_vo,Meg_ulti_vo,Meg_hurt_vo,Meg_die_vo,,Meg_start_vo,0,45,50,80,80,,,35,116,190,250,80,150,270,true,700,1000,25,0,120,Medium,-46,,450,,,TID_MECHA_DUDE,,sc/ui.sc,hero_icon_meg,100,human,footstep,35,350,160,,,2,3,1,,,,,,,,,,,,,,,,,4,3,2,,,
56 | Duplicator,,,lolla,DuplicatorWeapon,DuplicatorUlti,,720,4000,,,,,,,,,,12,,,100,50,Hero,,,DuplicatorDefault,,,,,,,,takedamage_gen,death_shaman,Gen_move_fx,,No_ammo_shotgungirl,dry_fire_barkeep,,,,,,,,,,,Lolla_Kill_VO,Lolla_Lead_VO,Lolla_Start_VO,Lolla_Ulti_VO,Lolla_Hurt_VO,Lolla_Die_VO,,Lolla_Start_VO,0,35,,80,80,,,35,116,190,250,80,150,270,,0,0,-250,60,120,Medium,-46,,100,,,TID_DUPLICATOR,,sc/ui.sc,hero_icon_lolla,1000,human,footstep,25,250,160,,,3,1,2,,,,,,,,,,,NitaTutorial,,,,,,4,2,3,,,
57 | TutorialDummy,,,,,,,0,700,,,,,,,,,,12,,,,,Minion_Building,,,MeleeBotDefault,,,,,,,,takedamage_gen,nuts_bolts_metal_explosion,Gen_move_fx,,No_ammo_shotgungirl,,tutorial_robo_spawn,,,,,,,,,,,,,,,,,,,35,,80,80,,,35,140,,,,,,,,,,,145,Medium,-60,,350,,,,,,,,,footstep,25,400,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
58 | TutorialDummy2,,,,,,,0,700,,,,,,,,,,12,,,,,Minion_Building_charges_ulti,,,MeleeBotDefault,,,,,,,,takedamage_gen,nuts_bolts_metal_explosion,Gen_move_fx,,,,tutorial_robo_spawn,,,,,,,,,,,,,,,,,,,35,,80,80,,,35,140,,,,,,,,,,,145,Medium,-60,,350,,,,,,,,,footstep,25,400,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
59 | MechanicTurret,,,,,,,0,3000,,,,300,260,,,30,MechanicTurretProjectile,27,,,1,,Minion_Building,,,TurretDefault,,,,,,,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,,,,,SpawnTurret,,jessie_def_turret_atk,,,,,,,,,,,,,,,,,35,,75,75,,,25,116,220,297,,,,,1000,-400,,,120,Medium,-32,,220,,,,,,,,,footstep,25,400,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
60 | HealingStation,,,,,,,0,2800,,,,,,,,,,12,,,,,Minion_Building,,,HealstationDefault,,,,,,HealingStationHeal,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,,,,,pam_def_ulti_spawn,,,,,,,,,,,,,,,,,,,,,75,75,,,25,110,100,200,,,,,1400,-500,,,120,Medium,-49,,300,,,,,,,,,footstep,25,400,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
61 | Safe,,,,,,,0,40000,,,,700,,,,,,20,,,,,Pvp_Base,,,Safe,,,,,,,,nuts_bolts_metal_small,safe_explosion,,,,,,,,,,,,,,,,,,,,,,,,,,100,-100,0,0,0,84,,,,,,,,,,,160,Medium,-75,,300,,,,,,,,,footstep,25,400,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
62 | ExplodingBarrel,,,,,,,0,12000,,,,,,,,,,,,,,,Minion_Building,,,,,sc/level.sc,tnt_box,tnt_box,tnt_box_shadow,,ExplodingBarrelExplosion,,,,,,,,,,,,,,,,,,,,,,,,,,35,,100,-100,0,0,0,95,,,,,,,,,,,145,Medium,-59,,350,,,,,,,,,footstep,25,400,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
63 | PoisonBarrel,,,,,,,0,2,,,,,,,,,,,,,,,Minion_Building,,,Safe,,,,,,,PoisonBarrelExplosion,,,,,,,,,,,,,,,,,,,,,,,,,,35,,80,80,,,35,106,,,,,,,,,,,145,,0,,350,,,,,,,,,footstep,25,400,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
64 | ShamanPet,,,,,,,610,4000,,,,600,400,,,,,6,,,1,,Minion_FindEnemies,,,ShamanBearDefault,,,,,,,,,death_bull_dude,Gen_move_fx,,,,nita_def_ulti_spawn,,bear_attack,,,,,,,,,,,,,,,,,30,,85,80,,,25,106,200,280,,,,,500,-1250,,,145,Medium,-63,,100,,,,,,,,,footstep,25,250,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
65 | BoneThrowerPet,,,,,,,870,4000,,,,300,600,,,,,6,1200,,,,Minion_Dog,,,ShamanBearDefault,,,,,,,,,death_bull_dude,Gen_move_fx,,,,nita_def_ulti_spawn,,bear_attack,,,,,,,,,,,,,,,,,30,,85,80,,,25,84,,,,,,,,,,,120,Medium,-43,,,,,,,,,,,footstep,25,250,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
66 | LaserBall,,,,,,,0,1,,,,,,,,,,,,,,,Carryable,LaserBall,,BallDefault,,,,,,,,,laser_ball_goal,,,,,,,,,,,,,,,,,,,,,,,,,,80,80,,,25,179,,,,,,,,,,,120,,0,,,,,,,,,,,,,,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
67 | LootBox,,,,,,,0,4300,,,,,,,,,,,,true,,,LootBox,,,LootBox,,,,,,,,,Gen_wood_explosion,,,,,,,,,,,,,,,,,,,,,,,,35,,100,-100,0,0,0,95,,,,,,,,,,,145,Medium,-40,,350,,,,,,,,,footstep,25,400,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
68 | TutorialDummy3,,,,,,,0,4000,,,,,,,,,,12,,,,,Minion_Building_charges_ulti,,,BossBotDefault,,,,,,,,takedamage_gen,boss_explosion,Gen_move_fx,,,,tutorial_robo_spawn,,,,,,,,,,,,,,,,,,,35,,80,80,,,35,200,,,,,,,,,,,145,Medium,-75,,350,,,,,,,,,footstep,25,400,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
69 | ArtilleryDudeTurret,,,,,,,0,2800,,,,2500,1200,,,,ArtilleryDudeTurretProjectile,40,,,1,,Minion_Building,,,ArtilleryTurretDefault,,,,,,,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,,,,,penny_def_ulti_spawn,,penny_def_turret_atk,,,,,,,,,,,,,,,,,35,,75,75,,,25,116,180,243,,,,,1000,-1400,,,120,Medium,-32,,150,,,,,,,,,footstep,25,400,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
70 | CoopMeleeEnemy1,,,,,,,600,4800,,,,400,260,,,,,5,,,,,Minion_FindEnemies,,,MeleeBotDefault,,,,,,,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,Gen_move_fx,,,,robo_spawn,,coop_melee_attack,,,,,,,,,,,,,,,,,30,70,85,80,,,25,127,200,270,,,,,,,,,120,Medium,-54,,,,,,,,,,,footstep,25,250,130,,,,,,,,,,,,,,,,,,,,,,,,,,,
71 | CoopMeleeEnemy2,,,,,,,600,6800,,,,400,470,,,,,5,,,,,Minion_FindEnemies,,,MeleeBotDefault,,,,,,,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,Gen_move_fx,,,,robo_spawn,,coop_melee_attack,,,,,,,,,,,,,,,,,30,70,85,80,,,25,148,200,270,,,,,,,,,145,Medium,-59,,,,,,,,,,,footstep,25,250,130,,,,,,,true,30,,30,255,120,255,,,,,,,,,,,,,,
72 | CoopMeleeEnemy3,,,,,,,600,11000,,,,400,600,,,,,6,,,,,Minion_FindEnemies,,,MeleeBotDefault,,,,,,,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,Gen_move_fx,,,,robo_spawn,,coop_melee_attack,,,,,,,,,,,,,,,,,30,70,85,80,,,25,169,200,270,,,,,,,,,170,Medium,-65,,,,,,,,,,,footstep,25,250,130,,,,,,,true,100,,,255,140,140,,,,,,,,,,,,,,
73 | CoopMeleeEnemy4,,,,,,,600,16200,,,,400,730,,,,,6,,,,,Minion_FindEnemies,,,MeleeBotDefault,,,,,,,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,Gen_move_fx,,,,robo_spawn,,coop_melee_attack,,,,,,,,,,,,,,,,,30,70,85,80,,,25,190,200,270,,,,,,,,,195,Medium,-70,,,,,,,,,,,footstep,25,250,130,,,,,,,true,150,100,,255,255,180,,,,,,,,,,,,,,
74 | CoopFastMeleeEnemy1,,,,,,,900,3000,,,,600,400,,,,,5,,,,,Minion_FindEnemies,,,MeleeFastBotDefault,,,,,,,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,Gen_move_fx,,,,robo_spawn,,coop_fast_melee_attack,,,,,,,,,,,,,,,,,30,,85,80,,,25,106,200,270,,,,,,,,,100,Medium,-43,,,,,,,,,,,footstep,25,250,130,,,,,,,,,,,,,,,,,,,,,,,,,,,
75 | CoopFastMeleeEnemy2,,,,,,,900,5400,,,,600,720,,,,,5,,,,,Minion_FindEnemies,,,MeleeFastBotDefault,,,,,,,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,Gen_move_fx,,,,robo_spawn,,coop_fast_melee_attack,,,,,,,,,,,,,,,,,30,,85,80,,,25,127,200,270,,,,,,,,,120,Medium,-49,,,,,,,,,,,footstep,25,250,130,,,,,,,true,30,,30,255,120,255,,,,,,,,,,,,,,
76 | CoopFastMeleeEnemy3,,,,,,,900,6900,,,,600,920,,,,,6,,,,,Minion_FindEnemies,,,MeleeFastBotDefault,,,,,,,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,Gen_move_fx,,,,robo_spawn,,coop_fast_melee_attack,,,,,,,,,,,,,,,,,30,,85,80,,,25,148,200,270,,,,,,,,,140,Medium,-54,,,,,,,,,,,footstep,25,250,130,,,,,,,true,100,,,255,140,140,,,,,,,,,,,,,,
77 | CoopFastMeleeEnemy4,,,,,,,900,10080,,,,600,1120,,,,,6,,,,,Minion_FindEnemies,,,MeleeFastBotDefault,,,,,,,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,Gen_move_fx,,,,robo_spawn,,coop_fast_melee_attack,,,,,,,,,,,,,,,,,30,,85,80,,,25,169,200,270,,,,,,,,,160,Medium,-59,,,,,,,,,,,footstep,25,250,130,,,,,,,true,150,100,,255,255,180,,,,,,,,,,,,,,
78 | CoopRangedEnemy1,,,,,,,750,2000,,,,1400,630,,,30,CoopRangedEnemyProjectile,27,,,,,Minion_FindEnemies,,,RangedBotDefault,,,,,,,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,Gen_move_fx,,,,robo_spawn,,coop_ranged_attack,,,,,,,,,,,,,,,,,30,,85,80,,,25,127,200,270,,,,,,,,,100,Medium,-49,,350,,,,,,,,,footstep,25,250,130,,,,,,,,,,,,,,,,,,,,,,,,,,,
79 | CoopRangedEnemy2,,,,,,,750,3600,,,,1400,1130,,,30,CoopRangedEnemyProjectile,27,,,,,Minion_FindEnemies,,,RangedBotDefault,,,,,,,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,Gen_move_fx,,,,robo_spawn,,coop_ranged_attack,,,,,,,,,,,,,,,,,30,,85,80,,,25,148,200,270,,,,,,,,,120,Medium,-54,,350,,,,,,,,,footstep,25,250,130,,,,,,,true,30,,30,255,120,255,,,,,,,,,,,,,,
80 | CoopRangedEnemy3,,,,,,,750,4600,,,,1400,1450,,,30,CoopRangedEnemyProjectile,27,,,,,Minion_FindEnemies,,,RangedBotDefault,,,,,,,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,Gen_move_fx,,,,robo_spawn,,coop_ranged_attack,,,,,,,,,,,,,,,,,30,,85,80,,,25,169,200,270,,,,,,,,,140,Medium,-59,,350,,,,,,,,,footstep,25,250,130,,,,,,,true,100,,,255,140,140,,,,,,,,,,,,,,
81 | CoopRangedEnemy4,,,,,,,750,6700,,,,1400,1760,,,30,CoopRangedEnemyProjectile,27,,,,,Minion_FindEnemies,,,RangedBotDefault,,,,,,,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,Gen_move_fx,,,,robo_spawn,,coop_ranged_attack,,,,,,,,,,,,,,,,,30,,85,80,,,25,190,200,270,,,,,,,,,160,Medium,-65,,350,,,,,,,,,footstep,25,250,130,,,,,,,true,150,100,,255,255,180,,,,,,,,,,,,,,
82 | TntPet,,,,,,,770,2400,,,,600,400,,,30,ShotgunGirlPetProjectile,22,320,,,,Minion_FollowOwner,,,TntPetDefault,,,,,,,,,death_shotgun_girl,Gen_move_fx,,,,,,bear_attack,,,,,,,,,,,,,,,,,30,,85,80,,,25,43,200,270,,,,,,,,,90,Medium,-11,,350,,,,,,,,,footstep,25,250,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
83 | BlackHolePet,,,,,,,870,3000,,,,600,800,,,,,5,,,,,Minion_FindEnemies,,,BlackholePetDefault,,,,,,,,,death_shotgun_girl,,,,,tara_def_ulti_starPower_spawn,,bear_attack,,,,,,sparkle_trail_dark_minion,,,,,,,,,,,30,,85,80,,,25,95,200,270,,,,,,,,,90,Medium,-43,,350,,,,,,,,,,25,250,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
84 | CoopBoss1,,,,BossRapidFire,BossCharge,,600,45000,,,,400,600,,,,,8,,,,,Npc_Boss,,,BigBotDefault,,,,,,,,nuts_bolts_metal_small,boss_explosion,Gen_move_fx,,,,robo_spawn,,coop_melee_attack,,,,,,,,,,,,,,,,,30,150,85,80,,,25,250,200,270,,,,,,,,,220,Medium,-100,,500,,,,,,,,,footstep,60,400,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
85 | CoopBoss2,,,,BossRapidFire2,BossCharge,,600,55000,,,,400,640,,,,,9,,,,,Npc_Boss,,,BigBotDefault,,,,,,,,nuts_bolts_metal_small,boss_explosion,Gen_move_fx,,,,robo_spawn,,coop_melee_attack,,,,,,,,,,,,,,,,,30,150,85,80,,,25,300,200,270,,,,,,,,,250,Medium,-120,,500,,,,,,,,,footstep,60,400,160,,,,,,,true,30,,30,255,120,255,,,,,,,,,,,,,,
86 | CoopBoss3,,,,BossRapidFire3,BossCharge,,600,65000,,,,400,680,,,,,9,,,,,Npc_Boss,,,BigBotDefault,,,,,,,,nuts_bolts_metal_small,boss_explosion,Gen_move_fx,,,,robo_spawn,,coop_melee_attack,,,,,,,,,,,,,,,,,30,150,85,80,,,25,350,200,270,,,,,,,,,280,Medium,-140,,500,,,,,,,,,footstep,60,400,160,,,,,,,true,100,,,255,140,140,,,,,,,,,,,,,,
87 | TutorialExplodingBarrel,,,,,,,0,300,,,,,,,,,,,,,,,Minion_Building,,,TntBox,,,,,,,ExplodingBarrelExplosion,,,,,,,,,,,,,,,,,,,,,,,,,,35,,100,-100,0,0,0,95,,,,,,,,,,,145,,-59,,350,,,,,,,,,footstep,25,400,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
88 | EventModifierBoss,,,,,,,600,22800,,,,400,400,,,,,7,,,,,Minion_FindEnemies2,,,BigBotDefault,,,,,,,,nuts_bolts_metal_small,boss_explosion,Gen_move_fx,,,,robo_spawn,,coop_melee_attack,,,,,,,,,,,,,,,,,35,,85,80,,,25,250,200,270,,,,,,,,,220,Medium,-100,,,,,,,,,,,footstep,25,250,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
89 | RaidBoss,,,,RaidBossRapidFire,RaidBossCharge,,550,250000,,,,400,800,,,,,9,,,,,Npc_Boss,,,BossBotDefault,,,,,,,,nuts_bolts_metal_small,boss_explosion,Gen_move_fx,,,,robo_spawn,,coop_melee_attack,,,,,,,,,,,,,,,,,30,150,85,80,,,25,300,200,270,,,,,,,,,280,Medium,-130,,500,,,,,,,,,footstep,60,400,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
90 | RaidBossMeleeEnemy1,,,,,,,650,3600,,,,400,260,,,,,5,,,,,Minion_FindEnemies,,,MeleeBotDefault,,,,,,,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,Gen_move_fx,,,,robo_spawn,,coop_melee_attack,,,,,,,,,,,,,,,,,30,70,85,80,,,25,127,200,270,,,,,,,,,120,Medium,-54,,,,,,,,,,,footstep,25,250,130,,,,,,,,,,,,,,,,,,,,,,,,,,,
91 | RaidBossMeleeEnemy2,,,,,,,650,5100,,,,400,470,,,,,5,,,,,Minion_FindEnemies,,,MeleeBotDefault,,,,,,,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,Gen_move_fx,,,,robo_spawn,,coop_melee_attack,,,,,,,,,,,,,,,,,30,70,85,80,,,25,148,200,270,,,,,,,,,145,Medium,-59,,,,,,,,,,,footstep,25,250,130,,,,,,,true,30,,30,255,120,255,,,,,,,,,,,,,,
92 | RaidBossMeleeEnemy3,,,,,,,650,8250,,,,400,600,,,,,6,,,,,Minion_FindEnemies,,,MeleeBotDefault,,,,,,,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,Gen_move_fx,,,,robo_spawn,,coop_melee_attack,,,,,,,,,,,,,,,,,30,70,85,80,,,25,169,200,270,,,,,,,,,170,Medium,-65,,,,,,,,,,,footstep,25,250,130,,,,,,,true,100,,,255,140,140,,,,,,,,,,,,,,
93 | RaidBossMeleeEnemy4,,,,,,,650,12150,,,,400,730,,,,,6,,,,,Minion_FindEnemies,,,MeleeBotDefault,,,,,,,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,Gen_move_fx,,,,robo_spawn,,coop_melee_attack,,,,,,,,,,,,,,,,,30,70,85,80,,,25,190,200,270,,,,,,,,,195,Medium,-70,,,,,,,,,,,footstep,25,250,130,,,,,,,true,150,100,,255,255,180,,,,,,,,,,,,,,
94 | RaidBossFastMeleeEnemy1,,,,,,,950,2250,,,,600,400,,,,,5,,,,,Minion_FindEnemies,,,MeleeFastBotDefault,,,,,,,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,Gen_move_fx,,,,robo_spawn,,coop_fast_melee_attack,,,,,,,,,,,,,,,,,30,,85,80,,,25,106,200,270,,,,,,,,,100,Medium,-43,,,,,,,,,,,footstep,25,250,130,,,,,,,,,,,,,,,,,,,,,,,,,,,
95 | RaidBossFastMeleeEnemy2,,,,,,,950,4050,,,,600,720,,,,,5,,,,,Minion_FindEnemies,,,MeleeFastBotDefault,,,,,,,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,Gen_move_fx,,,,robo_spawn,,coop_fast_melee_attack,,,,,,,,,,,,,,,,,30,,85,80,,,25,127,200,270,,,,,,,,,120,Medium,-49,,,,,,,,,,,footstep,25,250,130,,,,,,,true,30,,30,255,120,255,,,,,,,,,,,,,,
96 | RaidBossFastMeleeEnemy3,,,,,,,950,5175,,,,600,920,,,,,6,,,,,Minion_FindEnemies,,,MeleeFastBotDefault,,,,,,,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,Gen_move_fx,,,,robo_spawn,,coop_fast_melee_attack,,,,,,,,,,,,,,,,,30,,85,80,,,25,148,200,270,,,,,,,,,140,Medium,-54,,,,,,,,,,,footstep,25,250,130,,,,,,,true,100,,,255,140,140,,,,,,,,,,,,,,
97 | RaidBossFastMeleeEnemy4,,,,,,,950,7560,,,,600,1120,,,,,6,,,,,Minion_FindEnemies,,,MeleeFastBotDefault,,,,,,,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,Gen_move_fx,,,,robo_spawn,,coop_fast_melee_attack,,,,,,,,,,,,,,,,,30,,85,80,,,25,169,200,270,,,,,,,,,160,Medium,-59,,,,,,,,,,,footstep,25,250,130,,,,,,,true,150,100,,255,255,180,,,,,,,,,,,,,,
98 | RaidBossRangedEnemy1,,,,,,,800,1500,,,,1400,630,,,40,RaidBossRangedEnemyProjectile,27,,,,,Minion_FindEnemies,,,RangedBotDefault,,,,,,,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,Gen_move_fx,,,,robo_spawn,,coop_ranged_attack,,,,,,,,,,,,,,,,,30,,85,80,,,25,127,200,270,,,,,,,,,100,Medium,-49,,350,,,,,,,,,footstep,25,250,130,,,,,,,,,,,,,,,,,,,,,,,,,,,
99 | RaidBossRangedEnemy2,,,,,,,800,2700,,,,1400,1130,,,40,RaidBossRangedEnemyProjectile,27,,,,,Minion_FindEnemies,,,RangedBotDefault,,,,,,,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,Gen_move_fx,,,,robo_spawn,,coop_ranged_attack,,,,,,,,,,,,,,,,,30,,85,80,,,25,148,200,270,,,,,,,,,120,Medium,-54,,350,,,,,,,,,footstep,25,250,130,,,,,,,true,30,,30,255,120,255,,,,,,,,,,,,,,
100 | RaidBossRangedEnemy3,,,,,,,800,3450,,,,1400,1450,,,40,RaidBossRangedEnemyProjectile,27,,,,,Minion_FindEnemies,,,RangedBotDefault,,,,,,,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,Gen_move_fx,,,,robo_spawn,,coop_ranged_attack,,,,,,,,,,,,,,,,,30,,85,80,,,25,169,200,270,,,,,,,,,140,Medium,-59,,350,,,,,,,,,footstep,25,250,130,,,,,,,true,100,,,255,140,140,,,,,,,,,,,,,,
101 | RaidBossRangedEnemy4,,,,,,,800,5040,,,,1400,1760,,,40,RaidBossRangedEnemyProjectile,27,,,,,Minion_FindEnemies,,,RangedBotDefault,,,,,,,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,Gen_move_fx,,,,robo_spawn,,coop_ranged_attack,,,,,,,,,,,,,,,,,30,,85,80,,,25,190,200,270,,,,,,,,,160,Medium,-65,,350,,,,,,,,,footstep,25,250,130,,,,,,,true,150,100,,255,255,180,,,,,,,,,,,,,,
102 | RoboWarsBase,,,,,,,0,25000,,,,500,700,,,,RoboWarsBaseProjectile,35,,,,,Pvp_Base,,,RoboWarsBaseDefault,,,,,,,,nuts_bolts_metal_small,siege_base_destroyed,,,,,,,siege_base_attack,,,,,,,,,,,,,,,,,40,,100,-100,0,0,0,550,,,,,,,,,,,160,Medium,-75,,300,,,,,,,,,footstep,25,400,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
103 | RoboWarsBox,,,,,,,0,4000,,,,,,,,,,,,,,,LootBox,,,RoboWarsBox,,,,,,,,,Gen_wood_explosion,,,,,robo_wars_box_spawn,,,,,,,,,,,,,,,,,,,35,,100,-100,0,0,0,,,,,,,,,,,,145,Medium,-40,,350,,,,,,,,,footstep,25,400,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
104 | RoboWarsRobo,,,,,,,650,32000,,,,400,350,,,,,6,,,,,RoboWars,,,BigBotDefault,,,,,,,,nuts_bolts_metal_small,explosion_tnt_dude,Gen_move_fx,,,,robo_spawn,,coop_melee_attack,,,,,,,,,,,,,,,,,35,,85,80,,,25,250,200,270,,,,,,,,,220,Medium,-100,,,,,,,,,,,footstep,25,250,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
105 | TrainingDummySmall,,,,,,,0,1500,,,,,,,,,,12,,,,,Minion_Building_charges_ulti,,,MeleeFastBotDefault,,,,,,,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,Gen_move_fx,,,,robo_spawn,,,,,,,,,,,,,,,,,,,35,,80,80,,,35,140,,,,,,,,,,,120,Medium,-50,,350,,,,,,,,,footstep,25,400,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
106 | TrainingDummyMedium,,,,,,,0,4000,,,,,,,,,,12,,,,,Minion_Building_charges_ulti,,,MeleeBotDefault,,,,,,,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,Gen_move_fx,,,,robo_spawn,,,,,,,,,,,,,,,,,,,35,,80,80,,,35,140,,,,,,,,,,,120,Medium,-50,,350,,,,,,,,,footstep,25,400,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
107 | TrainingDummyBig,,,,,,,0,100000,,,,,,,,,,12,,,,,Minion_Building_charges_ulti,,,BossBotDefault,,,,,,,,nuts_bolts_metal_small,boss_explosion,Gen_move_fx,,,,robo_spawn,,,,,,,,,,,,,,,,,,,35,,80,80,,,35,200,,,,,,,,,,,220,Medium,-75,,350,,,,,,,,,footstep,25,400,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
108 | TrainingDummyShooting,,,,,,,0,4000,,,,1400,500,,,,CoopRangedEnemyProjectile,20,,,,,Minion_Building_charges_ulti,,,RangedBotDefault,,,,,,,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,Gen_move_fx,,,,robo_spawn,,coop_ranged_attack,,,,,,,,,,,,,,,,,50,,85,80,,,25,127,200,270,,,,,,,,,120,Medium,-49,,350,,,,,,,,,footstep,25,250,130,,,,,,,,,,,,,,,,,,,,,,,,,,,
109 | Train0,,,,,,,0,1,,,,,,,,,,,,,,,Train,,,MineCart,,,,,,,,,,Gen_move_fx,,,,,,,,,,,,,,,,,,,,,,,,,80,80,,,25,250,,,,,,,,,,,200,,,,,,,,,,,,,,130,50,,,,,,,,,,,,,,,,,,,,,,,,,,,,
110 | Train1,,,,,,,0,1,,,,,,,,,,,,,,,Train,,,MineCartB,,,,,,,,,,Gen_move_fx,,,,,,,,,,,,,,,,,,,,,,,,,80,80,,,25,250,,,,,,,,,,,200,,,,,,,,,,,,,,130,50,,,,,,,,,,,,,,,,,,,,,,,,,,,,
111 | Train2,,,,,,,0,1,,,,,,,,,,,,,,,Train,,,MineCartC,,,,,,,,,,Gen_move_fx,,,,,,,,,,,,,,,,,,,,,,,,,80,80,,,25,250,,,,,,,,,,,200,,,,,,,,,,,,,,130,50,,,,,,,,,,,,,,,,,,,,,,,,,,,,
112 | Train3,,,,,,,0,1,,,,,,,,,,,,,,,Train,,,MineCartD,,,,,,,,,,Gen_move_fx,,,,,,,,,,,,,,,,,,,,,,,,,80,80,,,25,250,,,,,,,,,,,200,,,,,,,,,,,,,,130,50,,,,,,,,,,,,,,,,,,,,,,,,,,,,
113 | Train4,,,,,,,0,1,,,,,,,,,,,,,,,Train,,,MineCartE,,,,,,,,,,Gen_move_fx,,,,,,,,,,,,,,,,,,,,,,,,,80,80,,,25,250,,,,,,,,,,,200,,,,,,,,,,,,,,130,50,,,,,,,,,,,,,,,,,,,,,,,,,,,,
114 | ClusterBombPet,,,,,,,1200,1600,,,,1000,2000,,,,,,,,1,,Minion_FindEnemies,,,ClusterBombPetDefault,,,,,,,ClusterBombPetExplosion,nuts_bolts_metal_small,nuts_bolts_metal_explosion,,,,,tick_def_ulti_spawn,,,,,,,,,,,,,,,,,,,,,85,80,,,25,150,200,270,,,,,,,,,90,Medium,-43,,,,,,,,,,,,25,250,,,,,,,,,,,,,,,,,,,,,,,,,,,,
115 | BlackHolePet2,,,,,,,870,2400,,,,600,400,,,,BlackHolePet2Projectile,15,,,,,Minion_FindEnemies,,,BlackholePetDefault,,,,,,,,,death_shotgun_girl,,,,,tara_def_ulti_starPower_spawn,,,,,,,,sparkle_trail_dark_minion,,,,,,,,,,,30,,85,80,,,25,95,200,270,,,,,,,,,90,Medium,-43,,350,,,,,,,,,,25,250,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
116 | 49c039b18c82880638cd3ba472dc5db3e8cc6f8b,,true,shelly,ShotgunGirlWeapon,ShotgunGirlUlti,,720,3800,,,,,,,,,,12,,,134,112,Hero,,,BanditGirlDefault,,,,,,,,takedamage_gen,death_shotgun_girl,Gen_move_fx,reload_shotgun_girl,No_ammo_shotgungirl,Dry_fire_shotgungirl,,,,,,,,,,,Shelly_Kill,Shelly_Lead,Shelly_Start,Utilshotgun_Vo,ShellyTakedamge_Vo,Shelly_Die,,Shelly_Start,2,30,,80,80,,,35,116,210,284,90,175,260,,,,-25,40,120,Medium,-48,,450,,,TID_SHOTGUN_GIRL,,sc/ui.sc,hero_icon_shelly,1000,human,footstep,25,250,200,,,1,3,2,,,,,,,,,,,ShellyTutorial,,,,,,4,3,2,,,
117 | DamageBooster,,,,,,,0,2800,,,,,,,,,,12,,,,,Minion_Building,,,DamageBoosterDefault,,,,,,DamageBoost,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,,,,,8bit_def_ulti_spawn,,,,,,,,,,,,,,,,,,,,,75,75,,,25,180,220,300,,,,,1400,-500,,,120,Medium,-49,,300,,,,,,,,,footstep,25,400,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
118 | 4028aae4a6bbbdea17608222005fefc028ff7c45,,true,shelly,ShotgunGirlWeapon,ShotgunGirlUlti,,720,3800,,,,,,,,,,12,,,134,112,Hero,,,BanditGirlDefault,,,,,,,,takedamage_gen,death_shotgun_girl,Gen_move_fx,reload_shotgun_girl,No_ammo_shotgungirl,Dry_fire_shotgungirl,,,,,,,,,,,Shelly_Kill,Shelly_Lead,Shelly_Start,Utilshotgun_Vo,ShellyTakedamge_Vo,Shelly_Die,,Shelly_Start,2,30,,80,80,,,35,116,210,284,90,175,260,,,,-25,40,120,Medium,-48,,450,,,TID_SHOTGUN_GIRL,,sc/ui.sc,hero_icon_shelly,1000,human,footstep,25,250,200,,,1,3,2,,,,,,,,,,,ShellyTutorial,,,,,,4,3,2,,,
119 | BossRaceBoss,,,,BossRaceBossRapidFire,BossRaceBossCharge,,500,220000,,,,400,800,,,,,9,,,,,Npc_Boss,,,BossRaceBossDefault,,,,,,,,nuts_bolts_metal_small,boss_explosion,Gen_move_fx,,,,robo_spawn,,coop_melee_attack,,,,,,,,,,,,,,,,,30,150,85,80,,,25,300,200,270,,,,,,,,,280,Medium,-130,,500,,,,,,,,,footstep,60,400,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
120 | SpawnerDudeTurret,,,,,,SpawnerPet,0,2200,,,,,,,,,,40,,,,,Minion_Building,,,SpawnerDudeTurretDefault,,,,,,,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,,,,,,,,,,,,,,,,,,,,,,,,35,,75,75,,,25,130,180,243,,,,,1000,-1400,,,120,Medium,-32,,150,,,,,,,,,footstep,25,400,160,,,,,,,,,,,,,,,,,,,,4,,,,,,,
121 | SpawnerDudeTurret002,,,,,,SpawnerPet002,0,2200,,,,,,,,,,40,,,,,Minion_Building,,,SpawnerDudeTurretDefault,,,,,,,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,,explosion_pengula,,,,,,,,,,,,,,,,,,,,,,35,,75,75,,,25,130,180,243,,,,,1000,-1400,,,120,Medium,-32,,150,,,,,,,,,footstep,25,400,160,,,,,,,,,,,,,,,,,,,,4,,,,,,,
122 | SpawnerPet,,,,,,,800,1400,,,,700,260,,,,SpawnerPetProjectile,14,,,1,,Minion_FindEnemies,,,SpawnerPetDefault,,,,,,,,,mrp_def_pet_death,Gen_move_fx,,,,nita_def_ulti_spawn,,,,,,,,,,,,,,,,,,,30,,85,80,,,25,150,200,280,,,,,500,-1250,,,145,Medium,-35,,100,,,,,,,,,footstep,25,250,160,,,,,,,,,,,,,,,,,,true,,,,,,,,,
123 | SpawnerPet002,,,,,,,800,1400,,,,700,260,,,,SpawnerPet002Projectile,14,,,100,,Minion_FindEnemies,,,SpawnerPetDefault,,,,,,,,,mrp_def_pet_death,Gen_move_fx,explosion_pengula,,,,,,,,,,,,,,,,,,,,,,30,,85,80,,,25,150,200,280,,,,,500,-1250,,,145,Medium,-35,,100,,,,,,,,,footstep,25,250,160,,,,,,,,,,,,,,,,,,true,,,,,,,,,
124 | 037424c2385e031824f496c787e2ab8f473b70f8,,true,shelly,ShotgunGirlWeapon,ShotgunGirlUlti,,720,3800,,,,,,,,,,12,,,134,112,Hero,,,BanditGirlDefault,,,,,,,,takedamage_gen,death_shotgun_girl,Gen_move_fx,reload_shotgun_girl,No_ammo_shotgungirl,Dry_fire_shotgungirl,,,,,,,,,,,Shelly_Kill,Shelly_Lead,Shelly_Start,Utilshotgun_Vo,ShellyTakedamge_Vo,Shelly_Die,,Shelly_Start,2,30,,80,80,,,35,116,210,284,90,175,260,,,,-25,40,120,Medium,-48,,450,,,TID_SHOTGUN_GIRL,,sc/ui.sc,hero_icon_shelly,1000,human,footstep,25,250,200,,,1,3,2,,,,,,,,,,,ShellyTutorial,,,,,,4,3,2,,,
125 | CaptureFlag,,,,,,,0,150,,,,,,,,,,,,,,,Carryable,CaptureFlag,,TrophyBlueRed,,,,,,,,,mode_gift_goal,,mode_gift_destoryed,,,,,,,,,,,,,,,,,,,,,,,,80,80,,,25,100,,,,,,,,,,,140,Medium,-30,,,,,,,,,,,,,,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
126 | Bee,,,,,,,0,1,,,,,,,,,,,,,,,Minion_FollowOwner,,,BeeSniperDefaultAddonBee,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,80,80,,,25,116,200,320,90,190,270,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
127 | NinjaFake,,,,,,,820,3200,,,,,,,,,,12,,,,,Minion_Mirage,,,NinjaDefault,,,,,,,,takedamage_gen,death_ninja,Gen_move_fx,reload_leon,No_ammo_shotgungirl,Dry_fire_leon,,,,,,,,,,,Leon_kill_vo,Leon_lead_vo,Leon_start_vo,Leon_ulti_vo,Leon_hurt_vo,Leon_die_vo,,,,50,,80,80,,,35,116,190,330,80,150,270,,,,,,120,Medium,-55,,450,,,,,,,,,footstep,25,250,130,,,3,2,1,,,,,,,,,,,LeonTutorial,,,,,,4,2,3,,,
128 | BeeSniperSlowPot,,,,,,,0,1000,,,,,,,,,,12,,,,,Minion_Building,,,BeeSniperSlowPotDefault,,,,,,BeeSniperSlowArea,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,,,,,gadget_bea_honeypot_spawn,,,,,,,,,,,,,,,,,,,,,75,75,,,25,120,220,300,,,,,1400,-500,,,120,Medium,-49,,300,,,,,,,,,footstep,25,400,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
129 | BowDudeTotem,,,,,,,0,1000,50,,,,,,,,,12,,,,,Minion_Building,,,BowDudeTotemDefault,,,,,,BowDudeSuperChargeArea,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,,,,,gadget_bo_totem_spawn,,,,,,,,,,,,,,,,,,,,,75,75,,,25,120,220,300,,,,,1400,-500,,,120,Medium,-49,,300,,,,,,,,,footstep,25,400,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
130 | ControllerAddon,,,,,,,0,1,,,,,,,,,,,,,,,Minion_FollowOwner,,,ControllerDefaultAddon,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,80,80,,,25,116,210,300,90,175,270,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
131 | RaidBoss_TownCrush,,,,BossTownCrushAoE,BossTownCrushCharge,,550,150000,,,,400,800,,,,RaidBossTCBasicAttackProjectile,9,,,,,Npc_Boss_TownCrush,,,BossKaijuDefault,,,,,,,,nuts_bolts_metal_small,boss_explosion,Gen_move_fx,,,,robo_spawn,,mode_tc_boss_atk_melee,,,,,,,,,,,,,,,,,30,150,85,80,,,25,100,200,270,,,,,,,,,280,Medium,-130,,500,,,,,,,,,footstep,60,400,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
132 | RuffsCover,,,,,,,0,2000,,,,,,,,,,12,,true,,,Minion_Building,,,RuffsCoverDefault,true,,,,,,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,,,,,gadget_bo_totem_spawn,,,,,,,,,,,,,,,,,,,,,75,75,,,25,300,,,,,,,1400,-500,,,120,Medium,-33,,300,,,,,,,,,footstep,25,400,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
133 | BlackHolePetGadget,,,,,,,870,1000,,,,600,500,,,,,5,,,,,Minion_FindEnemies,,,BlackholePetDefault,,,,,,,,,death_shotgun_girl,,,,,tara_def_ulti_starPower_spawn,,bear_attack,,,,,,sparkle_trail_dark_minion,,,,,,,,,,,30,,85,80,,,25,95,200,270,,,,,,,,,90,Medium,-43,,350,,,,,,,,,,25,250,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
134 | SpeedBooster,,,,,,,0,1000,,,,,,,,,,12,,,,,Minion_Building,,,SpeedBoosterDefault,,,,,,SpeedBoost,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,,,,,8bit_def_ulti_spawn,,,,,,,,,,,,,,,,,,,,,75,75,,,25,250,220,300,,,,,1400,-500,,,120,Medium,-49,,300,,,,,,,,,footstep,25,400,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
135 | SpawnerPetGadget,,,,,,,800,700,,,,700,200,,,,SpawnerPetProjectile,14,,,1,,Minion_FindEnemies,,,SpawnerPetDefault,,,,,,,,,mrp_def_pet_death,Gen_move_fx,,,,nita_def_ulti_spawn,,,,,,,,,,,,,,,,,,,30,,85,80,,,25,100,200,280,,,,,500,-1250,,,145,Medium,-35,,100,,,,,,,,,footstep,25,250,160,,,,,,,,,,,,,,,,,,true,,,,,,,,,
136 | HoldingBall,,,,,,,0,100,,,,,,,,,,,,,,,Carryable,HoldingBall,,Trophy,,,,,,,,,mode_gift_destoryed,,,,,,,,,,,,,,,,,,,,,,,,,,50,50,,,25,100,,,,,,,,,,,200,Medium,-60,,,,,,,,,,,,,,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
137 | VolleyBall,,,,,,,0,1,,,,,,,,,,,,,,,Carryable,VolleyBall,,Volleyball,,,,,,,,,laser_ball_goal,,,,,,,,,,,,,,,,,,,,,,,,,,50,50,,,25,100,,,,,,,,,,,320,Medium,-30,,,,,,,,,,,,,,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
138 | BasketBall,,,,,,,0,1,,,,,,,,,,,,,,,Carryable,BasketBall,,Basketball,,,,,,,,,mode_gift_destoryed,,,,,,,,,,,,,,,,,,,,,,,,,,50,50,,,25,100,,,,,,,,,,,120,Medium,-30,,,,,,,,,,,,,,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
139 | CactusCover,,,,,,,0,3500,,,,,,,,,,12,,,,,Minion_Building,,,CactusCoverDefault,,,,,,,CactusCoverHeal,gadget_spike_cactus_damaged,gadget_spike_cactus_destroyed,,,,,gadget_bo_totem_spawn,,,,,,,,,,,,,,,,,,,,,75,75,,,25,120,220,300,,,,,1400,-500,,,120,Medium,-49,,300,,,,,,,,,footstep,25,400,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
140 | NinjaInvisibleArea,,,,,,,0,1500,50,,,,,,,,,12,,,,,Minion_Building,,,NinjaInvisibleAreaDefault,,,,,,NinjaInvisibleArea,,nuts_bolts_metal_small,nuts_bolts_metal_explosion,,,,,gadget_bo_totem_spawn,,,,,,,,,,,,,,,,,,,,,75,75,,,25,120,220,300,,,,,1400,-500,,,120,Medium,-49,,300,,,,,,,,,footstep,25,400,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
141 | StuDrums,,,,,,,0,1,,,,,,,,,,,,,,,Minion_Building,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
142 | KnightPet,,,,,,,1200,300,,,,1000,300,,,,,,,,1,,Minion_FindEnemies,,,KnightPetDefault,,,,,,,KnightPetExplosion,nuts_bolts_metal_small,nuts_bolts_metal_explosion,,,,,ash_def_ulti_spawn,,,,,,,,,,,,,,,,,,,,,85,80,,,25,200,200,270,,,,,,,,,90,Medium,-43,,,,,,,,,,,,25,250,,,,,,,,,,,,,,,,,,,,,,,,,,,,
143 | MechaDudeBig,true,,,MechaDudeBigWeapon,MechaDudeBigUlti,,720,5000,20,-80,,,,,,,,12,,,0,0,Hero,,,MechaDudeBigDefault,,,,,,,,takedamage_gen,mecha_def_ulti2_death,Gen_move_fx,Meg_Reload,No_ammo_shotgungirl,Meg_Dryfire,,,,,,,,,,,,,,,,,,,0,45,200,80,80,,,35,116,190,300,80,150,270,,200,-1000,,80,145,Medium,-80,,450,,,TID_MECHA_DUDE,,sc/ui.sc,hero_icon_tbd,100,human,footstep,35,350,160,,,2,3,1,,,,,,,,,800,,,,,,,,4,3,2,2,,
144 | DuplicatorPet,,,,DuplicatorWeapon,DuplicatorUlti,,720,2000,,,,,,,,,,6,,,,,Minion_Duplicate,,,DuplicatorDefault,,,,,,,,,death_bull_dude,Gen_move_fx,,,,nita_def_ulti_spawn,,bear_attack,,,,,,,,,,,,,,,,,30,,85,80,,,25,106,200,280,,,,,500,-1250,,,145,Medium,-63,,100,,,,,,,,,footstep,25,250,160,,,,,,,,,,,,,,,,,,,,,,,,,,,
145 | MechaDudeAddon,,,,,,,0,1,,,,,,,,,,,,,,,Minion_FollowOwner,,,MechaDudeDefaultAddon,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,80,80,,,35,100,100,200,90,190,250,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
146 |
--------------------------------------------------------------------------------
/Logic/Assets/Files/csv_logic/cards.csv:
--------------------------------------------------------------------------------
1 | Name,IconSWF,IconExportName,Target,Disabled,LockedForChronos,DynamicRarityStartSeason,MetaType,RequiresCard,Type,Skill,Value,Value2,Value3,Rarity,TID,PowerNumberTID,PowerNumber2TID,PowerNumber3TID,PowerIcon1ExportName,PowerIcon2ExportName,SortOrder,DontUpgradeStat,HideDamageStat
2 | String,String,String,String,boolean,boolean,int,int,String,String,String,int,int,int,String,String,String,String,String,String,String,int,boolean,boolean
3 | ShotgunGirl_unlock,sc/ui.sc,,ShotgunGirl,,,,0,,unlock,,,,,common,,,,,,,101,,
4 | ShotgunGirl_hp,sc/ui.sc,health_icon,ShotgunGirl,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
5 | ShotgunGirl_abi,sc/ui.sc,attack_icon,ShotgunGirl,,,,2,,skill,ShotgunGirlWeapon,,,,common,TID_LONG_RANGE_SHOTGUN,TID_STAT_DAMAGE_PER_SHELL,,,genicon_damage,,,,
6 | ShotgunGirl_ulti,sc/ui.sc,ulti_icon,ShotgunGirl,,,,3,,skill,ShotgunGirlUlti,,,,common,TID_MEGA_BLASH_ULTI,TID_STAT_DAMAGE_PER_SHELL,,,genicon_damage,,,,
7 | Gunslinger_unlock,sc/ui.sc,,Gunslinger,,,,0,,unlock,,,,,common,,,,,,,103,,
8 | Gunslinger_hp,sc/ui.sc,health_icon,Gunslinger,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
9 | Gunslinger_abi,sc/ui.sc,attack_icon,Gunslinger,,,,2,,skill,GunslingerWeapon,,,,common,TID_RAPID_FIRE,TID_STAT_DAMAGE_PER_SHOT,,,genicon_damage,,,,
10 | Gunslinger_ulti,sc/ui.sc,ulti_icon,Gunslinger,,,,3,,skill,GunslingerUlti,,,,common,TID_RAPID_FIRE_ULTI,TID_STAT_DAMAGE_PER_SHOT,,,genicon_damage,,,,
11 | BullDude_unlock,sc/ui.sc,,BullDude,,,,0,,unlock,,,,,common,,,,,,,104,,
12 | BullDude_hp,sc/ui.sc,health_icon,BullDude,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
13 | BullDude_abi,sc/ui.sc,attack_icon,BullDude,,,,2,,skill,BullDudeWeapon,,,,common,TID_SHOTGUN_BLAST,TID_STAT_DAMAGE_PER_SHELL,,,genicon_damage,,,,
14 | BullDude_ulti,sc/ui.sc,ulti_icon,BullDude,,,,3,,skill,BullDudeUlti,,,,common,TID_CHARGE,TID_STAT_DAMAGE,,,genicon_damage,,,,
15 | RocketGirl_unlock,sc/ui.sc,,RocketGirl,,,,0,,unlock,,,,,common,,,,,,,106,,
16 | RocketGirl_hp,sc/ui.sc,health_icon,RocketGirl,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
17 | RocketGirl_abi,sc/ui.sc,attack_icon,RocketGirl,,,,2,,skill,RocketGirlWeapon,,,,common,TID_FIREWORKS_WEAPON,TID_STAT_DAMAGE,,,genicon_damage,,,,
18 | RocketGirl_ulti,sc/ui.sc,ulti_icon,RocketGirl,,,,3,,skill,RocketGirlUlti,,,,common,TID_FIREWORKS_ULTI,TID_STAT_MISSILE_DAMAGE,,,genicon_damage,,,,
19 | TrickshotDude_unlock,sc/ui.sc,,TrickshotDude,,,,0,,unlock,,,,,super_rare,,,,,,,301,,
20 | TrickshotDude_hp,sc/ui.sc,health_icon,TrickshotDude,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
21 | TrickshotDude_abi,sc/ui.sc,attack_icon,TrickshotDude,,,,2,,skill,TrickshotDudeWeapon,,,,common,TID_TRICKSHOT_DUDE_WEAPON,TID_STAT_DAMAGE_PER_SHOT,,,genicon_damage,,,,
22 | TrickshotDude_ulti,sc/ui.sc,ulti_icon,TrickshotDude,,,,3,,skill,TrickshotDudeUlti,,,,common,TID_TRICKSHOT_DUDE_ULTI,TID_STAT_DAMAGE_PER_SHOT,,,genicon_damage,,,,
23 | Cactus_unlock,sc/ui.sc,,Cactus,,,,0,,unlock,,,,,legendary,,,,,,,601,,
24 | Cactus_hp,sc/ui.sc,health_icon,Cactus,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
25 | Cactus_abi,sc/ui.sc,attack_icon,Cactus,,,,2,,skill,CactusWeapon,,,,common,TID_CACTUS_WEAPON,TID_STAT_DAMAGE_PER_SPIKE,,,genicon_damage,,,,
26 | Cactus_ulti,sc/ui.sc,ulti_icon,Cactus,,,,3,,skill,CactusUlti,,,,common,TID_CACTUS_ULTI,TID_STAT_DAMAGE_PER_SECOND,,,genicon_damage,,,,
27 | Barkeep_unlock,sc/ui.sc,,Barkeep,,,,0,,unlock,,,,,rare,,,,,,,202,,
28 | Barkeep_hp,sc/ui.sc,health_icon,Barkeep,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
29 | Barkeep_abi,sc/ui.sc,attack_icon,Barkeep,,,,2,,skill,BarkeepWeapon,,,,common,TID_BARKEEP_WEAPON,TID_STAT_DAMAGE_PER_SECOND,,,genicon_damage,,,,
30 | Barkeep_ulti,sc/ui.sc,ulti_icon,Barkeep,,,,3,,skill,BarkeepUlti,,,,common,TID_BARKEEP_ULTI,TID_STAT_DAMAGE_PER_SECOND_EACH,,,genicon_damage,,,,
31 | Mechanic_unlock,sc/ui.sc,,Mechanic,,,,0,,unlock,,,,,common,,,,,,,105,,
32 | Mechanic_hp,sc/ui.sc,health_icon,Mechanic,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
33 | Mechanic_abi,sc/ui.sc,attack_icon,Mechanic,,,,2,,skill,MechanicWeapon,,,,common,TID_MECHANIC_WEAPON,TID_STAT_DAMAGE,,,genicon_damage,,,,
34 | Mechanic_ulti,sc/ui.sc,ulti_icon,Mechanic,,,,3,,skill,MechanicUlti,,,,common,TID_MECHANIC_ULTI,TID_TURRET_DAMAGE,TID_TURRET_HEALTH,,genicon_damage,genicon_health,,,
35 | Shaman_unlock,sc/ui.sc,,Shaman,,,,0,,unlock,,,,,common,,,,,,,102,,
36 | Shaman_hp,sc/ui.sc,health_icon,Shaman,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
37 | Shaman_abi,sc/ui.sc,attack_icon,Shaman,,,,2,,skill,ShamanWeapon,,,,common,TID_SHAMAN_WEAPON,TID_STAT_DAMAGE,,,genicon_damage,,,,
38 | Shaman_ulti,sc/ui.sc,ulti_icon,Shaman,,,,3,,skill,ShamanUlti,,,,common,TID_SHAMAN_ULTI,TID_BEAR_DAMAGE,TID_BEAR_HEALTH,,genicon_damage,genicon_health,,,
39 | TntDude_unlock,sc/ui.sc,,TntDude,,,,0,,unlock,,,,,common,,,,,,,107,,
40 | TntDude_hp,sc/ui.sc,health_icon,TntDude,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
41 | TntDude_abi,sc/ui.sc,attack_icon,TntDude,,,,2,,skill,TntDudeWeapon,,,,common,TID_MORTAR,TID_STAT_PER_DYNAMITE,,,genicon_damage,,,,
42 | TntDude_ulti,sc/ui.sc,ulti_icon,TntDude,,,,3,,skill,TntDudeUlti,,,,common,TID_MORTAR_ULTI,TID_STAT_DAMAGE,,,genicon_damage,,,,
43 | Luchador_unlock,sc/ui.sc,,Luchador,,,,0,,unlock,,,,,rare,,,,,,,201,,
44 | Luchador_hp,sc/ui.sc,health_icon,Luchador,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
45 | Luchador_abi,sc/ui.sc,attack_icon,Luchador,,,,2,,skill,LuchadorWeapon,,,,common,TID_LUCHADOR_WEAPON,TID_STAT_DAMAGE_PER_STRIKE,,,genicon_damage,,,,
46 | Luchador_ulti,sc/ui.sc,ulti_icon,Luchador,,,,3,,skill,LuchadorUlti,,,,common,TID_LUCHADOR_ULTI,TID_STAT_DAMAGE,,,genicon_damage,,,,
47 | Undertaker_unlock,sc/ui.sc,,Undertaker,,,,0,,unlock,,,,,mega_epic,,,,,,,501,,
48 | Undertaker_hp,sc/ui.sc,health_icon,Undertaker,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
49 | Undertaker_abi,sc/ui.sc,attack_icon,Undertaker,,,,2,,skill,UndertakerWeapon,,,,common,TID_UNDERTAKER_WEAPON,TID_STAT_DAMAGE,,,genicon_damage,,,,
50 | Undertaker_ulti,sc/ui.sc,ulti_icon,Undertaker,,,,3,,skill,UndertakerUlti,,,,common,TID_UNDERTAKER_ULTI,TID_STAT_DAMAGE,,,genicon_damage,,,,
51 | Crow_unlock,sc/ui.sc,,Crow,,,,0,,unlock,,,,,legendary,,,,,,,602,,
52 | Crow_hp,sc/ui.sc,health_icon,Crow,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
53 | Crow_abi,sc/ui.sc,attack_icon,Crow,,,,2,,skill,CrowWeapon,,,,common,TID_CROW_WEAPON,TID_STAT_DAMAGE_PER_DAGGER,,,genicon_damage,,,,
54 | Crow_ulti,sc/ui.sc,ulti_icon,Crow,,,,3,,skill,CrowUlti,,,,common,TID_CROW_ULTI,TID_STAT_DAMAGE_PER_DAGGER,,,genicon_damage,,,,
55 | DeadMariachi_unlock,sc/ui.sc,,DeadMariachi,,,,0,,unlock,,,,,rare,,,,,,,203,,
56 | DeadMariachi_hp,sc/ui.sc,health_icon,DeadMariachi,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
57 | DeadMariachi_abi,sc/ui.sc,attack_icon,DeadMariachi,,,,2,,skill,DeadMariachiWeapon,,,,common,TID_DEAD_MARIACHI_WEAPON,TID_STAT_DAMAGE,,,genicon_damage,,,,
58 | DeadMariachi_ulti,sc/ui.sc,ulti_icon,DeadMariachi,,,,3,,skill,DeadMariachiUlti,,,,common,TID_DEAD_MARIACHI_ULTI,TID_STAT_HEAL,,,genicon_health,,,,
59 | BowDude_unlock,sc/ui.sc,,BowDude,,,,0,,unlock,,,,,common,,,,,,,108,,
60 | BowDude_hp,sc/ui.sc,health_icon,BowDude,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
61 | BowDude_abi,sc/ui.sc,attack_icon,BowDude,,,,2,,skill,BowDudeWeapon,,,,common,TID_BOW_DUDE_WEAPON,TID_STAT_DAMAGE_PER_ARROW,,,genicon_damage,,,,
62 | BowDude_ulti,sc/ui.sc,ulti_icon,BowDude,,,,3,,skill,BowDudeUlti,,,,common,TID_BOW_DUDE_ULTI,TID_STAT_DAMAGE_PER_MINE,,,genicon_damage,,,,
63 | Sniper_unlock,sc/ui.sc,,Sniper,,,,0,,unlock,,,,,epic,,,,,,,401,,
64 | Sniper_hp,sc/ui.sc,health_icon,Sniper,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
65 | Sniper_abi,sc/ui.sc,attack_icon,Sniper,,,,2,,skill,SniperWeapon,,,,common,TID_SNIPER_WEAPON,TID_STAT_MAX_DAMAGE,,,genicon_damage,,,,
66 | Sniper_ulti,sc/ui.sc,ulti_icon,Sniper,,,,3,,skill,SniperUlti,,,,common,TID_SNIPER_ULTI,TID_STAT_DAMAGE_PER_BOMB,,,genicon_damage,,,,
67 | MinigunDude_unlock,sc/ui.sc,,MinigunDude,,,,0,,unlock,,,,,epic,,,,,,,402,,
68 | MinigunDude_hp,sc/ui.sc,health_icon,MinigunDude,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
69 | MinigunDude_abi,sc/ui.sc,attack_icon,MinigunDude,,,,2,,skill,MinigunDudeWeapon,,,,common,TID_MINIGUN_DUDE_WEAPON,TID_STAT_DAMAGE_PER_SHOT,,,genicon_damage,,,,
70 | MinigunDude_ulti,sc/ui.sc,ulti_icon,MinigunDude,,,,3,,skill,MinigunDudeUlti,,,,common,TID_MINIGUN_DUDE_ULTI,TID_STAT_HEALING_PER_SEC,TID_TURRET_HEALTH,,genicon_heal,genicon_health,,,
71 | BlackHole_unlock,sc/ui.sc,,BlackHole,,,,0,,unlock,,,,,mega_epic,,,,,,,502,,
72 | BlackHole_hp,sc/ui.sc,health_icon,BlackHole,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
73 | BlackHole_abi,sc/ui.sc,attack_icon,BlackHole,,,,2,,skill,BlackHoleWeapon,,,,common,TID_BLACK_HOLE_WEAPON,TID_STAT_DAMAGE_PER_CARD,,,genicon_damage,,,,
74 | BlackHole_ulti,sc/ui.sc,ulti_icon,BlackHole,,,,3,,skill,BlackHoleUlti,,,,common,TID_BLACK_HOLE_ULTI,TID_STAT_DAMAGE,,,genicon_damage,,,,
75 | BarrelBot_unlock,sc/ui.sc,,BarrelBot,,,,0,,unlock,,,,,super_rare,,,,,,,302,,
76 | BarrelBot_hp,sc/ui.sc,health_icon,BarrelBot,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
77 | BarrelBot_abi,sc/ui.sc,attack_icon,BarrelBot,,,,2,,skill,BarrelBotWeapon,,,,common,TID_BARREL_BOT_WEAPON,TID_STAT_DAMAGE_PER_SHELL,,,genicon_damage,,,,
78 | BarrelBot_ulti,sc/ui.sc,ulti_icon,BarrelBot,,,,3,,skill,BarrelBotUlti,,,,common,TID_BARREL_BOT_ULTI,TID_STAT_DAMAGE,,,genicon_damage,,,,
79 | ShotgunGirl_unique,sc/ui.sc,,ShotgunGirl,,,,4,,freeze,,90,350,,common,TID_SPEC_ABI_FREEZE,,,,genicon_health,,,,
80 | Gunslinger_unique,sc/ui.sc,,Gunslinger,,,,4,,speed,,100,,,common,TID_SPEC_ABI_SPEED,,,,genicon_health,,,,
81 | BullDude_unique,sc/ui.sc,,BullDude,,,,4,,berserker,,60,,,common,TID_SPEC_ABI_BERSERKER,,,,genicon_health,,,,
82 | RocketGirl_unique,sc/ui.sc,,RocketGirl,,,,4,,main_attack_burn,,520,,,common,TID_SPEC_BURN,,,,genicon_health,,,,
83 | TrickshotDude_unique,sc/ui.sc,,TrickshotDude,,,,4,,bounced_bullets_stronger,,124,,,common,TID_SPEC_BOUNCED_BULLETS_STRONGER,,,,genicon_health,,,,
84 | Cactus_unique,sc/ui.sc,,Cactus,,,,4,,cactus_heal,,800,,,common,TID_SPEC_ABI_CACTUS_HEAL,,,,genicon_health,,,,
85 | Barkeep_unique,sc/ui.sc,,Barkeep,,,,4,,heal_self_main_attack,,400,,,common,TID_SPEC_ABI_HEAL_SELF_MAIN_ATTACK,,,,genicon_health,,,,
86 | Mechanic_unique,sc/ui.sc,,Mechanic,,,,4,,repair_turret,,896,,,common,TID_SPEC_ABI_REPAIR_TURRET,,,,genicon_health,,,,
87 | Shaman_unique,sc/ui.sc,,Shaman,,,,4,,pet_lifesteal,,800,800,,common,TID_SPEC_ABI_PET_LIFESTEAL,,,,genicon_health,,,,
88 | TntDude_unique,sc/ui.sc,,TntDude,,,,4,,pushback_self,,972,,,common,TID_SPEC_ABI_PUSHBACK_SELF,,,,genicon_health,,,,
89 | Luchador_unique,sc/ui.sc,,Luchador,,,,4,,fire_dot_ulti,,1200,,,common,TID_SPEC_ABI_FIRE_DOT_ULTI,,,,genicon_health,,,,
90 | Undertaker_unique,sc/ui.sc,,Undertaker,,,,4,,steal_souls,,1400,,,common,TID_SPEC_ABI_STEAL_SOULS,,,,genicon_health,,,,
91 | Crow_unique,sc/ui.sc,,Crow,,,,4,,cripple,,25,,,common,TID_SPEC_CRIPPLE,,,,genicon_health,,,,
92 | DeadMariachi_unique,sc/ui.sc,,DeadMariachi,,,,4,,heal_main_attack,,700,,,common,TID_SPEC_HEAL_MAIN_ATTACK,,,,genicon_health,,,,
93 | BowDude_unique,sc/ui.sc,,BowDude,,,,4,,spot,,5,,,common,TID_SPEC_ABI_SPOT,,,,genicon_health,,,,
94 | Sniper_unique,sc/ui.sc,,Sniper,,,,4,,ambush,,800,,,common,TID_SPEC_ABI_AMBUSH,,,,genicon_health,,,,
95 | MinigunDude_unique,sc/ui.sc,,MinigunDude,,,,4,,heal_others_main_attack,,48,,,common,TID_SPEC_ABI_HEAL_OTHERS_MAIN_ATTACK,,,,genicon_health,,,,
96 | BlackHole_unique,sc/ui.sc,,BlackHole,,,,4,,black_hole_monster,,1,,,common,TID_SPEC_ABI_BLACK_HOLE_MONSTER,,,,genicon_health,,,,
97 | BarrelBot_unique,sc/ui.sc,,BarrelBot,,,,4,,barrel_defense,,18,90,,common,TID_SPEC_ABI_BARREL_DEFENSE,,,,genicon_health,,,,
98 | ArtilleryDude_unlock,sc/ui.sc,,ArtilleryDude,,,,0,,unlock,,,,,super_rare,,,,,,,303,,
99 | ArtilleryDude_hp,sc/ui.sc,health_icon,ArtilleryDude,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
100 | ArtilleryDude_abi,sc/ui.sc,attack_icon,ArtilleryDude,,,,2,,skill,ArtilleryDudeWeapon,,,,common,TID_ARTILLERY_DUDE_WEAPON,TID_STAT_DAMAGE,,,genicon_damage,,,,
101 | ArtilleryDude_ulti,sc/ui.sc,ulti_icon,ArtilleryDude,,,,3,,skill,ArtilleryDudeUlti,,,,common,TID_ARTILLERY_DUDE_ULTI,TID_CANNON_DAMAGE,TID_CANNON_HEALTH,,genicon_damage,genicon_health,,,
102 | ArtilleryDude_unique,sc/ui.sc,,ArtilleryDude,,,,4,,self_destruct,,1680,,,common,TID_SPEC_ABI_SELF_DESTRUCT,,,,genicon_health,,,,
103 | HammerDude_unlock,sc/ui.sc,,HammerDude,,,,0,,unlock,,,,,epic,,,,,,,403,,
104 | HammerDude_hp,sc/ui.sc,health_icon,HammerDude,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
105 | HammerDude_abi,sc/ui.sc,attack_icon,HammerDude,,,,2,,skill,HammerDudeWeapon,,,,common,TID_HAMMER_DUDE_WEAPON,TID_STAT_DAMAGE,,,genicon_damage,,,,
106 | HammerDude_ulti,sc/ui.sc,ulti_icon,HammerDude,,,,3,,skill,HammerDudeUlti,,,,common,TID_HAMMER_DUDE_ULTI,TID_STAT_DAMAGE,,,genicon_damage,genicon_health,,,
107 | HammerDude_unique,sc/ui.sc,,HammerDude,,,,4,,steal_souls2,,50,12,,common,TID_SPEC_ABI_STEAL_SOULS2,,,,genicon_health,,,,
108 | HookDude_unlock,sc/ui.sc,,HookDude,,,,0,,unlock,,,,,mega_epic,,,,,,,503,,
109 | HookDude_hp,sc/ui.sc,health_icon,HookDude,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
110 | HookDude_abi,sc/ui.sc,attack_icon,HookDude,,,,2,,skill,HookWeapon,,,,common,TID_HOOK_WEAPON,TID_STAT_DAMAGE,,,genicon_damage,,,,
111 | HookDude_ulti,sc/ui.sc,ulti_icon,HookDude,,,,3,,skill,HookUlti,,,,common,TID_HOOK_ULTI,TID_HOOK_ULTI,,,genicon_damage,,,,
112 | HookDude_unique,sc/ui.sc,,HookDude,,,,4,,aoe_regenerate,,400,,,common,TID_SPEC_ABI_HOOK,,,,genicon_health,,,,
113 | ClusterBombDude_unlock,sc/ui.sc,,ClusterBombDude,,,,0,,unlock,,,,,common,,,,,,,109,,
114 | ClusterBombDude_hp,sc/ui.sc,health_icon,ClusterBombDude,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
115 | ClusterBombDude_abi,sc/ui.sc,attack_icon,ClusterBombDude,,,,2,,skill,ClusterBombDudeWeapon,,,,common,TID_CLUSTER_BOMB_DUDE_WEAPON,TID_STAT_DAMAGE_PER_PROXIMITY_MINE,,,genicon_damage,,,,
116 | ClusterBombDude_ulti,sc/ui.sc,ulti_icon,ClusterBombDude,,,,3,,skill,ClusterBombDudeUlti,,,,common,TID_CLUSTER_BOMB_DUDE_ULTI,TID_STAT_DAMAGE,TID_HEAD_HEALTH,,genicon_damage,,,,
117 | ClusterBombDude_unique,sc/ui.sc,,ClusterBombDude,,,,4,,repair_self,,40,,,common,TID_SPEC_ABI_REPAIR_SELF,,,,genicon_health,,,,
118 | Ninja_unlock,sc/ui.sc,,Ninja,,,,0,,unlock,,,,,legendary,,,,,,,603,,
119 | Ninja_hp,sc/ui.sc,health_icon,Ninja,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
120 | Ninja_abi,sc/ui.sc,attack_icon,Ninja,,,,2,,skill,NinjaWeapon,,,,common,TID_NINJA_WEAPON,TID_STAT_DAMAGE_PER_SHURIKEN,,,genicon_damage,,,,
121 | Ninja_ulti,sc/ui.sc,ulti_icon,Ninja,,,,3,,skill,NinjaUlti,,,,common,TID_NINJA_ULTI,TID_STAT_INVISIBLE,,,genicon_damage,,,,
122 | Ninja_unique,sc/ui.sc,,Ninja,,,,4,,speed_invisible,,250,,,common,TID_SPEC_ABI_SPEED_INVISIBLE,,,,genicon_health,,,,
123 | Rosa_unlock,sc/ui.sc,,Rosa,,,,0,,unlock,,,,,rare,,,,,,,204,,
124 | Rosa_hp,sc/ui.sc,health_icon,Rosa,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
125 | Rosa_abi,sc/ui.sc,attack_icon,Rosa,,,,2,,skill,RosaWeapon,,,,common,TID_ROSA_WEAPON,TID_STAT_DAMAGE_PER_STRIKE,,,genicon_damage,,,,
126 | Rosa_ulti,sc/ui.sc,ulti_icon,Rosa,,,,3,,skill,RosaUlti,,,,common,TID_ROSA_ULTI,TID_STAT_SHIELD,,,genicon_damage,,,,
127 | Rosa_unique,sc/ui.sc,,Rosa,,,,4,,heal_forest,,200,,,common,TID_SPEC_ABI_HEAL_FOREST,,,,genicon_health,,,,
128 | Whirlwind_unlock,sc/ui.sc,,Whirlwind,,,,0,,unlock,,,,,super_rare,,,,,,,304,,
129 | Whirlwind_hp,sc/ui.sc,health_icon,Whirlwind,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
130 | Whirlwind_abi,sc/ui.sc,attack_icon,Whirlwind,,,,2,,skill,WhirlwindWeapon,,,,common,TID_WHIRLWIND_WEAPON,TID_STAT_DAMAGE_EACH_WAY,,,genicon_damage,,,,
131 | Whirlwind_ulti,sc/ui.sc,ulti_icon,Whirlwind,,,,3,,skill,WhirlwindUlti,,,,common,TID_WHIRLWIND_ULTI,TID_STAT_DAMAGE_PER_SWING,,,genicon_damage,,,,
132 | Whirlwind_unique,sc/ui.sc,,Whirlwind,,,,4,,projectile_speed,,312,,,common,TID_SPEC_ABI_PROJECTILE_SPEED,,,,genicon_health,,,,
133 | Baseball_unlock,sc/ui.sc,,Baseball,,,,0,,unlock,,,,,epic,,,,,,,404,,
134 | Baseball_hp,sc/ui.sc,health_icon,Baseball,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
135 | Baseball_abi,sc/ui.sc,attack_icon,Baseball,,,,2,,skill,BaseballWeapon,,,,common,TID_BASEBALL_WEAPON,TID_STAT_DAMAGE,,,genicon_damage,,,,
136 | Baseball_ulti,sc/ui.sc,ulti_icon,Baseball,,,,3,,skill,BaseballUlti,,,,common,TID_BASEBALL_ULTI,TID_STAT_DAMAGE_EACH_WAY,,,genicon_damage,,,,
137 | Baseball_unique,sc/ui.sc,,Baseball,,,,4,,speed_full_ammo,,100,,,common,TID_SPEC_ABI_SPED_FULL_AMMO,,,,genicon_health,,,,
138 | ShotgunGirl_unique_2,sc/ui.sc,,ShotgunGirl,,,,4,,medikit,,40,2000,15000,common,TID_SPEC_ABI_MEDIKIT,,,,genicon_health,,,,
139 | Shaman_unique_2,sc/ui.sc,,Shaman,,,,4,,pet_attack_speed,,60,,,common,TID_SPEC_ABI_PET_ATTACK_SPEED,,,,genicon_health,,,,
140 | BullDude_unique_2,sc/ui.sc,,BullDude,,,,4,,low_health_shield,,40,30,,common,TID_SPEC_ABI_LOW_HEALTH_SHIELD,,,,genicon_health,,,,
141 | Gunslinger_unique_2,sc/ui.sc,,Gunslinger,,,,4,,attack_range,,3,,,common,TID_SPEC_ABI_ATTACK_RANGE,,,,genicon_health,,,,
142 | MinigunDude_unique_2,sc/ui.sc,,MinigunDude,,,,4,,aoe_dot,,800,,,common,TID_SPEC_ABI_TURRET_AOE,,,,genicon_health,,,,
143 | Luchador_unique_2,sc/ui.sc,,Luchador,,,,4,,speed_after_ulti,,200,80,,common,TID_SPEC_ABI_SPEED_AFTER_ULTI,,,,genicon_health,,,,
144 | Ninja_unique_2,sc/ui.sc,,Ninja,,,,4,,heal_invisible,,1000,,,common,TID_SPEC_ABI_HOT_INVISIBLE,,,,genicon_health,,,,
145 | ArtilleryDude_unique_2,sc/ui.sc,,ArtilleryDude,,,,4,,ulti_burn,,400,,,common,TID_SPEC_ULTI_BURN,,,,genicon_health,,,,
146 | Crow_unique_2,sc/ui.sc,,Crow,,,,4,,prey_on_the_weak,,50,152,,common,TID_SPEC_ABI_PREY_ON_THE_WEAK,,,,genicon_health,,,,
147 | DeadMariachi_unique_2,sc/ui.sc,,DeadMariachi,,,,4,,damage_super,,1000,,,common,TID_SPEC_DAMAGE_SUPER,,,,genicon_health,,,,
148 | Whirlwind_unique_2,sc/ui.sc,,Whirlwind,,,,4,,ulti_defense,,60,35,,common,TID_SPEC_ABI_WHIRLWIND_SHIELD,,,,genicon_health,,,,
149 | Baseball_unique_2,sc/ui.sc,,Baseball,,,,4,,shield_homerun,,20,,,common,TID_SPEC_ABI_SHIELD_HOMERUN,,,,genicon_health,,,,
150 | Rosa_unique_2,sc/ui.sc,,Rosa,,,,4,,damage_buff_super,,220,,,common,TID_SPEC_ABI_DAMAGE_BUFF_SUPER,,,,genicon_health,,,,
151 | BowDude_unique_2,sc/ui.sc,,BowDude,,,,4,,stun_trap,,40,,,common,TID_SPEC_ABI_STUN_TRAP,,,,genicon_health,,,,
152 | Mechanic_unique_2,sc/ui.sc,,Mechanic,,,,4,,turret_electricity,,1,,,common,TID_SPEC_ABI_TURRET_ELECTRICITY,,,,genicon_health,,,,
153 | RocketGirl_unique_2,sc/ui.sc,,RocketGirl,,,,4,,extra_bullet,,1,,,common,TID_SPEC_EXTRA_BULLET,,,,genicon_health,,,,
154 | Cactus_unique_2,sc/ui.sc,,Cactus,,,,4,,curve_ball,,75,150,,common,TID_SPEC_ABI_CURVEBALL,,,,genicon_health,,,,
155 | Sniper_unique_2,sc/ui.sc,,Sniper,,,,4,,reload_on_hit,,40,,,common,TID_SPEC_ABI_RELOAD_ON_HIT,,,,genicon_health,,,,
156 | HammerDude_unique_2,sc/ui.sc,,HammerDude,,,,4,,gain_health,,1100,,,common,TID_SPEC_ABI_GAIN_HEALTH,,,,genicon_health,,,,
157 | Undertaker_unique_2,sc/ui.sc,,Undertaker,,,,4,,faster_long_dash,,30,,,common,TID_SPEC_ABI_LONGER_DASH,,,,genicon_health,,,,
158 | TntDude_unique_2,sc/ui.sc,,TntDude,,,,4,,gain_damage_super,,1000,,,common,TID_SPEC_ABI_SUPER_DAMAGE,,,,genicon_health,,,,
159 | TrickshotDude_unique_2,sc/ui.sc,,TrickshotDude,,,,4,,speed_low_health,,250,40,,common,TID_SPEC_ABI_SPEED_LOW_HEALTH,,,,genicon_health,,,,
160 | BarrelBot_unique_2,sc/ui.sc,,BarrelBot,,,,4,,super_reload,,100,,,common,TID_SPEC_ABI_SUPER_RELOAD,,,,genicon_health,,,,
161 | Barkeep_unique_2,sc/ui.sc,,Barkeep,,,,4,,damage_main_attack,,200,,,common,TID_SPEC_ABI_DAMAGE_MAIN_ATTACK,,,,genicon_health,,,,
162 | HookDude_unique_2,sc/ui.sc,,HookDude,,,,4,,damage_ulti,,300,,,common,TID_SPEC_ABI_DAMAGE_ULTI,,,,genicon_health,,,,
163 | BlackHole_unique_2,sc/ui.sc,,BlackHole,,,,4,,black_hole_healer,,1,,,common,TID_SPEC_ABI_BLACK_HOLE_HEALER,,,,genicon_health,,,,
164 | ClusterBombDude_unique_2,sc/ui.sc,,ClusterBombDude,,,,4,,recharge,,220,,,common,TID_SPEC_ABI_RECHARGE,,,,genicon_health,,,,
165 | ShotgunGirl_unique_3,sc/ui.sc,,ShotgunGirl,true,true,,4,,petrol_reload,,7,40,,common,TID_SPEC_SUPER_RANGE,,,,genicon_health,,,,
166 | BullDude_unique_3,sc/ui.sc,,BullDude,true,true,,4,,petrol_reload,,1,,,common,TID_SPEC_ABI_IMMUNE_TO_CC,,,,genicon_health,,,,
167 | DeadMariachi_unique_3,sc/ui.sc,,DeadMariachi,true,true,,4,,petrol_reload,,1,,,common,TID_SPEC_ABI_CURE_DEBUFFS,,,,genicon_health,,,,
168 | Baseball_unique_3,sc/ui.sc,,Baseball,true,true,,4,,petrol_reload,,60,350,,common,TID_SPEC_ABI_SUPER_SLOW,,,,genicon_health,,,,
169 | Whirlwind_unique_3,sc/ui.sc,,Whirlwind,true,true,,4,,petrol_reload,,600,,,common,TID_SPEC_ABI_SUPER_DESTROY_WALLS,,,,genicon_health,,,,
170 | Undertaker_unique_3,sc/ui.sc,,Undertaker,true,true,,4,,petrol_reload,,15,30,,common,TID_SPEC_ABI_DASH_SHIELD,,,,genicon_health,,,,
171 | Arcade_unique,sc/ui.sc,,Arcade,,,,4,,larger_area_ulti,,1,,,common,TID_SPEC_ABI_LARGER_AREA_ULTI,,,,genicon_health,,,,
172 | Luchador_unique_3,sc/ui.sc,,Luchador,true,true,,4,,petrol_reload,,500,2880,,common,TID_SPEC_ABI_GROW_FROM_DAMAGE,,,,genicon_health,,,,
173 | Gunslinger_unique_3,sc/ui.sc,,Gunslinger,true,true,,4,,petrol_reload,,2000,,,common,TID_SPEC_ABI_ARMOR,,,,genicon_health,,,,
174 | Mechanic_unique_3,sc/ui.sc,,Mechanic,true,true,,4,,petrol_reload,,600,,,common,TID_SPEC_ABI_WALKING_TURRET,,,,genicon_health,,,,
175 | RocketGirl_unique_3,sc/ui.sc,,RocketGirl,true,true,,4,,petrol_reload,,30,,,common,TID_SPEC_SHIELD_ULTI,,,,genicon_health,,,,
176 | TntDude_unique_3,sc/ui.sc,,TntDude,true,true,,4,,petrol_reload,,1,,,common,TID_SPEC_ABI_PET,,,,genicon_health,,,,
177 | Sniper_unique_3,sc/ui.sc,,Sniper,true,true,,4,,petrol_reload,,15,,,common,TID_SPEC_SPOT_FROM_AIR,,,,genicon_health,,,,
178 | Ninja_unique_3,sc/ui.sc,,Ninja,true,true,,4,,petrol_reload,,140,,,common,TID_SPEC_ABI_DAMAGE_ULTI,,,,genicon_health,,,,
179 | Cactus_unique_3,sc/ui.sc,,Cactus,true,true,,4,,petrol_reload,,40,672,20,common,TID_SPEC_ABI_SPIKES_LOW_HEALTH,,,,genicon_health,,,,
180 | Arcade_unlock,sc/ui.sc,,Arcade,,,,0,,unlock,,,,,common,,,,,,,110,,
181 | Arcade_hp,sc/ui.sc,health_icon,Arcade,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
182 | Arcade_abi,sc/ui.sc,attack_icon,Arcade,,,,2,,skill,ArcadeWeapon,,,,common,TID_ARCADE_WEAPON,TID_STAT_DAMAGE_PER_BEAM,,,genicon_damage,,,,
183 | Arcade_ulti,sc/ui.sc,ulti_icon,Arcade,,,,3,,skill,ArcadeUlti,,,,common,TID_ARCADE_ULTI,TID_STAT_DAMAGE_BOOST,TID_DAMAGE_BOOSTER_HEALTH,,genicon_heal,genicon_health,,true,
184 | Arcade_unique_2,sc/ui.sc,,Arcade,,,,4,,plugged_in,,140,7,8,common,TID_SPEC_ABI_PLUGGED_IN,,,,genicon_health,,,,
185 | Sandstorm_unlock,sc/ui.sc,,Sandstorm,,,,0,,unlock,,,,,legendary,,,,,,,604,,
186 | Sandstorm_hp,sc/ui.sc,health_icon,Sandstorm,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
187 | Sandstorm_abi,sc/ui.sc,attack_icon,Sandstorm,,,,2,,skill,SandstormWeapon,,,,common,TID_SANDSTORM_WEAPON,TID_STAT_DAMAGE,,,genicon_damage,,,,
188 | Sandstorm_ulti,sc/ui.sc,ulti_icon,Sandstorm,,,,3,,skill,SandstormUlti,,,,common,TID_SANDSTORM_ULTI,TID_STAT_SANDSTORM,,,genicon_damage,,,,
189 | Sandstorm_unique,sc/ui.sc,,Sandstorm,,,,4,,aoe_dot,,100,,,common,TID_SPEC_ABI_SANDSTORM_DOT,,,,genicon_health,,,,
190 | Sandstorm_unique_2,sc/ui.sc,,Sandstorm,,,,4,,aoe_dot,,-300,,,common,TID_SPEC_ABI_SANDSTORM_HOT,,,,genicon_health,,,,
191 | BeeSniper_unlock,sc/ui.sc,,BeeSniper,,,,0,,unlock,,,,,epic,,,,,,,405,,
192 | BeeSniper_hp,sc/ui.sc,health_icon,BeeSniper,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
193 | BeeSniper_abi,sc/ui.sc,attack_icon,BeeSniper,,,,2,,skill,BeeSniperWeapon,,,,common,TID_BEE_SNIPER_WEAPON,TID_STAT_DAMAGE,,,genicon_damage,,,,
194 | BeeSniper_ulti,sc/ui.sc,ulti_icon,BeeSniper,,,,3,,skill,BeeSniperUlti,,,,common,TID_BEE_SNIPER_ULTI,TID_STAT_DAMAGE_PER_DRONE,,,genicon_damage,,,,
195 | BeeSniper_unique,sc/ui.sc,,BeeSniper,,,,4,,instant_charged_shot,,2,,,common,TID_SPEC_ABI_BEE_SNIPER_1,,,,genicon_damage,,,,
196 | BeeSniper_unique_2,sc/ui.sc,,BeeSniper,,,,4,,shield_while_charged,,20,,,common,TID_SPEC_ABI_BEE_SNIPER_2,,,,genicon_damage,,,,
197 | Mummy_unlock,sc/ui.sc,,Mummy,,,,0,,unlock,,,,,common,,,,,,,111,,
198 | Mummy_hp,sc/ui.sc,health_icon,Mummy,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
199 | Mummy_abi,sc/ui.sc,attack_icon,Mummy,,,,2,,skill,MummyWeapon,,,,common,TID_MUMMY_WEAPON,TID_STAT_DAMAGE_PER_HALF_SECOND,,,genicon_damage,,,,
200 | Mummy_ulti,sc/ui.sc,ulti_icon,Mummy,,,,3,,skill,MummyUlti,,,,common,TID_MUMMY_ULTI,TID_STAT_DAMAGE_PER_SECOND,,,genicon_damage,,,,
201 | Mummy_unique,sc/ui.sc,,Mummy,,,,4,,increase_dmg_consecutive_dot,,25,,,common,TID_SPEC_ABI_TICK_DMG_GROW,,,,genicon_damage,,,,
202 | Mummy_unique_2,sc/ui.sc,,Mummy,,,,4,,ulti_heals_self,,420,,,common,TID_SPEC_ABI_HEAL_SUPER_DMG,,,,genicon_health,,,,
203 | SpawnerDude_unlock,sc/ui.sc,,SpawnerDude,,,,0,,unlock,,,,,mega_epic,,,,,,,505,,
204 | SpawnerDude_hp,sc/ui.sc,health_icon,SpawnerDude,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
205 | SpawnerDude_abi,sc/ui.sc,attack_icon,SpawnerDude,,,,2,,skill,SpawnerDudeWeapon,,,,common,TID_SPAWNER_DUDE_WEAPON,TID_STAT_DAMAGE_EACH_WAY,,,genicon_damage,,,,
206 | SpawnerDude_ulti,sc/ui.sc,ulti_icon,SpawnerDude,,,,3,,skill,SpawnerDudeUlti,,,,common,TID_SPAWNER_DUDE_ULTI,TID_PORTER_HEALTH,TID_SPAWN_BUILDING_HEALTH,TID_PORTER_DAMAGE,genicon_damage,genicon_health,,,
207 | SpawnerDude_unique,sc/ui.sc,icon_sp_spawner_1,SpawnerDude,,,,4,,always_bounce_shot,,1,,,common,TID_SPEC_ABI_SPAWNER_DUDE_1,,,,genicon_damage,,,,
208 | SpawnerDude_unique_2,sc/ui.sc,icon_sp_spawner_2,SpawnerDude,,,,4,,spawn_speed,,3,,,common,TID_SPEC_ABI_SPAWNER_DUDE_2,,,,genicon_damage,,,,
209 | Speedy_unlock,sc/ui.sc,,Speedy,,,,0,,unlock,,,,,mega_epic,,,,,,,504,,
210 | Speedy_hp,sc/ui.sc,health_icon,Speedy,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
211 | Speedy_abi,sc/ui.sc,attack_icon,Speedy,,,,2,,skill,SpeedyWeapon,,,,common,TID_SPEEDY_WEAPON,TID_STAT_DAMAGE_PER_SHOT,,,genicon_damage,,,,
212 | Speedy_ulti,sc/ui.sc,ulti_icon,Speedy,,,,3,,skill,SpeedyUlti,,,,common,TID_SPEEDY_ULTI,TID_SPEEDY_ULTI_STAT,,,genicon_damage,genicon_health,,true,true
213 | Speedy_unique,sc/ui.sc,,Speedy,,,,4,,running_charges_ulti,,14,1,,common,TID_SPEC_ABI_SPEEDY_1,,,,genicon_damage,,,,
214 | Speedy_unique_2,sc/ui.sc,,Speedy,,,,4,,running_charges_weapon,,60,1,,common,TID_SPEC_ABI_SPEEDY_2,,,,genicon_damage,,,,
215 | 712ea998e59dc1ccab9c215a1d71731bd453e402,sc/ui.sc,,07220d24fa2e06c356cad4e7c6037d70b265010e,true,,,0,,unlock,,,,,common,,,,,,,101,,
216 | 2ee96b8e775c9b09f313d8e1f6512beda6556503,sc/ui.sc,health_icon,07220d24fa2e06c356cad4e7c6037d70b265010e,true,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
217 | aa1af7bf1fd9b059eba7868156e62e7839e298f3,sc/ui.sc,attack_icon,07220d24fa2e06c356cad4e7c6037d70b265010e,true,,,2,,skill,ShotgunGirlWeapon,,,,common,TID_LONG_RANGE_SHOTGUN,TID_STAT_DAMAGE_PER_SHELL,,,genicon_damage,,,,
218 | e9113d8031ba7ef4b32086d0cb907fd9743070e2,sc/ui.sc,ulti_icon,07220d24fa2e06c356cad4e7c6037d70b265010e,true,,,3,,skill,ShotgunGirlUlti,,,,common,TID_MEGA_BLASH_ULTI,TID_STAT_DAMAGE_PER_SHELL,,,genicon_damage,,,,
219 | 06a226dbc7ddbcf3f8e97cb995f5cf645a2d3aff,sc/ui.sc,,07220d24fa2e06c356cad4e7c6037d70b265010e,true,true,,4,,petrol_reload,,7,40,,common,TID_SPEC_SUPER_RANGE,,,,genicon_health,,,,
220 | 6ec42df0c615b2d98f9f7fc900a5a4a1c37c5f6e,sc/ui.sc,,07220d24fa2e06c356cad4e7c6037d70b265010e,true,true,,4,,petrol_reload,,7,40,,common,TID_SPEC_SUPER_RANGE,,,,genicon_health,,,,
221 | Driller_unlock,sc/ui.sc,,Driller,,,,0,,unlock,,,,,super_rare,,,,,,,305,,
222 | Driller_hp,sc/ui.sc,health_icon,Driller,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
223 | Driller_abi,sc/ui.sc,attack_icon,Driller,,,,2,,skill,DrillerWeapon,,,,common,TID_DRILLER_WEAPON,TID_STAT_DAMAGE,,,genicon_damage,,,,
224 | Driller_ulti,sc/ui.sc,ulti_icon,Driller,,,,3,,skill,DrillerUlti,,,,common,TID_DRILLER_ULTI,TID_STAT_DAMAGE,,,genicon_damage,,,,
225 | Driller_unique,sc/ui.sc,,Driller,,,,4,,reflect_damage_aoe,,30,,,common,TID_SPEC_ABI_DRILLER_1,,,,genicon_damage,,,,
226 | Driller_unique_2,sc/ui.sc,,Driller,,,,4,,reduce_all_damage,,15,,,common,TID_SPEC_ABI_DRILLER_2,,,,genicon_damage,,,,
227 | Blower_unlock,sc/ui.sc,,Blower,,,1,0,,unlock,,,,,epic,,,,,,,701,,
228 | Blower_hp,sc/ui.sc,health_icon,Blower,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
229 | Blower_abi,sc/ui.sc,attack_icon,Blower,,,,2,,skill,BlowerWeapon,,,,common,TID_BLOWER_WEAPON,TID_STAT_DAMAGE,,,genicon_damage,,,,
230 | Blower_ulti,sc/ui.sc,ulti_icon,Blower,,,,3,,skill,BlowerUlti,,,,common,TID_BLOWER_ULTI,TID_STAT_DAMAGE,,,genicon_damage,,,,
231 | Blower_unique,sc/ui.sc,,Blower,,,,4,,stun_wall_push,,20,,,common,TID_SPEC_ABI_BLOWER_1,,,,genicon_damage,,,,
232 | Blower_unique_2,sc/ui.sc,,Blower,,,,4,,basic_freeze,,10,350,,common,TID_SPEC_ABI_BLOWER_2,,,,genicon_damage,,,,
233 | Controller_unlock,sc/ui.sc,,Controller,,,,0,,unlock,,,,,epic,,,,,,,406,,
234 | Controller_hp,sc/ui.sc,health_icon,Controller,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
235 | Controller_abi,sc/ui.sc,attack_icon,Controller,,,,2,,skill,ControllerWeapon,,,,common,TID_CONTROLLER_WEAPON,TID_STAT_DAMAGE,,,genicon_damage,,,,
236 | Controller_ulti,sc/ui.sc,ulti_icon,Controller,,,,3,,skill,ControllerUlti,,,,common,TID_CONTROLLER_ULTI,TID_STAT_DAMAGE,,,genicon_damage,,,,
237 | Controller_unique,sc/ui.sc,,Controller,,,,4,,increase_missile_dmg_over_distance,,1600,,,common,TID_SPEC_ABI_CONTROLLER_1,,,,genicon_damage,,,,
238 | Controller_unique_2,sc/ui.sc,,Controller,,,,4,,shield_while_ulti,,80,,,common,TID_SPEC_ABI_CONTROLLER_2,,,,genicon_damage,,,,
239 | Wally_unlock,sc/ui.sc,,Wally,,,,0,,unlock,,,,,mega_epic,,,,,,,506,,
240 | Wally_hp,sc/ui.sc,health_icon,Wally,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
241 | Wally_abi,sc/ui.sc,attack_icon,Wally,,,,2,,skill,WallyWeapon,,,,common,TID_WALLY_WEAPON,TID_STAT_DAMAGE,,,genicon_damage,,,,
242 | Wally_ulti,sc/ui.sc,ulti_icon,Wally,,,,3,,skill,WallyUlti,,,,common,TID_WALLY_ULTI,TID_STAT_DAMAGE,,,genicon_damage,,,,
243 | Wally_unique,sc/ui.sc,,Wally,,,,4,,increased_explosion,,5000,,,common,TID_SPEC_ABI_WALLY_1,,,,genicon_damage,,,,
244 | Wally_unique_2,sc/ui.sc,,Wally,,,,4,,bush_shield,,30,60,,common,TID_SPEC_ABI_WALLY_2,,,,genicon_damage,,,,
245 | Rosa_GrowBush,sc/ui.sc,icon_item_rosa_1,Rosa,,,,5,,accessory,Rosa_GrowBush,0,,,common,TID_ACCESSORY_GROW_BUSH,,,,genicon_health,,,,
246 | Crow_Shield,sc/ui.sc,icon_item_crow_1,Crow,,,,5,,accessory,Crow_Shield,14,15,,common,TID_ACCESSORY_CROW_SHIELD,,,,genicon_health,,,,
247 | Wally_Heal,sc/ui.sc,icon_item_wally_1,Wally,,,,5,,accessory,Wally_Heal,1,2,3,common,TID_ACCESSORY_WALLY_HEAL,,,,genicon_health,,,,
248 | RocketGirl_Jump,sc/ui.sc,icon_item_brock_1,RocketGirl,,,,5,,accessory,RocketGirl_Jump,16,17,,common,TID_ACCESSORY_ROCKET_JUMP,,,,genicon_health,,,,
249 | TrickshotDude_ShootAround,sc/ui.sc,icon_item_ricochet_1,TrickshotDude,,,,5,,accessory,TrickshotDude_ShootAround,0,,,common,TID_ACCESSORY_RICO_SHOOT_AROUND,,,,genicon_health,,,,
250 | Cactus_ShootAround,sc/ui.sc,icon_item_spike_1,Cactus,,,,5,,accessory,Cactus_ShootAround,19,16,,common,TID_ACCESSORY_CACTUS_SHOOT_AROUND,,,,genicon_health,,,,
251 | ArtilleryDude_DestroyPet,sc/ui.sc,icon_item_penny_1,ArtilleryDude,,,,5,,accessory,ArtilleryDude_DestroyPet,12,,,common,TID_ACCESSORY_ARTILLERY_DESTROY_PET,,,,genicon_health,,,,
252 | Shaman_PetSlam,sc/ui.sc,icon_item_nita_1,Shaman,,,,5,,accessory,Shaman_PetSlam,0,,,common,TID_ACCESSORY_PET_SLAM,,,,genicon_health,,,,
253 | Barkeep_Slow,sc/ui.sc,icon_item_barley_1,Barkeep,,,,5,,accessory,Barkeep_Slow,0,,,common,TID_ACCESSORY_BARKEEP_SLOW,,,,genicon_health,,,,
254 | Mechanic_Slow,sc/ui.sc,icon_item_jessie_1,Mechanic,,,,5,,accessory,Mechanic_Slow,0,,,common,TID_ACCESSORY_JESSIE_SLOW,,,,genicon_health,,,,
255 | HookDude_Push,sc/ui.sc,icon_item_gene_1,HookDude,,,,5,,accessory,HookDude_Push,1,20,,common,TID_ACCESSORY_GENE_PUSH,,,,genicon_health,,,,
256 | ClusterBombDude_ExtraMines,sc/ui.sc,icon_item_tick_1,ClusterBombDude,,,,5,,accessory,ClusterBombDude_ExtraMines,1,,,common,TID_ACCESSORY_TICK_EXTRA_MINES,,,,genicon_health,,,,
257 | Speedy_Dash,sc/ui.sc,icon_item_max_1,Speedy,,,,5,,accessory,Speedy_Dash,0,,,common,TID_ACCESSORY_MAX_DASH,,,,genicon_health,,,,
258 | ShotgunGirl_Dash,sc/ui.sc,icon_item_shelly_1,ShotgunGirl,,,,5,,accessory,ShotgunGirl_Dash,0,,,common,TID_ACCESSORY_SHELLY_DASH,,,,genicon_health,,,,
259 | Driller_SpeedBoost,sc/ui.sc,icon_item_driller_1,Driller,,,,5,,accessory,Driller_SpeedBoost,21,22,,common,TID_ACCESSORY_DRILLER_SPEED_BOOST,,,,genicon_health,,,,
260 | MinigunDude_BurstHeal,sc/ui.sc,icon_item_pam_1,MinigunDude,,,,5,,accessory,MinigunDude_BurstHeal,12,,,common,TID_ACCESSORY_TOWER_BURST_HEAL,,,,genicon_health,,,,
261 | TntDude_Spin,sc/ui.sc,icon_item_dynamike_1,TntDude,,,,5,,accessory,TntDude_Spin,3,,,common,TID_ACCESSORY_TNT_SPIN,,,,genicon_health,,,,
262 | Arcade_Teleport,sc/ui.sc,icon_item_8bit_1,Arcade,,,,5,,accessory,Arcade_Teleport,0,,,common,TID_ACCESSORY_TELEPORT_TO_PET,,,,genicon_health,,,,
263 | BarrelBot_Spin,sc/ui.sc,icon_item_darryl_1,BarrelBot,,,,5,,accessory,BarrelBot_Spin,3,10,,common,TID_ACCESSORY_BARREL_SPIN,,,,genicon_health,,,,
264 | HammerDude_Immunity,sc/ui.sc,icon_item_frank_1,HammerDude,,,,5,,accessory,HammerDude_Immunity,0,,,common,TID_ACCESSORY_FRANK_CC_IMMUNITY,,,,genicon_health,,,,
265 | Whirlwind_Trail,sc/ui.sc,icon_item_carl_1,Whirlwind,,,,5,,accessory,Whirlwind_Trail,23,,,common,TID_ACCESSORY_CARL_TRAIL,,,,genicon_health,,,,
266 | BowDude_Totem,sc/ui.sc,icon_item_bo_1,BowDude,,,,5,,accessory,BowDude_Totem,0,,,common,TID_ACCESSORY_BOW_TOTEM,,,,genicon_health,,,,
267 | Luchador_Grab,sc/ui.sc,icon_item_elprimo_1,Luchador,,,,5,,accessory,Luchador_Grab,0,,,common,TID_ACCESSORY_PRIMO_GRAB,,,,genicon_health,,,,
268 | Undertaker_Swing,sc/ui.sc,icon_item_mortis_1,Undertaker,,,,5,,accessory,Undertaker_Swing,16,17,,common,TID_ACCESSORY_MORTIS_SWING,,,,genicon_health,,,,
269 | BlackHole_Vision,sc/ui.sc,icon_item_tara_1,BlackHole,,,,5,,accessory,BlackHole_Vision,20,1,,common,TID_ACCESSORY_TARA_VISION,,,,genicon_health,,,,
270 | DeadMariachi_Regen,sc/ui.sc,icon_item_poco_1,DeadMariachi,,,,5,,accessory,DeadMariachi_Regen,16,17,,common,TID_ACCESSORY_POCO_REGEN,,,,genicon_health,,,,
271 | Sniper_HandGun,sc/ui.sc,icon_item_piper_1,Sniper,,,,5,,accessory,Sniper_HandGun,19,2,,common,TID_ACCESSORY_SNIPER_HANDGUN,,,,genicon_health,,,,
272 | SpawnerDude_Promote,sc/ui.sc,icon_item_spawner_1,SpawnerDude,,,,5,,accessory,SpawnerDude_Promote,1,2,3,common,TID_ACCESSORY_SPAWNER_DUDE_PROMOTE,,,,genicon_health,,,,
273 | Sandstorm_Sleep,sc/ui.sc,icon_item_sandy_1,Sandstorm,,,,5,,accessory,Sandstorm_Sleep,13,,,common,TID_ACCESSORY_SANDY_SLEEP,,,,genicon_health,,,,
274 | BeeSniper_Slow,sc/ui.sc,icon_item_bea_1,BeeSniper,,,,5,,accessory,BeeSniper_Slow,0,,,common,TID_ACCESSORY_BEE_SNIPER_SLOW,,,,genicon_health,,,,
275 | BullDude_Heal,sc/ui.sc,icon_item_bull_1,BullDude,,,,5,,accessory,BullDude_Heal,1,20,,common,TID_ACCESSORY_BULL_HEAL,,,,genicon_health,,,,
276 | Gunslinger_Reload,sc/ui.sc,icon_item_colt_1,Gunslinger,,,,5,,accessory,Gunslinger_Reload,11,,,common,TID_ACCESSORY_GUNSLINGER_RELOAD,,,,genicon_health,,,,
277 | Mummy_Push,sc/ui.sc,icon_item_emz_1,Mummy,,,,5,,accessory,Mummy_Push,16,17,,common,TID_ACCESSORY_MUMMY_PUSH,,,,genicon_health,,,,
278 | Baseball_Heal,sc/ui.sc,icon_item_bibi_1,Baseball,,,,5,,accessory,Baseball_Heal,1,20,,common,TID_ACCESSORY_BASEBALL_HEAL,,,,genicon_health,,,,
279 | Ninja_Fake,sc/ui.sc,icon_item_leon_1,Ninja,,,,5,,accessory,Ninja_Fake,0,,,common,TID_ACCESSORY_NINJA_FAKE,,,,genicon_health,,,,
280 | Blower_Trampoline,sc/ui.sc,icon_item_gale_1,Blower,,,,5,,accessory,Blower_Trampoline,0,,,common,TID_ACCESSORY_BLOWER_TRAMPOLINE,,,,genicon_health,,,,
281 | Controller_Explode,sc/ui.sc,icon_item_nani_1,Controller,,,,5,,accessory,Controller_Explode,0,,,common,TID_ACCESSORY_CONTROLLER_EXPLODE,,,,genicon_health,,,,
282 | PowerLeveler_unlock,sc/ui.sc,,PowerLeveler,,,2,0,,unlock,,,,,epic,,,,,,,702,,
283 | PowerLeveler_hp,sc/ui.sc,health_icon,PowerLeveler,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
284 | PowerLeveler_abi,sc/ui.sc,attack_icon,PowerLeveler,,,,2,,skill,PowerLevelerWeapon,,,,common,TID_POWER_LEVELER_WEAPON,TID_STAT_DAMAGE,,,genicon_damage,,,,
285 | PowerLeveler_ulti,sc/ui.sc,ulti_icon,PowerLeveler,,,,3,,skill,PowerLevelerUlti,,,,common,TID_POWER_LEVELER_ULTI,TID_STAT_DAMAGE,,,genicon_damage,,,,
286 | PowerLeveler_unique,sc/ui.sc,,PowerLeveler,,,,4,,split_also_wall_hit,,1,,,common,TID_SPEC_ABI_POWER_LEVELER_1,,,,genicon_damage,,,,
287 | PowerLeveler_unique_2,sc/ui.sc,,PowerLeveler,,,,4,,decrease_level_loss,,1,,,common,TID_SPEC_ABI_POWER_LEVELER_2,,,,genicon_damage,,,,
288 | PowerLeveler_Blink,sc/ui.sc,icon_item_8bit_1,PowerLeveler,,,,5,,accessory,PowerLeveler_Blink,0,,,common,TID_ACCESSORY_POWER_LEVELER_BLINK,,,,genicon_health,,,,
289 | Crow_PoisonTrigger,sc/ui.sc,icon_item_crow_2,Crow,,,,5,,accessory,Crow_PoisonTrigger,24,3,,common,TID_ACCESSORY_CROW_POISON_TRIGGER,,,,genicon_health,,,,
290 | ArtilleryDude_Barrage,sc/ui.sc,icon_item_penny_2,ArtilleryDude,,,,5,,accessory,ArtilleryDude_Barrage,0,,,common,TID_ACCESSORY_ARTILLERY_BARRAGE,,,,genicon_health,,,,
291 | ShotgunGirl_Focus,sc/ui.sc,icon_item_shelly_2,ShotgunGirl,,,,5,,accessory,ShotgunGirl_Focus,20,,,common,TID_ACCESSORY_SHELLY_FOCUS,,,,genicon_health,,,,
292 | BowDude_MineTrigger,sc/ui.sc,icon_item_bo_2,BowDude,,,,5,,accessory,BowDude_MineTrigger,20,1,,common,TID_ACCESSORY_BO_MINE_TRIGGER,,,,genicon_health,,,,
293 | Undertaker_Reload,sc/ui.sc,icon_item_mortis_2,Undertaker,,,,5,,accessory,Undertaker_Reload,20,1,,common,TID_ACCESSORY_UNDERTAKER_RELOAD,,,,genicon_health,,,,
294 | Sniper_Seeker,sc/ui.sc,icon_item_piper_2,Sniper,,,,5,,accessory,Sniper_Seeker,0,,,common,TID_ACCESSORY_SNIPER_SEEKER,,,,genicon_health,,,,
295 | Luchador_Meteor,sc/ui.sc,icon_item_elprimo_2,Luchador,,,,5,,accessory,Luchador_Meteor,1,2,3,common,TID_ACCESSORY_LUCHADOR_METEOR,,,,genicon_health,,,,
296 | Barkeep_HealPotion,sc/ui.sc,icon_item_barley_2,Barkeep,,,,5,,accessory,Barkeep_HealPotion,2,,,common,TID_ACCESSORY_BARKEEP_HEAL_POTION,,,,genicon_health,,,,
297 | TntDude_Stun,sc/ui.sc,icon_item_dynamike_2,TntDude,,,,5,,accessory,TntDude_Stun,25,,,common,TID_ACCESSORY_TNT_STUN,,,,genicon_health,,,,
298 | Mechanic_TurretBuff,sc/ui.sc,icon_item_jessie_2,Mechanic,,,,5,,accessory,Mechanic_TurretBuff,20,1,,common,TID_ACCESSORY_MECHANIC_TURRET_BUFF,,,,genicon_health,,,,
299 | Percenter_unlock,sc/ui.sc,,Percenter,,,3,0,,unlock,,,,,epic,,,,,,,703,,
300 | Percenter_hp,sc/ui.sc,health_icon,Percenter,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
301 | Percenter_abi,sc/ui.sc,attack_icon,Percenter,,,,2,,skill,PercenterWeapon,,,,common,TID_PERCENTER_WEAPON,TID_STAT_DAMAGE,,,genicon_damage,,,,
302 | Percenter_ulti,sc/ui.sc,ulti_icon,Percenter,,,,3,,skill,PercenterUlti,,,,common,TID_PERCENTER_ULTI,TID_STAT_DAMAGE,,,genicon_damage,,,,
303 | Percenter_unique,sc/ui.sc,,Percenter,,,,4,,push_charge,,300,,,common,TID_SPEC_ABI_PERCENTER_1,,,,genicon_damage,,,,
304 | Percenter_unique_2,sc/ui.sc,,Percenter,,,,4,,shield_charge,,20,10,100,common,TID_SPEC_ABI_PERCENTER_2,,,,genicon_damage,,,,
305 | Percenter_StaticDamage,sc/ui.sc,icon_item_colette_1,Percenter,,,,5,,accessory,Percenter_StaticDamage,1,,,common,TID_ACCESSORY_PERCENTER_STATIC_DAMAGE,,,,genicon_health,,,,
306 | FireDude_unlock,sc/ui.sc,,FireDude,,,,0,,unlock,,,,,legendary,,,,,,,605,,
307 | FireDude_hp,sc/ui.sc,health_icon,FireDude,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
308 | FireDude_abi,sc/ui.sc,attack_icon,FireDude,,,,2,,skill,FireDudeWeapon,,,,common,TID_FIRE_DUDE_WEAPON,TID_STAT_DAMAGE_PER_SECOND,,,genicon_damage,,,,
309 | FireDude_ulti,sc/ui.sc,ulti_icon,FireDude,,,,3,,skill,FireDudeUlti,,,,common,TID_FIRE_DUDE_ULTI,TID_STAT_DAMAGE,,,genicon_damage,,,,
310 | FireDude_unique,sc/ui.sc,,FireDude,,,,4,,more_petrol,,200,,,common,TID_SPEC_ABI_FIRE_DUDE_1,,,,genicon_damage,,,,
311 | FireDude_unique_2,sc/ui.sc,,FireDude,,,,4,,petrol_reload,,50,,,common,TID_SPEC_ABI_FIRE_DUDE_2,,,,genicon_damage,,,,
312 | FireDude_Spill,sc/ui.sc,icon_item_amber_1,FireDude,,,,5,,accessory,FireDude_Spill,20,1,,common,TID_ACCESSORY_FIRE_DUDE_SPILL,,,,genicon_health,,,,
313 | BullDude_Stomp,sc/ui.sc,icon_item_bull_2,BullDude,,,,5,,accessory,BullDude_Stomp,26,,,common,TID_ACCESSORY_BULL_STOMP,,,,genicon_health,,,,
314 | Speedy_Rewind,sc/ui.sc,icon_item_max_2,Speedy,,,,5,,accessory,Speedy_Rewind,20,1,,common,TID_ACCESSORY_REWIND,,,,genicon_health,,,,
315 | BeeSniper_ExtraBee,sc/ui.sc,icon_item_bea_2,BeeSniper,,,,5,,accessory,BeeSniper_ExtraBee,19,2,,common,TID_ACCESSORY_EXTRA_BEE,,,,genicon_health,,,,
316 | BarrelBot_Slow,sc/ui.sc,icon_item_darryl_2,BarrelBot,,,,5,,accessory,BarrelBot_Slow,20,1,,common,TID_ACCESSORY_BARREL_SLOW,,,,genicon_health,,,,
317 | Shaman_Shield,sc/ui.sc,icon_item_nita_2,Shaman,,,,5,,accessory,Shaman_Shield,20,1,,common,TID_ACCESSORY_SHAMAN_SHIELD,,,,genicon_health,,,,
318 | Wally_Reposition,sc/ui.sc,icon_item_sprout_2,Wally,,,,5,,accessory,Wally_Reposition,0,,,common,TID_ACCESSORY_WALLY_REPOSITION,,,,genicon_health,,,,
319 | RocketGirl_MegaRocket,sc/ui.sc,icon_item_brock_2,RocketGirl,,,,5,,accessory,RocketGirl_MegaRocket,1,2,3,common,TID_ACCESSORY_MEGA_ROCKET,,,,genicon_health,,,,
320 | Whirlwind_Fly,sc/ui.sc,icon_item_carl_2,Whirlwind,,,,5,,accessory,Whirlwind_Fly,0,,,common,TID_ACCESSORY_WHIRLWIND_FLY,,,,genicon_health,,,,
321 | Arcade_Double,sc/ui.sc,icon_item_8bit_2,Arcade,,,,5,,accessory,Arcade_Double,27,,,common,TID_ACCESSORY_ARCADE_DOUBLE,,,,genicon_health,,,,
322 | Gunslinger_BigBullet,sc/ui.sc,icon_item_colt_2,Gunslinger,,,,5,,accessory,Gunslinger_BigBullet,31,,,common,TID_ACCESSORY_GUNSLINGER_BIG_BULLET,,,,genicon_health,,,,
323 | IceDude_unlock,sc/ui.sc,,IceDude,,,4,0,,unlock,,,,,epic,,,,,,,704,,
324 | IceDude_hp,sc/ui.sc,health_icon,IceDude,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
325 | IceDude_abi,sc/ui.sc,attack_icon,IceDude,,,,2,,skill,IceDudeWeapon,,,,common,TID_ICE_DUDE_WEAPON,TID_STAT_DAMAGE,,,genicon_damage,,,,
326 | IceDude_ulti,sc/ui.sc,ulti_icon,IceDude,,,,3,,skill,IceDudeUlti,,,,common,TID_ICE_DUDE_ULTI,TID_STAT_DAMAGE,,,genicon_damage,,,,
327 | IceDude_unique,sc/ui.sc,,IceDude,,,,4,,slippery_to_frost,,7,,,common,TID_SPEC_ABI_ICE_DUDE_1,,,,genicon_damage,,,,
328 | IceDude_unique_2,sc/ui.sc,,IceDude,,,,4,,freeze_reload,,75,,,common,TID_SPEC_ABI_ICE_DUDE_2,,,,genicon_damage,,,,
329 | IceDude_Freeze,sc/ui.sc,icon_item_lou_1,IceDude,,,,5,,accessory,IceDude_Freeze,20,1,,common,TID_ACCESSORY_ICE_DUDE_GADGET,,,,genicon_health,,,,
330 | SnakeOil_unlock,sc/ui.sc,,SnakeOil,,,,0,,unlock,,,,,mega_epic,,,,,,,507,,
331 | SnakeOil_hp,sc/ui.sc,health_icon,SnakeOil,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
332 | SnakeOil_abi,sc/ui.sc,attack_icon,SnakeOil,,,,2,,skill,SnakeOilWeapon,,,,common,TID_SNAKE_OIL_WEAPON,TID_STAT_DAMAGE_OR_HEAL,,,genicon_damage,,,,
333 | SnakeOil_ulti,sc/ui.sc,ulti_icon,SnakeOil,,,,3,,skill,SnakeOilUlti,,,,common,TID_SNAKE_OIL_ULTI,TID_STAT_DAMAGE_OR_HEAL,,,genicon_damage,,,,
334 | SnakeOil_unique,sc/ui.sc,,SnakeOil,,,,4,,suppress_heals,,75,180,,common,TID_SPEC_ABI_SNAKE_OIL_1,,,,genicon_damage,,,,
335 | SnakeOil_unique_2,sc/ui.sc,,SnakeOil,,,,4,,attack_pierce,,70,,,common,TID_SPEC_ABI_SNAKE_OIL_2,,,,genicon_damage,,,,
336 | SnakeOil_Heal,sc/ui.sc,icon_item_byron_1,SnakeOil,,,,5,,accessory,SnakeOil_Heal,1,28,,common,TID_ACCESSORY_SNAKE_OIL_HEAL,,,,genicon_health,,,,
337 | Enrager_unlock,sc/ui.sc,,Enrager,,,,0,,unlock,,,,,epic,,,,,,,407,,
338 | Enrager_hp,sc/ui.sc,health_icon,Enrager,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
339 | Enrager_abi,sc/ui.sc,attack_icon,Enrager,,,,2,,skill,EnragerWeapon,,,,common,TID_ENRAGER_WEAPON,TID_STAT_DAMAGE,,,genicon_damage,,,,
340 | Enrager_ulti,sc/ui.sc,ulti_icon,Enrager,,,,3,,skill,EnragerUlti,,,,common,TID_ENRAGER_ULTI,TID_STAT_DAMAGE,,,genicon_damage,,,,true
341 | Enrager_unique,sc/ui.sc,,Enrager,,,,4,,charge_end_damage,,35,60,,common,TID_SPEC_ABI_ENRAGER_1,,,,genicon_damage,,,,
342 | Enrager_unique_2,sc/ui.sc,,Enrager,,,,4,,self_heal_increase,,25,,,common,TID_SPEC_ABI_ENRAGER_2,,,,genicon_damage,,,,
343 | Enrager_SuperBoost,sc/ui.sc,icon_item_edgar_1,Enrager,,,,5,,accessory,Enrager_SuperBoost,1,20,,common,TID_ACCESSORY_ENRAGER_SUPER_BOOST,,,,genicon_health,,,,
344 | Ruffs_unlock,sc/ui.sc,,Ruffs,,,5,0,,unlock,,,,,epic,,,,,,,705,,
345 | Ruffs_hp,sc/ui.sc,health_icon,Ruffs,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
346 | Ruffs_abi,sc/ui.sc,attack_icon,Ruffs,,,,2,,skill,RuffsWeapon,,,,common,TID_RUFFS_WEAPON,TID_STAT_DAMAGE,,,genicon_damage,,,,
347 | Ruffs_ulti,sc/ui.sc,ulti_icon,Ruffs,,,,3,,skill,RuffsUlti,,,,common,TID_RUFFS_ULTI,TID_STAT_DAMAGE,,,genicon_damage,,,,true
348 | Ruffs_unique,sc/ui.sc,,Ruffs,,,,4,,supply_bomb,,1000,,,common,TID_SPEC_ABI_RUFFS_1,,,,genicon_damage,,,,
349 | Ruffs_unique_2,sc/ui.sc,,Ruffs,,,,4,,increase_team_health,,30,,,common,TID_SPEC_ABI_RUFFS_2,,,,genicon_damage,,,,
350 | Ruffs_Cover,sc/ui.sc,icon_item_ruffs_1,Ruffs,,,,5,,accessory,Ruffs_Cover,1,29,,common,TID_ACCESSORY_RUFFS_COVER,,,,genicon_health,,,,
351 | Rosa_BushControl,sc/ui.sc,icon_item_rosa_2,Rosa,,,,5,,accessory,Rosa_BushControl,24,3,,common,TID_ACCESSORY_ROSA_BUSH_CONTROL,,,,genicon_health,,,,
352 | SpawnerDude_ExtraPorter,sc/ui.sc,icon_item_spawner_2,SpawnerDude,,,,5,,accessory,SpawnerDude_ExtraPorter,0,,,common,TID_ACCESSORY_SPAWNER_DUDE_EXTRA_PORTER,,,,genicon_health,,,,
353 | DeadMariachi_Cleanse,sc/ui.sc,icon_item_poco_2,DeadMariachi,,,,5,,accessory,DeadMariachi_Cleanse,16,17,,common,TID_ACCESSORY_POCO_CLEANSE,,,,genicon_health,,,,
354 | HammerDude_Pull,sc/ui.sc,icon_item_frank_2,HammerDude,,,,5,,accessory,HammerDude_Pull,2,,,common,TID_ACCESSORY_FRANK_PULL,,,,genicon_health,,,,
355 | HookDude_Homing,sc/ui.sc,icon_item_gene_2,HookDude,,,,5,,accessory,HookDude_Homing,1,2,3,common,TID_ACCESSORY_GENE_HOMING,,,,genicon_health,,,,
356 | Controller_BounceBack,sc/ui.sc,icon_item_nani_2,Controller,,,,5,,accessory,Controller_BounceBack,1,20,,common,TID_ACCESSORY_CONTROLLER_BOUNCE_BACK,,,,genicon_health,,,,
357 | Driller_Proto,sc/ui.sc,icon_item_edgar_1,Driller,TRUE,TRUE,,5,,accessory,Driller_Proto,0,,,common,TID_ACCESSORY_PROTO,,,,genicon_health,,,,
358 | ClusterBombDude_Explosion,sc/ui.sc,icon_item_tick_2,ClusterBombDude,,,,5,,accessory,ClusterBombDude_Explosion,13,16,14,common,TID_ACCESSORY_TICK_EXPLOSION,,,,genicon_health,,,,
359 | BlackHole_Shadows,sc/ui.sc,icon_item_tara_2,BlackHole,,,,5,,accessory,BlackHole_Shadows,30,,,common,TID_ACCESSORY_TARA_SHADOWS,,,,genicon_health,,,,
360 | Baseball_Proto,sc/ui.sc,icon_item_edgar_1,Baseball,TRUE,TRUE,,5,,accessory,Baseball_Proto,0,,,common,TID_ACCESSORY_PROTO,,,,genicon_health,,,,
361 | Roller_unlock,sc/ui.sc,,Roller,,,,0,,unlock,,,,,common,,,,,,,112,,
362 | Roller_hp,sc/ui.sc,health_icon,Roller,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
363 | Roller_abi,sc/ui.sc,attack_icon,Roller,,,,2,,skill,RollerWeapon,,,,common,TID_ROLLER_WEAPON,TID_STAT_DAMAGE,,,genicon_damage,,,,
364 | Roller_ulti,sc/ui.sc,ulti_icon,Roller,,,,3,,skill,RollerUlti,,,,common,TID_ROLLER_ULTI,TID_STAT_DAMAGE,,,genicon_damage,,,,
365 | Roller_unique,sc/ui.sc,,Roller,,,,4,,increase_dodge_length,,5,,,common,TID_SPEC_ABI_ROLLER_1,,,,genicon_damage,,,,
366 | Roller_unique_2,sc/ui.sc,,Roller,,,,4,,heal_on_charge,,400,,,common,TID_SPEC_ABI_ROLLER_2,,,,genicon_damage,,,,
367 | Roller_Speed,sc/ui.sc,icon_item_stu_1,Roller,,,,5,,accessory,Roller_Speed,0,,,common,TID_ACCESSORY_ROLLER_SPEED,,,,genicon_health,,,,
368 | ElectroSniper_unlock,sc/ui.sc,,ElectroSniper,,,6,0,,unlock,,,,,epic,,,,,,,706,,
369 | ElectroSniper_hp,sc/ui.sc,health_icon,ElectroSniper,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
370 | ElectroSniper_abi,sc/ui.sc,attack_icon,ElectroSniper,,,,2,,skill,ElectroSniperWeapon,,,,common,TID_ELECTRO_SNIPER_WEAPON,TID_STAT_DAMAGE,,,genicon_damage,,,,
371 | ElectroSniper_ulti,sc/ui.sc,ulti_icon,ElectroSniper,,,,3,,skill,ElectroSniperUlti,,,,common,TID_ELECTRO_SNIPER_ULTI,TID_STAT_DAMAGE,,,genicon_damage,,,,
372 | ElectroSniper_unique,sc/ui.sc,icon_sp_belle_1,ElectroSniper,,,,4,,electro_shield,,20,20,,common,TID_SPEC_ABI_ELECTRO_SNIPER_1,,,,genicon_damage,,,,
373 | ElectroSniper_unique_2,sc/ui.sc,icon_sp_belle_2,ElectroSniper,,,,4,,ulti_reload_debuff,,1000,60,,common,TID_SPEC_ABI_ELECTRO_SNIPER_2,,,,genicon_damage,,,,
374 | ElectroSniper_Trap,sc/ui.sc,icon_item_belle_1,ElectroSniper,,,,5,,accessory,ElectroSniper_Trap,1,33,,common,TID_ACCESSORY_ELECTRO_SNIPER_TRAP,,,,genicon_health,,,,
375 | StickyBomb_unlock,sc/ui.sc,,StickyBomb,,,,0,,unlock,,,,,mega_epic,,,,,,,508,,
376 | StickyBomb_hp,sc/ui.sc,health_icon,StickyBomb,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
377 | StickyBomb_abi,sc/ui.sc,attack_icon,StickyBomb,,,,2,,skill,StickyBombWeapon,,,,common,TID_STICKY_BOMB_WEAPON,TID_STAT_DAMAGE,,,genicon_damage,,,,
378 | StickyBomb_ulti,sc/ui.sc,ulti_icon,StickyBomb,,,,3,,skill,StickyBombUlti,,,,common,TID_STICKY_BOMB_ULTI,TID_STAT_DAMAGE,,,genicon_damage,,,,
379 | StickyBomb_unique,sc/ui.sc,icon_sp_squeak_1,StickyBomb,,,,4,,target_count_damage,,10,,,common,TID_SPEC_ABI_STICKY_BOMB_1,,,,genicon_damage,,,,
380 | StickyBomb_unique_2,sc/ui.sc,icon_sp_squeak_2,StickyBomb,,,,4,,ulti_bomb_slow,,350,80,,common,TID_SPEC_ABI_STICKY_BOMB_2,,,,genicon_damage,,,,
381 | StickyBomb_Range,sc/ui.sc,icon_item_squeak_1,StickyBomb,,,,5,,accessory,StickyBomb_Range,32,,,common,TID_ACCESSORY_STICKY_BOMB_RANGE,,,,genicon_health,,,,
382 | 0e180ca50a75f08ec5d54eca19d214be61f76909,sc/ui.sc,,c40e04a2c11fef1c9e5ad740e344f6571f5e7d05,true,,,0,,unlock,,,,,common,,,,,,,101,,
383 | 8a99d481f6000c5257d09a5d1dcbc37e45e40def,sc/ui.sc,health_icon,c40e04a2c11fef1c9e5ad740e344f6571f5e7d05,true,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
384 | 5cfa70cbd7a23b3d451b311f052dde347657f32a,sc/ui.sc,attack_icon,c40e04a2c11fef1c9e5ad740e344f6571f5e7d05,true,,,2,,skill,ShotgunGirlWeapon,,,,common,TID_LONG_RANGE_SHOTGUN,TID_STAT_DAMAGE_PER_SHELL,,,genicon_damage,,,,
385 | ac0fe58137217b42178d63ce4404f48b1c6e9fb3,sc/ui.sc,ulti_icon,c40e04a2c11fef1c9e5ad740e344f6571f5e7d05,true,,,3,,skill,ShotgunGirlUlti,,,,common,TID_MEGA_BLASH_ULTI,TID_STAT_DAMAGE_PER_SHELL,,,genicon_damage,,,,
386 | 8da2c843cd0c17dd3f276e285051688c65df84ad,sc/ui.sc,,c40e04a2c11fef1c9e5ad740e344f6571f5e7d05,true,true,,4,,petrol_reload,,7,40,,common,TID_SPEC_SUPER_RANGE,,,,genicon_health,,,,
387 | dd2c290001dc0540fbd4548f5d9a6ce55793323b,sc/ui.sc,,c40e04a2c11fef1c9e5ad740e344f6571f5e7d05,true,true,,4,,petrol_reload,,7,40,,common,TID_SPEC_SUPER_RANGE,,,,genicon_health,,,,
388 | 99fe230d961782e3d9160f4b3235bebf410365bf,sc/ui.sc,icon_item_shelly_2,c40e04a2c11fef1c9e5ad740e344f6571f5e7d05,true,,,5,,accessory,ShotgunGirl_Focus,20,,,common,TID_ACCESSORY_SHELLY_FOCUS,,,,genicon_health,,,,
389 | RopeDude_unlock,sc/ui.sc,,RopeDude,,,7,0,,unlock,,,,,epic,,,,,,,707,,
390 | RopeDude_hp,sc/ui.sc,health_icon,RopeDude,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
391 | RopeDude_abi,sc/ui.sc,attack_icon,RopeDude,,,,2,,skill,RopeDudeWeapon,,,,common,TID_ROPE_DUDE_WEAPON,TID_STAT_DAMAGE,,,genicon_damage,,,,
392 | RopeDude_ulti,sc/ui.sc,ulti_icon,RopeDude,,,,3,,skill,RopeDudeUlti,,,,common,TID_ROPE_DUDE_ULTI,TID_STAT_DAMAGE,,,genicon_damage,,,,
393 | RopeDude_unique,sc/ui.sc,,RopeDude,,,,4,,min_stun,,10,,,common,TID_SPEC_ABI_ROPE_DUDE_1,,,,genicon_damage,,,,
394 | RopeDude_unique_2,sc/ui.sc,,RopeDude,,,,4,,super_charge_area,,1,,,common,TID_SPEC_ABI_ROPE_DUDE_2,,,,genicon_damage,,,,
395 | RopeDude_WeakUlti,sc/ui.sc,icon_item_buzz_1,RopeDude,,,,5,,accessory,RopeDude_WeakUlti,0,,,common,TID_ACCESSORY_ROPE_DUDE_WEAK_ULTI,,,,genicon_health,,,,
396 | AssaultShotgun_unlock,sc/ui.sc,,AssaultShotgun,,,,0,,unlock,,,,,epic,,,,,,,408,,
397 | AssaultShotgun_hp,sc/ui.sc,health_icon,AssaultShotgun,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
398 | AssaultShotgun_abi,sc/ui.sc,attack_icon,AssaultShotgun,,,,2,,skill,AssaultShotgunWeapon,,,,common,TID_ASSAULT_SHOTGUN_WEAPON,TID_STAT_DAMAGE,,,genicon_damage,,,,
399 | AssaultShotgun_ulti,sc/ui.sc,ulti_icon,AssaultShotgun,,,,3,,skill,AssaultShotgunUlti,,,,common,TID_ASSAULT_SHOTGUN_ULTI,TID_STAT_DAMAGE,,,genicon_damage,,,,
400 | AssaultShotgun_unique,sc/ui.sc,,AssaultShotgun,,,,4,,decrease_unload_time,,35,,,common,TID_SPEC_ABI_ASSAULT_SHOTGUN_1,,,,genicon_damage,,,,
401 | AssaultShotgun_unique_2,sc/ui.sc,,AssaultShotgun,,,,4,,heal_continuous,,10,40,,common,TID_SPEC_ABI_ASSAULT_SHOTGUN_2,,,,genicon_damage,,,,
402 | AssaultShotgun_Bomb,sc/ui.sc,icon_item_griff_1,AssaultShotgun,,,,5,,accessory,AssaultShotgun_Bomb,2,,,common,TID_ACCESSORY_ASSAULT_SHOTGUN_BOMB,,,,genicon_health,,,,
403 | IceDude_AreaFreeze,sc/ui.sc,icon_item_lou_2,IceDude,,,,5,,accessory,IceDude_AreaFreeze,1,,,common,TID_ACCESSORY_ICE_DUDE_AREA_FREEZE,,,,genicon_health,,,,
404 | Roller_MegaStunt,sc/ui.sc,icon_item_stu_2,Roller,,,,5,,accessory,Roller_MegaStunt,1,,,common,TID_ACCESSORY_ROLLER_MEGA_STUNT,,,,genicon_health,,,,
405 | Ruffs_AirStrike,sc/ui.sc,icon_item_ruffs_2,Ruffs,,,,5,,accessory,Ruffs_AirStrike,1,,,common,TID_ACCESSORY_RUFFS_AIR_STRIKE,,,,genicon_health,,,,
406 | Enrager_Protection,sc/ui.sc,icon_item_edgar_2,Enrager,,,,5,,accessory,Enrager_Protection,1,,,common,TID_ACCESSORY_ENRAGER_PROTECTION,,,,genicon_health,,,,
407 | MinigunDude_AmmoSink,sc/ui.sc,icon_item_pam_2,MinigunDude,,,,5,,accessory,MinigunDude_AmmoSink,1,2,,common,TID_ACCESSORY_MINIGUN_DUDE_AMMO_SINK,,,,genicon_health,,,,
408 | Sandstorm_StunSleep,sc/ui.sc,icon_item_sandy_2,Sandstorm,,,,5,,accessory,Sandstorm_StunSleep,25,,,common,TID_ACCESSORY_SANDSTORM_STUN_SLEEP,,,,genicon_health,,,,
409 | Cactus_Cover,sc/ui.sc,icon_item_spike_2,Cactus,,,,5,,accessory,Cactus_Cover,29,34,,common,TID_ACCESSORY_CACTUS_COVER,,,,genicon_health,,,,
410 | Blower_Stopper,sc/ui.sc,icon_item_gale_2,Blower,,,,5,,accessory,Blower_Stopper,1,,,common,TID_ACCESSORY_BLOWER_STOPPER,,,,genicon_health,,,,
411 | Ninja_InvisibleArea,sc/ui.sc,icon_item_leon_2,Ninja,,,,5,,accessory,Ninja_InvisibleArea,1,,,common,TID_ACCESSORY_NINJA_INVISIBLE_AREA,,,,genicon_health,,,,
412 | TrickshotDude_BounceHeal,sc/ui.sc,icon_item_ricochet_2,TrickshotDude,,,,5,,accessory,TrickshotDude_BounceHeal,1,,,common,TID_ACCESSORY_TRICKSHOT_DUDE_BOUNCE_HEAL,,,,genicon_health,,,,
413 | Knight_unlock,sc/ui.sc,,Knight,,,8,0,,unlock,,,,,epic,,,,,,,708,,
414 | Knight_hp,sc/ui.sc,health_icon,Knight,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
415 | Knight_abi,sc/ui.sc,attack_icon,Knight,,,,2,,skill,KnightWeapon,,,,common,TID_KNIGHT_WEAPON,TID_STAT_DAMAGE,,,genicon_damage,,,,
416 | Knight_ulti,sc/ui.sc,ulti_icon,Knight,,,,3,,skill,KnightUlti,,,,common,TID_KNIGHT_ULTI,TID_STAT_DAMAGE,,,genicon_damage,,,,
417 | Knight_unique,sc/ui.sc,,Knight,,,,4,,extra_rage,,200,,,common,TID_SPEC_ABI_KNIGHT_1,,,,genicon_damage,,,,
418 | Knight_unique_2,sc/ui.sc,,Knight,,,,4,,reload_from_rage,,30,,,common,TID_SPEC_ABI_KNIGHT_2,,,,genicon_damage,,,,
419 | Knight_Heal,sc/ui.sc,icon_item_ash_1,Knight,,,,5,,accessory,Knight_Heal,1,,,common,TID_ACCESSORY_KNIGHT_HEAL,,,,genicon_health,,,,
420 | MechaDude_unlock,sc/ui.sc,,MechaDude,,,,0,,unlock,,,,,legendary,,,,,,,606,,
421 | MechaDude_hp,sc/ui.sc,health_icon,MechaDude,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
422 | MechaDude_abi,sc/ui.sc,attack_icon,MechaDude,,,,2,,skill,MechaDudeWeapon,,,,common,TID_MECHA_DUDE_WEAPON,TID_STAT_DAMAGE,,,genicon_damage,,,,
423 | MechaDude_ulti,sc/ui.sc,ulti_icon,MechaDude,,,,3,,skill,MechaDudeUlti,,,,common,TID_MECHA_DUDE_ULTI,TID_STAT_DAMAGE,,,genicon_damage,,,,
424 | MechaDude_unique,sc/ui.sc,,MechaDude,,,,4,,downgrade_shield,,35,600,,common,TID_SPEC_ABI_MECHA_DUDE_1,,,,genicon_damage,,,,
425 | MechaDude_unique_2,sc/ui.sc,,MechaDude,,,,4,,mecha_explosion,,1,,,common,TID_SPEC_ABI_MECHA_DUDE_2,,,,genicon_damage,,,,
426 | MechaDude_Heal,sc/ui.sc,icon_item_meg_1,MechaDude,,,,5,,accessory,MechaDude_Heal,1,20,,common,TID_ACCESSORY_MECHA_DUDE_HEAL,,,,genicon_health,,,,
427 | MechaDudeBig_hp,sc/ui.sc,health_icon,MechaDudeBig,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
428 | MechaDudeBig_abi,sc/ui.sc,attack_icon,MechaDudeBig,,,,2,,skill,MechaDudeBigWeapon,,,,common,TID_MECHA_DUDE_BIG_WEAPON,TID_STAT_DAMAGE,,,genicon_damage,,,,
429 | MechaDudeBig_ulti,sc/ui.sc,ulti_icon,MechaDudeBig,,,,3,,skill,MechaDudeBigUlti,,,,common,TID_MECHA_DUDE_BIG_ULTI,TID_STAT_DAMAGE,,,genicon_damage,,,,
430 | Duplicator_unlock,sc/ui.sc,,Duplicator,,,9,0,,unlock,,,,,epic,,,,,,,709,,
431 | Duplicator_hp,sc/ui.sc,health_icon,Duplicator,,,,1,,hp,,,,,common,TID_ARMOR,TID_ARMOR_STAT,,,genicon_health,,,,
432 | Duplicator_abi,sc/ui.sc,attack_icon,Duplicator,,,,2,,skill,DuplicatorWeapon,,,,common,TID_DUPLICATOR_WEAPON,TID_STAT_DAMAGE,,,genicon_damage,,,,
433 | Duplicator_ulti,sc/ui.sc,ulti_icon,Duplicator,,,,3,,skill,DuplicatorUlti,,,,common,TID_DUPLICATOR_ULTI,TID_STAT_DAMAGE,,,genicon_damage,,,,
434 | Duplicator_unique,sc/ui.sc,,Duplicator,,,,4,,last_shot_damage,,66,30,,common,TID_SPEC_ABI_DUPLICATOR_1,,,,genicon_damage,,,,
435 | Duplicator_unique_2,sc/ui.sc,,Duplicator,,TRUE,,4,,pet_healing_bullets,,100,,,common,TID_SPEC_ABI_DUPLICATOR_2,,,,genicon_damage,,,,
436 | Duplicator_StaticDuplicate,sc/ui.sc,icon_item_lolla_1,Duplicator,,,,5,,accessory,Duplicator_StaticDuplicate,1,20,,common,TID_ACCESSORY_DUPLICATOR_GADGET,,,,genicon_health,,,,
437 |
--------------------------------------------------------------------------------