Skip to content

How to add new Characters

optc-db edited this page Sep 4, 2016 · 1 revision

First Steps

Pretty much everything will be done in common/data

The first thing to check is units.js

in here we will find the list of Units listed by their ID, the ID of a row is the Number of that row minus 1. So Base Buggy is on line 39 but his ID is 38.

If for some Reason we are missing Data on a few whole Units, you need to add Empty [] as a placehodler for them.

Basic Info

Now to the Unit Info themselfes: Example:

[ "Monkey D. Luffy", "STR", "Fighter", 2, 1, 5, 0, 5, 163, 42, 15, 8, 134, 68, 15, 1 ]

is According to the form

["Name","Type","Class",Stars,Cost,Combo,Slots,Max Level,EXP to Max, Min HP, Min ATK, Min RCV, Max HP, Max ATK, Max RCV,Growth Rate]

if the Unit has two Types add them like this:

 ["Type1","Type2"]

Growth Rate is still kind of a mystery to me, but depending on the value Units gain stats, if set to 0 it will show up as needing more info. I guess that the original OPTC Guy had some kind of Table where he calculated it by comparing values.

Captain/Special Description

The Name/Detail of both the Captain Ability and the Special is saved in details.js

You will have to add them like this:

ID: {
	captain: "Captain Ability Description",
	specialName: "Special Ability Name",
	special: "Special Ability Description",
	specialNotes: "Additional Notes for the Special"
},

Captain Ability

To make the aptain Ability work in the Calcaulator we also have to add it to captains.js

8: {
	atk: function(p) { return p.unit.type == "DEX" ? 2 : 1; },
            rcv: function(p) { return p.unit.type == "DEX" ? 1.2 : 1; },
	hp: function(p) { return p.unit.type == "DEX" ? 2 : 1; }
},

Your best bet here is to find a Unit that has a similiar Captain Ability, and adjust it accordingly. We also only care about Captain Abilities that modify Stats, so there is no entry for Heals in there.


Cooldowns The Min And Max Cooldowns are saved in cooldowns.js (What a surprise)

It's also pretty straight forward, each Character has an entry, if he has no Specials it has to be set to null, otherwise

 [ MAX, MIN ]

Specials If your New Special somehow changes stats or damage, so basicly Class/type/orb boosters.

916: {
	atk: function(p) { return p.unit.class.has("Knowledge") ? 1.5 : 1; },
	rcv: function(p) { return p.unit.class.has("Knowledge") ? 1.5 : 1; },
	type: "class"
}

Same as Captain Abilities, check existing specials to see if you can repurpose them. The type is used so that only one class/type boost is active at the same time, there also are warnings you can use

Evolutions

Does your Character Evolve? If yes what does he need to evolve?

If there is only one Evolution

ID: {
	evolution: ID of Evolution,
	evolvers: [ ID of Evolver, ID of Evolver]
},

otherwise it is like this:

ID: {
	evolution: [ ID of Evolution, ID of Evolution ],
	evolvers: [ [ ID of Evolver for first Evolution, ID of Evolver for first Evolution ], [ ID of Evolver for second Evolution ] ]
},

Families

Whichever Family the Units belongs to, AFAIK usable for Sockets If there is no other similar Unit set it to null

otherwise

 "The common family name"

Flags

Most units have Flags to make them sortable

 ID: {TAG: value}

Here is a list of Flags I found so far and what they mean

Flag Explanation
global whether the unit has arrived on Global yet
rr if the unit is obtainale through rare recruit
rro if the unit is aailable through rare recruit only
lrr If the unit is in rare recruit for a limited time only
special If it's a special one time promotion character

Tandems

Remember Tandems? Neither do I, but they still show up every now and them, but they are simple to add. Edit tandems.js

{
    "name": "Tandem Name",
    "desc": "Tandem Description",
    "units": [ ID of Unit 1, ID of Unit 2, ... ]
}

Alliases

Starting from the Other Name feature there is now a specific way to set up Aliases

ID: ['Name in Japanese', 'Name in French','Alias 1', 'Alias 2']

All of them will be searchable but the first will show up as the Japanese Name in the detail view, second as french, everything else as others

Extra Note: Zombies

If your new Captain Ability enables Zombiing you also need to edit zombies.js

ID: { 
    type: 'healer OR zombie OR reducer',
    multiplier: 4 //If healer and he recovers X amount of RCV | if reducer how much damage he takes (1 - reduction)
    amount: 1000 //If healer and has a static heal
    treshold: 0.3 //If zombie how much HP you need to have left in % to survive | if reducer how much HP you need to have to trigger the reduction
}

GameWith Link

Since GW has no logical linking system we also need a table for that

Check out gw.js and just keep on adding the respective gamewith id

So for G3 check the GW link: http://xn--pck6bvfc.gamewith.jp/article/show/4005

You will have to add the id "4005" in Position 217 of that really long array.