//! textmacro CATALOG_2
struct ItemCatalog2 extends array
//can be changed to arrays if adding charged reg items that collide with these
static readonly integer CHARGE_99_0 = 0
static readonly integer CHARGE_99_1 = 0
static readonly integer CHARGE_20_0 = 0
static readonly integer CHARGE_20_1 = 0
private integer array catalogs
private integer array classCatalogs
method operator raw takes nothing returns integer
return CatalogRaw(catalog, this)
endmethod
static method operator count takes nothing returns integer
return CatalogCount(catalog)
endmethod
method operator id takes nothing returns integer
return CatalogId(catalog, this)
endmethod
static method add takes integer v returns nothing
call CatalogAdd(catalog, v)
endmethod
static method addCatalog takes integer catalog returns nothing
call CatalogAddCatalog(thistype.catalog, catalog)
endmethod
static method operator [] takes integer i returns thistype
return classCatalogs[GetUnitPointValueByType(i)]
endmethod
private static method onInit takes nothing returns nothing
//item classes
/*
0 -------------------------- Off-Hand
1 -------------------------- Clothes
2 -------------------------- Leather
3 -------------------------- Chain
4 -------------------------- Plated
5 -------------------------- Sword/Axe/Hammer/Two-Handed
6 -------------------------- Dagger/Katar/Fist
7 -------------------------- Mace/Wand/Staff/Book/Runes
8 -------------------------- Bow/Crossbow
*/
set catalogs[0] = CatalogCreate()
set catalogs[1] = CatalogCreate()
set catalogs[2] = CatalogCreate()
set catalogs[3] = CatalogCreate()
set catalogs[4] = CatalogCreate()
set catalogs[5] = CatalogCreate()
set catalogs[6] = CatalogCreate()
set catalogs[7] = CatalogCreate()
set catalogs[8] = CatalogCreate()
//can be split up into each class and so forth if wanting super class specific items
//0
// warrior, warlord, legionaire, brigand, pikeman, lancer
// 0,1,2,3,4,5, rune
//
//1
// rogue, elu, slayer, shadow slayer, blader, executioner
// 0,1,2,3,6, rune
//2
// oracles, prophet, medium, sage, trickster, dualist, shaman, witch doctor
// 0,1,7, rune
//3
// ranger
// 0,1,2,8, rune
//4
// Refugee
// 0
set classCatalogs[0] = CatalogCreate() //war
set classCatalogs[1] = CatalogCreate() //rog
set classCatalogs[2] = CatalogCreate() //medium
set classCatalogs[3] = CatalogCreate() //ranger
set classCatalogs[4] = CatalogCreate() //refugee
//class 0
set CHARGE_99_0 = 1
call CatalogAdd(catalogs[0], 'I00F') //Stone
set CHARGE_99_1 = CatalogCount(catalogs[0])
set CHARGE_20_0 = CatalogCount(catalogs[0])+1
call CatalogAdd(catalogs[0], 'I01N') //Minor Healing Potion 0
call CatalogAdd(catalogs[0], 'I01L') //Greater Healing Potion 0
call CatalogAdd(catalogs[0], 'I01O') //Minor Mana Potion 0
call CatalogAdd(catalogs[0], 'I01M') //Greater Mana Potion 0
call CatalogAdd(catalogs[0], 'I01P') //Minor Rejuvenation Potion 0
call CatalogAdd(catalogs[0], 'I01Q') //Greater Rejuvenation Potion 0
call CatalogAdd(catalogs[0], 'I01R') //Green Potion 0
call CatalogAdd(catalogs[0], 'I01S') //Sleep Potion 0
call CatalogAdd(catalogs[0], 'I022') //Blue Herbs 0
call CatalogAdd(catalogs[0], 'I023') //Green Herbs 0
call CatalogAdd(catalogs[0], 'I025') //Mushroom 0
call CatalogAdd(catalogs[0], 'I021') //Red Herbs 0
call CatalogAdd(catalogs[0], 'I024') //Yellow Herbs 0
set CHARGE_20_1 = CatalogCount(catalogs[0])
call CatalogAdd(catalogs[0], 'I04I') //Boar Tusk 0
call CatalogAdd(catalogs[0], 'I02Y') //Iron Shield 0
call CatalogAdd(catalogs[0], 'I00Y') //Wooden Shield 0
call CatalogAdd(catalogs[0], 'I04P') //Blood Stone Heart 0
call CatalogAdd(catalogs[0], 'I04B') //Necklace of Nobleman 0
call CatalogAdd(catalogs[0], 'I04A') //Silverkey of Brotherhood 0
call CatalogAdd(catalogs[0], 'I049') //Medal of Great Honor 0
//auto added on loading refugee, no need to save
//call CatalogAdd(catalogs[], 'I04Q') //Refugee's Blade 0
//call CatalogAdd(catalogs[], 'I04S') //Refugee's Boots 0
//call CatalogAdd(catalogs[], 'I04R') //Refugee's Suit 0
//class 1
call CatalogAdd(catalogs[1], 'I02P') //Bandana 1
call CatalogAdd(catalogs[1], 'I02W') //Bandit Hat 1
call CatalogAdd(catalogs[1], 'I02T') //Hawk Mask 1
call CatalogAdd(catalogs[1], 'I02S') //Hood 1
call CatalogAdd(catalogs[1], 'I02C') //Hood Cape 1
call CatalogAdd(catalogs[1], 'I02U') //Mage Hat 1
call CatalogAdd(catalogs[1], 'I03F') //Mantle 1
call CatalogAdd(catalogs[1], 'I03D') //Robe 1
call CatalogAdd(catalogs[1], 'I02D') //Royal Cape 1
call CatalogAdd(catalogs[1], 'I02E') //Sandals 1
call CatalogAdd(catalogs[1], 'I03E') //Vestment 1
call CatalogAdd(catalogs[1], 'I02B') //Peasant 1
call CatalogAdd(catalogs[1], 'I048') //Zyria Reinforcer Coat 1
call CatalogAdd(catalogs[1], 'I04U') //Pirate Hat 1
call CatalogAdd(catalogs[1], 'I04J') //Wirs Legs 1
//class 2
call CatalogAdd(catalogs[2], 'I04L') //Bandits Armor 2
call CatalogAdd(catalogs[2], 'I00X') //Boots of Speed 2
call CatalogAdd(catalogs[2], 'I03C') //Full Leather Armor 2
call CatalogAdd(catalogs[2], 'I03B') //Hard Leather Armor 2
call CatalogAdd(catalogs[2], 'I02L') //Hat 2
call CatalogAdd(catalogs[2], 'I00Z') //Leather Armor 2
call CatalogAdd(catalogs[2], 'I04M') //Hard Scales Armor 2
call CatalogAdd(catalogs[2], 'I047') //Zyria Reinforcer Armor 2
//class 3
call CatalogAdd(catalogs[3], 'I03G') //Naga Armor 3
//class 4
call CatalogAdd(catalogs[4], 'I02M') //Plated Boots 4
call CatalogAdd(catalogs[4], 'I02R') //Plated Helm 4
call CatalogAdd(catalogs[4], 'I02O') //Full Pated Mail 4
call CatalogAdd(catalogs[4], 'I02Q') //Bronze Helm 4
call CatalogAdd(catalogs[4], 'I02N') //Boots of Horde 4
call CatalogAdd(catalogs[4], 'I02V') //Mythril Helm 4
//class 5
call CatalogAdd(catalogs[5], 'I032') //Axe 5
call CatalogAdd(catalogs[5], 'I02X') //Iron Sword 5
call CatalogAdd(catalogs[5], 'I036') //Lance 5
call CatalogAdd(catalogs[5], 'I030') //Large Axe 5
call CatalogAdd(catalogs[5], 'I037') //Long Horn 5
call CatalogAdd(catalogs[5], 'I033') //Long Sword 5
call CatalogAdd(catalogs[5], 'I031') //Small Axe 5
call CatalogAdd(catalogs[5], 'I035') //Spear 5
call CatalogAdd(catalogs[5], 'I034') //Pike 5
call CatalogAdd(catalogs[5], 'I04G') //Mythril Sword 5
call CatalogAdd(catalogs[5], 'I04K') //Pick Axe 5
call CatalogAdd(catalogs[5], 'I04H') //Enforcer Axe 5
//class 6
call CatalogAdd(catalogs[6], 'I038') //Dagger 6
call CatalogAdd(catalogs[6], 'I039') //Mythril Dagger 6
call CatalogAdd(catalogs[6], 'I04N') //Spider Claw 6
call CatalogAdd(catalogs[6], 'I04O') //Wild Fangs 6
call CatalogAdd(catalogs[6], 'I03I') //Heretic Blade 6
call CatalogAdd(catalogs[6], 'I04F') //Hammer Forge 6
//class 7
call CatalogAdd(catalogs[7], 'I02K') //Bone Wand 7
call CatalogAdd(catalogs[7], 'I010') //Novice Stick 7
call CatalogAdd(catalogs[7], 'I03A') //Mind Staff 7
//class 8
call CatalogAdd(catalogs[8], 'I046') //Wooden Bow 8
//add item catalogs to class catalogs
///////////////////////////////////////////////////////////////
call CatalogAddCatalog(classCatalogs[0], catalogs[0])
call CatalogAddCatalog(classCatalogs[0], catalogs[1])
call CatalogAddCatalog(classCatalogs[0], catalogs[2])
call CatalogAddCatalog(classCatalogs[0], catalogs[3])
call CatalogAddCatalog(classCatalogs[0], catalogs[4])
call CatalogAddCatalog(classCatalogs[0], catalogs[5])
call CatalogAddCatalog(classCatalogs[1], catalogs[0])
call CatalogAddCatalog(classCatalogs[1], catalogs[1])
call CatalogAddCatalog(classCatalogs[1], catalogs[2])
call CatalogAddCatalog(classCatalogs[1], catalogs[3])
call CatalogAddCatalog(classCatalogs[1], catalogs[6])
call CatalogAddCatalog(classCatalogs[2], catalogs[0])
call CatalogAddCatalog(classCatalogs[2], catalogs[1])
call CatalogAddCatalog(classCatalogs[2], catalogs[7])
call CatalogAddCatalog(classCatalogs[3], catalogs[0])
call CatalogAddCatalog(classCatalogs[3], catalogs[1])
call CatalogAddCatalog(classCatalogs[3], catalogs[2])
call CatalogAddCatalog(classCatalogs[3], catalogs[8])
call CatalogAddCatalog(classCatalogs[4], catalogs[0])
endmethod
endstruct
struct HeroCatalog2 extends array
implement Catalog
private static method onInit takes nothing returns nothing
//0
call add('H013') //Refugee
//1
call add('H002') //Warrior
call add('H00S') //Pikeman
call add('H00T') //Legionaire
call add('H009') //Rogue
call add('H007') //Medium
call add('H00B') //Oracles
call add('H020') //Shaman
call add('H01W') //Blader
call add('H00N') //Slayers
call add('H01Z') //Trickster
call add('H00E') //Ranger
//2
call add('H00G') //Warlord
call add('H00U') //Lancer
call add('H00V') //Brigand
call add('H00F') //Eluminator
call add('H021') //Dualist
call add('H01Y') //Shadow Slayer
call add('H01X') //Executioner
call add('H00H') //Prophet
call add('H00I') //Sage
call add('H022') //Witch Doctor
//0
call add('H01A') //Wanderer
endmethod
endstruct
//! endtextmacro