Initial Release of IGNCore version 2.5
This commit is contained in:
@@ -0,0 +1,404 @@
|
||||
{
|
||||
"ai_armor": {
|
||||
"en_US": [
|
||||
"<highlight>Normal Armor:</highlight>\n",
|
||||
" - {strong}\n",
|
||||
" - {supple}\n",
|
||||
" - {enduring}\n",
|
||||
" - {observant}\n",
|
||||
" - {arithmetic}\n",
|
||||
" - {spiritual}\n\n",
|
||||
"<highlight>Combined Armor:</highlight>\n",
|
||||
" - {cc}\n",
|
||||
" - {cm}\n",
|
||||
" - {co}\n",
|
||||
" - {cp}\n",
|
||||
" - {css}\n"
|
||||
],
|
||||
"de_DE": [
|
||||
"<highlight>Normale Rüstung:</highlight>\n",
|
||||
" - {strong}\n",
|
||||
" - {supple}\n",
|
||||
" - {enduring}\n",
|
||||
" - {observant}\n",
|
||||
" - {arithmetic}\n",
|
||||
" - {spiritual}\n\n",
|
||||
"<highlight>Kombinierte Rüstung:</highlight>\n",
|
||||
" - {cc}\n",
|
||||
" - {cm}\n",
|
||||
" - {co}\n",
|
||||
" - {cp}\n",
|
||||
" - {css}\n"
|
||||
]
|
||||
},
|
||||
"ai_armor_title": {
|
||||
"en_US": "Alien Armor",
|
||||
"de_DE": "Alien Rüstung"
|
||||
},
|
||||
"ai_armor_ts_title": {
|
||||
"en_US": "Building process for QL {ql} {type}",
|
||||
"de_DE": "Rezept für die {type} - QL {ql}"
|
||||
},
|
||||
"ai_armor_ts": {
|
||||
"en_US": [
|
||||
"Note: All tradeskill processes are based on the lowest QL items usable.\n\n",
|
||||
"<header2>You need the following items to build {armor_type} Armor:</header2>\n",
|
||||
"- {text_viralbots} (QL{vb_ql})\n",
|
||||
"- {text_step1_tool}\n",
|
||||
"- {text_solid_clump} (QL{ql})\n",
|
||||
"- {text_vb_bot} (QL{vb_ql})\n\n",
|
||||
"<header2>Step 1</header2>\n",
|
||||
"<tab>{icon_viralbots}<tab>+<tab>{icon_step1_tool}<tab>=<tab>{icon_memory_wiped_viralbots}\n\n",
|
||||
"<tab>(QL{vb_ql})<tab><tab><tab><tab><tab><tab><tab>(QL{vb_ql})\n\n",
|
||||
"<tab><tab>{text_viralbots} (QL{vb_ql}) (<highlight>Drops from Alien City Generals</highlight>)\n",
|
||||
" + <tab>{text_step1_tool}\n",
|
||||
" = <tab>{text_memory_wiped_viralbots} (QL{vb_ql})\n",
|
||||
"<highlight>Required Skills:</highlight>\n",
|
||||
"- {step1_CL} Computer Literacy\n",
|
||||
"- {step1_NP} Nano Programming\n\n",
|
||||
"<header2>Step 2</header2>\n",
|
||||
"<tab>{icon_NPI}<tab>+<tab>{icon_memory_wiped_viralbots}<tab>=<tab>{icon_formatted_viralbots}\n\n",
|
||||
"<tab><tab><tab><tab> <tab>(QL{vb_ql})<tab><tab><tab>(QL{vb_ql})\n\n",
|
||||
"<tab><tab>{text_NPI} (<highlight>Can be bought in General Shops</highlight>)\n",
|
||||
" + <tab>{text_memory_wiped_viralbots} (QL{vb_ql})\n",
|
||||
" = <tab>{text_formatted_viralbots} (QL{vb_ql})\n",
|
||||
"<highlight>Required Skills:</highlight>\n",
|
||||
"- {step2_CL} Computer Literacy\n",
|
||||
"- {step2_NP} Nano Programming\n\n",
|
||||
"<header2>Step 3</header2>\n",
|
||||
"<tab>{icon_structural_analyser}<tab>+<tab>{icon_solid_clump}<tab>=<tab>{icon_mutated_material}<tab><highlight>OR</highlight><tab>{icon_pristine_material} \n\n",
|
||||
"<tab><tab> <tab><tab><tab>(QL{ql})<tab><tab><tab>(QL{ql})<tab><tab> (QL{ql})\n\n",
|
||||
"<tab><tab>{text_structural_analyser}\n",
|
||||
" + <tab>{text_solid_clump} (QL{ql})\n",
|
||||
" = <tab>{text_mutated_material} (QL{ql})<tab><highlight>\n<tab><tab>OR</highlight><tab>{text_pristine_material} (QL{ql})\n",
|
||||
"<highlight>Required Skills:</highlight>\n",
|
||||
"- {step3_chem} Chemistry (Both require the same amount)\n\n",
|
||||
"<header2>Step 4</header2>\n",
|
||||
"<tab>{icon_mutated_material}<tab><highlight>OR</highlight><tab>{icon_pristine_material}<tab>+<tab>{icon_bazzit_generic_nano_solvent}<tab>=<tab>{icon_dna_soup} \n\n",
|
||||
"<tab>(QL{ql})<tab> <tab> (QL{ql})<tab> <tab><tab><tab><tab><tab> (QL{ql})\n\n",
|
||||
"<tab><tab>{text_mutated_material} (QL{ql})<tab><br><tab><tab><highlight>OR</highlight><tab>{text_pristine_material} (QL{ql})\n",
|
||||
" + <tab>{text_bazzit_generic_nano_solvent}\n",
|
||||
" = <tab>{text_dna_soup} (QL{ql})\n",
|
||||
"<highlight>Required Skills:</highlight>\n",
|
||||
"- {chem_prist} Chemistry(for Pristine)\n",
|
||||
"- {chem_mutat} Chemistry(for Mutated)\n\n",
|
||||
"<header2>Step 5</header2>\n",
|
||||
"<tab>{icon_dna_soup}<tab>+<tab>{icon_human_dna}<tab>=<tab>{icon_dna_cocktail} \n\n",
|
||||
"<tab>(QL{ql})<tab> <tab><tab><tab><tab><tab><tab>(QL{ql})\n\n",
|
||||
"<tab><tab>{text_dna_soup} (QL{ql})\n",
|
||||
" + <tab>{text_human_dna}\n",
|
||||
" = <tab>{text_dna_cocktail} (QL{ql})\n",
|
||||
"<highlight>Required Skills:</highlight>\n",
|
||||
"- {pharma} Pharma Tech\n\n",
|
||||
"<header2>Step 6</header2>\n",
|
||||
"<tab>{icon_formatted_viralbots}<tab>+<tab>{icon_dna_cocktail}<tab>=<tab>{icon_formatted_viralbot_solution} \n\n",
|
||||
"<tab>(QL{vb_ql})<tab> <tab>(QL{ql})<tab> <tab>(QL{ql})\n\n",
|
||||
"<tab><tab>{text_formatted_viralbots} (QL{vb_ql})\n",
|
||||
" + <tab>{text_dna_cocktail} (QL{ql})\n",
|
||||
" = <tab>{text_formatted_viralbot_solution} (QL{ql})\n",
|
||||
"<highlight>Required Skills:</highlight>\n",
|
||||
"- {pharma} Pharma Tech\n\n",
|
||||
"<header2>Step 7</header2>\n",
|
||||
"<tab>{icon_formatted_viralbot_solution}<tab>+<tab>{icon_basic_fashion_vest}<tab>=<tab>{icon_formatted_viralbot_vest} \n\n",
|
||||
"<tab>(QL{ql})<tab><tab><tab><tab><tab><tab><tab>(QL{ql})\n\n",
|
||||
"<tab><tab>{text_formatted_viralbot_solution} (QL{ql})\n",
|
||||
" + <tab>{text_basic_fashion_vest}\n",
|
||||
" = <tab>{text_formatted_viralbot_vest} (QL{ql})\n",
|
||||
"<highlight>Required Skills:</highlight>\n",
|
||||
"- {pharma} Pharma Tech\n\n",
|
||||
"<header2>Step 8</header2>\n",
|
||||
"<tab>{icon_vb_bot}<tab>+<tab>{icon_formatted_viralbot_vest}<tab>=<tab>{icon_armor}\n",
|
||||
"<tab>(QL{vb_ql})<tab> <tab>(QL{ql})<tab> <tab>(QL{ql})\n\n",
|
||||
"<tab><tab>{text_vb_bot} (QL{vb_ql}) (<highlight>Rare Drop off Alien City Generals</highlight>)\n",
|
||||
" + <tab>{text_formatted_viralbot_vest} (QL{ql})\n",
|
||||
" = <tab>{text_armor} (QL{ql})\n",
|
||||
"<highlight>Required Skills:</highlight>\n",
|
||||
"- {psycho} Psychology"
|
||||
],
|
||||
"de_DE": [
|
||||
"Hinweis: Bei Allen Tradeskill Vorgängen ist jeweils das minimale nötige QL angegeben, welches für das gewünschte Ergebnis notwendig ist.\n\n",
|
||||
"<header2>Zum bauen der {armor_type} Armor werden folgende Items benötigt:</header2>\n",
|
||||
"- {text_viralbots} (QL{vb_ql})\n",
|
||||
"- {text_step1_tool}\n",
|
||||
"- {text_solid_clump} (QL{ql})\n",
|
||||
"- {text_vb_bot} (QL{vb_ql})\n\n",
|
||||
"<header2>Teil 1</header2>\n",
|
||||
"<tab>{icon_viralbots}<tab>+<tab>{icon_step1_tool}<tab>=<tab>{icon_memory_wiped_viralbots}\n\n",
|
||||
"<tab>(QL{vb_ql})<tab><tab><tab><tab><tab><tab><tab>(QL{vb_ql})\n\n",
|
||||
"<tab><tab>{text_viralbots} (QL{vb_ql}) (<highlight>Droppt von Alien City Generals</highlight>)\n",
|
||||
" + <tab>{text_step1_tool}\n",
|
||||
" = <tab>{text_memory_wiped_viralbots} (QL{vb_ql})\n",
|
||||
"<highlight>Notwendige Skills:</highlight>\n",
|
||||
"- {step1_CL} Computer Literacy\n",
|
||||
"- {step1_NP} Nano Programming\n\n",
|
||||
"<header2>Teil 2</header2>\n",
|
||||
"<tab>{icon_NPI}<tab>+<tab>{icon_memory_wiped_viralbots}<tab>=<tab>{icon_formatted_viralbots}\n\n",
|
||||
"<tab><tab><tab><tab> <tab>(QL{vb_ql})<tab><tab><tab>(QL{vb_ql})\n\n",
|
||||
"<tab><tab>{text_NPI} (<highlight>Kann in General Shops gekauft werden</highlight>)\n",
|
||||
" + <tab>{text_memory_wiped_viralbots} (QL{vb_ql})\n",
|
||||
" = <tab>{text_formatted_viralbots} (QL{vb_ql})\n",
|
||||
"<highlight>Notwendige Skills:</highlight>\n",
|
||||
"- {step2_CL} Computer Literacy\n",
|
||||
"- {step2_NP} Nano Programming\n\n",
|
||||
"<header2>Teil 3</header2>\n",
|
||||
"<tab>{icon_structural_analyser}<tab>+<tab>{icon_solid_clump}<tab>=<tab>{icon_mutated_material}<tab><highlight>ODER</highlight><tab>{icon_pristine_material} \n\n",
|
||||
"<tab><tab> <tab><tab><tab>(QL{ql})<tab><tab><tab>(QL{ql})<tab><tab> (QL{ql})\n\n",
|
||||
"<tab><tab>{text_structural_analyser}\n",
|
||||
" + <tab>{text_solid_clump} (QL{ql})\n",
|
||||
" = <tab>{text_mutated_material} (QL{ql})<tab>\n<tab><tab><highlight>ODER</highlight><tab>{text_pristine_material} (QL{ql})\n",
|
||||
"<highlight>Notwendige Skills:</highlight>\n",
|
||||
"- {step3_chem} Chemistry (Pristine/Mutated haben die gleichen Skill Anforderungen)\n\n",
|
||||
"<header2>Teil 4</header2>\n",
|
||||
"<tab>{icon_mutated_material}<tab><highlight>ODER</highlight><tab>{icon_pristine_material}<tab>+<tab>{icon_bazzit_generic_nano_solvent}<tab>=<tab>{icon_dna_soup} \n\n",
|
||||
"<tab>(QL{ql})<tab><tab><tab> (QL{ql})<tab> <tab><tab><tab><tab><tab> (QL{ql})\n\n",
|
||||
"<tab><tab>{text_mutated_material} (QL{ql})<tab><br><tab><tab><highlight>ODER</highlight><tab>{text_pristine_material} (QL{ql})\n",
|
||||
" + <tab>{text_bazzit_generic_nano_solvent}\n",
|
||||
" = <tab>{text_dna_soup} (QL{ql})\n",
|
||||
"<highlight>Notwendige Skills:</highlight>\n",
|
||||
"- {chem_prist} Chemistry(mit Pristine)\n",
|
||||
"- {chem_mutat} Chemistry(mit Mutated)\n\n",
|
||||
"<header2>Teil 5</header2>\n",
|
||||
"<tab>{icon_dna_soup}<tab>+<tab>{icon_human_dna}<tab>=<tab>{icon_dna_cocktail} \n\n",
|
||||
"<tab>(QL{ql})<tab> <tab><tab><tab><tab><tab><tab>(QL{ql})\n\n",
|
||||
"<tab><tab>{text_dna_soup} (QL{ql})\n",
|
||||
" + <tab>{text_human_dna}\n",
|
||||
" = <tab>{text_dna_cocktail} (QL{ql})\n",
|
||||
"<highlight>Notwendige Skills:</highlight>\n",
|
||||
"- {pharma} Pharma Tech\n\n",
|
||||
"<header2>Teil 6</header2>\n",
|
||||
"<tab>{icon_formatted_viralbots}<tab>+<tab>{icon_dna_cocktail}<tab>=<tab>{icon_formatted_viralbot_solution} \n\n",
|
||||
"<tab>(QL{vb_ql})<tab> <tab>(QL{ql})<tab> <tab>(QL{ql})\n\n",
|
||||
"<tab><tab>{text_formatted_viralbots} (QL{vb_ql})\n",
|
||||
" + <tab>{text_dna_cocktail} (QL{ql})\n",
|
||||
" = <tab>{text_formatted_viralbot_solution} (QL{ql})\n",
|
||||
"<highlight>Notwendige Skills:</highlight>\n",
|
||||
"- {pharma} Pharma Tech\n\n",
|
||||
"<header2>Teil 7</header2>\n",
|
||||
"<tab>{icon_formatted_viralbot_solution}<tab>+<tab>{icon_basic_fashion_vest}<tab>=<tab>{icon_formatted_viralbot_vest} \n\n",
|
||||
"<tab>(QL{ql})<tab><tab><tab><tab><tab><tab><tab>(QL{ql})\n\n",
|
||||
"<tab><tab>{text_formatted_viralbot_solution} (QL{ql})\n",
|
||||
" + <tab>{text_basic_fashion_vest}\n",
|
||||
" = <tab>{text_formatted_viralbot_vest} (QL{ql})\n",
|
||||
"<highlight>Notwendige Skills:</highlight>\n",
|
||||
"- {pharma} Pharma Tech\n\n",
|
||||
"<header2>Teil 8</header2>\n",
|
||||
"<tab>{icon_vb_bot}<tab>+<tab>{icon_formatted_viralbot_vest}<tab>=<tab>{icon_armor}\n",
|
||||
"<tab>(QL{vb_ql})<tab> <tab>(QL{ql})<tab> <tab>(QL{ql})\n\n",
|
||||
"<tab><tab>{text_vb_bot} (QL{vb_ql}) (<highlight>Seltener drop von Alien City Generals</highlight>)\n",
|
||||
" + <tab>{text_formatted_viralbot_vest} (QL{ql})\n",
|
||||
" = <tab>{text_armor} (QL{ql})\n",
|
||||
"<highlight>Notwendige Skills:</highlight>\n",
|
||||
"- {psycho} Psychology"
|
||||
]
|
||||
},
|
||||
"ai_armor_combined": {
|
||||
"en_US": [
|
||||
"<header2>Tradeskill Process</header2>\n\n",
|
||||
"<tab>{icon_source}<tab>+<tab>{icon_target}<tab>=<tab>{icon_result}\n",
|
||||
"<tab>(QL{s_ql})<tab> <tab>(QL{t_ql})<tab> <tab>(QL{t_ql})\n\n",
|
||||
"<tab><tab>{text_source} (QL{s_ql}) - ({ts_process_source})\n",
|
||||
" + <tab>{text_target} (QL{t_ql}) - ({ts_process_target})\n",
|
||||
" = <tab>{text_result} (QL{t_ql})\n"
|
||||
],
|
||||
"de_DE": [
|
||||
"<header2>Bauanleitung</header2>\n\n",
|
||||
"<tab>{icon_source}<tab>+<tab>{icon_target}<tab>=<tab>{icon_result}\n",
|
||||
"<tab>(QL{s_ql})<tab> <tab>(QL{t_ql})<tab> <tab>(QL{t_ql})\n\n",
|
||||
"<tab><tab>{text_source} (QL{s_ql}) - ({ts_process_source})\n",
|
||||
" + <tab>{text_target} (QL{t_ql}) - ({ts_process_target})\n",
|
||||
" = <tab>{text_result} (QL{t_ql})\n"
|
||||
]
|
||||
},
|
||||
"ai_armor_ts_process": {
|
||||
"en_US": "Tradeskill process for this item",
|
||||
"de_DE": "Bauanleitung für dieses Item"
|
||||
},
|
||||
"ai_armor_combined_unknown": {
|
||||
"en_US": "Unknown armor type <highlight>{type}</highlight>",
|
||||
"de_DE": "Unbekannter Rüstungs Typ: <highlight>{type}</highlight>"
|
||||
},
|
||||
"bioinfo_list": {
|
||||
"en_US": [
|
||||
"\n<header2>OFAB Armor Types</header2>\n",
|
||||
"{ofab_armor}",
|
||||
"\n<header2>OFAB Weapon Types</header2>\n",
|
||||
"{ofab_weap}",
|
||||
"\n<header2>AI Armor Types</header2>\n",
|
||||
"{ai_armor}",
|
||||
"\n<header2>AI Weapon Typen</header2>\n",
|
||||
"{ai_weap}",
|
||||
"\n<header2>Serum Typen</header2>\n",
|
||||
"{serum}"
|
||||
],
|
||||
"de_DE": [
|
||||
"\n<header2>OFAB Rüstung - Typen</header2>\n",
|
||||
"{ofab_armor}",
|
||||
"\n<header2>OFAB Waffen - Typen</header2>\n",
|
||||
"{ofab_weap}",
|
||||
"\n<header2>Alien Rüstung - Typen</header2>\n",
|
||||
"{ai_armor}",
|
||||
"\n<header2>Alien Waffen - Typen</header2>\n",
|
||||
"{ai_weap}",
|
||||
"\n<header2>Serum - Typen</header2>\n",
|
||||
"{serum}"
|
||||
]
|
||||
},
|
||||
"bioinfo_list_title": {
|
||||
"en_US": "Bio-Material Types",
|
||||
"de_DE": "Bio-Material Typen"
|
||||
},
|
||||
"bioinfo_unknown_type": {
|
||||
"en_US": "Unknown bio-material type <highlight>{type}</highlight>.",
|
||||
"de_DE": "Unbekannter Bio-Material Typ: <highlight>{type}</highlight>."
|
||||
},
|
||||
"bioinfo_type_title": {
|
||||
"en_US": "{name} (QL {ql})",
|
||||
"de_DE": "{name} (QL {ql})"
|
||||
},
|
||||
"ofab_armor_bio": {
|
||||
"en_US": [
|
||||
"Kyr'Ozch Bio-Material - Type {type}",
|
||||
"{icon}\n{text}\n\n",
|
||||
"<highlight>Upgrades Ofab Armor for:</highlight>\n",
|
||||
"{upgrades}"
|
||||
],
|
||||
"de_DE": [
|
||||
"Kyr'Ozch Bio-Material - Type {type}",
|
||||
"{icon}\n{text}\n\n",
|
||||
"<highlight>Upgrade für folgende Ofab Rüstungen:</highlight>\n",
|
||||
"{upgrades}"
|
||||
]
|
||||
},
|
||||
"ofab_weapon_bio": {
|
||||
"en_US": [
|
||||
"Kyr'Ozch Bio-Material - Type {type}",
|
||||
"{icon}\n{text}\n\n",
|
||||
"<highlight>Upgrades Ofab Weapons for:</highlight>\n",
|
||||
"{upgrades}"
|
||||
],
|
||||
"de_DE": [
|
||||
"Kyr'Ozch Bio-Material - Type {type}",
|
||||
"{icon}\n{text}\n\n",
|
||||
"<highlight>Upgrade für folgende Ofab Waffen:</highlight>\n",
|
||||
"{upgrades}"
|
||||
]
|
||||
},
|
||||
"alien_armor_bio": {
|
||||
"en_US": [
|
||||
"{item}\n\n",
|
||||
"It will take <highlight>{ee_cl_req} EE & CL</highlight> (<highlight>4.5 * QL</highlight>) to analyze the Bio-Material.\n\n",
|
||||
"Used to build Alien Armor\n\n",
|
||||
"The following tradeskill amounts are required to make <highlight>QL {ql}</highlight>\n",
|
||||
"strong/arithmetic/enduring/spiritual/supple/observant armor:\n\n",
|
||||
"Computer Literacy - <highlight>{cl_req}</highlight> (<highlight>4.5 * QL</highlight>)\n",
|
||||
"Chemistry - <highlight>{chem_req}</highlight> (<highlight>{chem_info}</highlight>) {chem_extra_info}\n",
|
||||
"Nano Programming - <highlight>{nano_prog_req}</highlight> (<highlight>6 * QL</highlight>)\n",
|
||||
"Pharma Tech - <highlight>{pt_req}</highlight> (<highlight>6 * QL</highlight>)\n",
|
||||
"Psychology - <highlight>{psyco_req}</highlight> (<highlight>6 * QL</highlight>)\n\n",
|
||||
"Note: Tradeskill requirements are based off the lowest QL items needed throughout the entire process.",
|
||||
"\n\nFor Supple, Arithmetic, or Enduring:\n\n",
|
||||
"When completed, the armor piece can have as low as <highlight>QL {min_ql}</highlight> combined into it, depending on available tradeskill options.\n\n",
|
||||
"Does not change QL's, therefore takes <highlight>{psyco_req} Psychology</highlight> for available combinations.\n\n",
|
||||
"For Spiritual, Strong, or Observant:\n\n",
|
||||
"When completed, the armor piece can combine up to <highlight>QL {max_ql}</highlight>, depending on available tradeskill options.\n\n",
|
||||
"Changes QL depending on targets QL. ",
|
||||
"The max combination is: (<highlight>QL {max_ql}</highlight>) (<highlight>{max_psyco} Psychology</highlight> required for this combination)",
|
||||
"\n\n<yellow>Tradeskilling info added by Mdkdoc420 (RK2)</yellow>"
|
||||
],
|
||||
"de_DE": [
|
||||
"{item}\n\n",
|
||||
"Es wird <highlight>{ee_cl_req} EE & CL</highlight> (<highlight>4.5 * QL</highlight>)benötigt, um Bio-Material zu analysieren.\n\n",
|
||||
"Es wird genutzt, um Alien Rüstung herzustellen.\n\n",
|
||||
"Um eine strong/arithmetic/enduring/spiritual/supple/observant Rüstung\n",
|
||||
"mit dem QL<highlight>QL {ql}</highlight> herzustellen, werden folgende Tradeskills benötigt:\n\n",
|
||||
"Computer Literacy - <highlight>{cl_req}</highlight> (<highlight>4.5 * QL</highlight>)\n",
|
||||
"Chemistry - <highlight>{chem_req}</highlight> (<highlight>{chem_info}</highlight>) {chem_extra_info}\n",
|
||||
"Nano Programming - <highlight>{nano_prog_req}</highlight> (<highlight>6 * QL</highlight>)\n",
|
||||
"Pharma Tech - <highlight>{pt_req}</highlight> (<highlight>6 * QL</highlight>)\n",
|
||||
"Psychology - <highlight>{psyco_req}</highlight> (<highlight>6 * QL</highlight>)\n\n",
|
||||
"Hinweis: die Tradeskill anforderungen basieren auf dem Item mit dem niedrigstem QL, welches im gesamten Tradeskill Prozess evrwendet wird.",
|
||||
"\n\nFür eine Supple, Arithmetic, oder Enduring Rüstung:\n\n",
|
||||
"Am Ende kann das Rüstungsteil mit Teilen ab dem QL <highlight>QL {min_ql}</highlight> kombiniert werden. Dies ist abhängig von den verfügbaren Tradeskill optionen.\n\n",
|
||||
"Das QL wird hierbei nicht verändert, wodurch <highlight>{psyco_req} Psychology</highlight> benötigt wird.\n\n",
|
||||
"Für Spiritual, Strong, oder Observant:\n\n",
|
||||
"Am Ende lässt sich das Rüstungsteil mit anderen Typen bis <highlight>QL {max_ql}</highlight> kombinieren. Dies ist abhängig von den verfügbaren Tradeskill optionen.\n\n",
|
||||
"Das QL verändert sich dem dem Ziel-QL entsprechend. ",
|
||||
"Die Maximale Kombination ist: (<highlight>QL {max_ql}</highlight>) ( Es wird <highlight>{max_psyco} Psychology</highlight> benötigt)",
|
||||
"\n\n<yellow>Tradeskilling info added by Mdkdoc420 (RK2)</yellow>"
|
||||
]
|
||||
},
|
||||
"alien_armor_bio_extra_info_mutated": {
|
||||
"en_US": "more tradeskill requirements then pristine",
|
||||
"de_DE": "höhere Tradeskill Anforderungen als pristine"
|
||||
},
|
||||
"alien_armor_bio_extra_info_pristine": {
|
||||
"en_US": "less tradeskill requirements then mutated",
|
||||
"de_DE": "niedrigere Tradeskill Anforderungen als Mutated"
|
||||
},
|
||||
"alien_weapon_bio": {
|
||||
"en_US": [
|
||||
"{item_display}\n\n",
|
||||
"It will take <highlight>{ee_cl_req}</highlight> EE & CL (<highlight>4.5 * QL</highlight>) to analyze the Bio-Material.\n\n",
|
||||
"<highlight>Adds {specials} to:</highlight>\n",
|
||||
"{display_blob}",
|
||||
"{weapon_info}",
|
||||
"\n\n<yellow>Tradeskilling info added by Mdkdoc420</yellow>"
|
||||
],
|
||||
"de_DE": [
|
||||
"{item_display}\n\n",
|
||||
"Es wird <highlight>{ee_cl_req}</highlight> EE & CL (<highlight>4.5 * QL</highlight>) benötigt um Bio-Material zu analysieren.\n\n",
|
||||
"<highlight>Fügt {specials} zu folgenden Waffen hinzu:</highlight>\n",
|
||||
"{display_blob}",
|
||||
"{weapon_info}",
|
||||
"\n\n<yellow>Tradeskilling info added by Mdkdoc420</yellow>"
|
||||
]
|
||||
},
|
||||
"serum_bio": {
|
||||
"en_US": [
|
||||
"{item_display}\n\n",
|
||||
"It will take <highlight>{ee_cl_req} EE & CL</highlight> (<highlight>4.5 * QL</highlight>) to analyze the Bio-Material.\n\n",
|
||||
"Used to build city buildings\n\n",
|
||||
"The following are the required skills throughout the process of making a building:\n\n",
|
||||
"Quantum FT - <highlight>400</highlight> (<highlight>Static</highlight>)\n",
|
||||
"Pharma Tech - <highlight>{pt_req}</highlight> (<highlight>3.5 * QL</highlight>) 400 is minimum requirement\n",
|
||||
"Chemistry - <highlight>{chem_me_req}</highlight> (<highlight>4 * QL</highlight>) 400 is minimum requirement\n",
|
||||
"Mechanical Engineering - <highlight>{chem_me_req}</highlight> (<highlight>4 * QL</highlight>)\n",
|
||||
"Electrical Engineering - <highlight>{ee_cl_req}</highlight> (<highlight>4.5 * QL</highlight>)\n",
|
||||
"Comp Liter - <highlight>{cl_req}</highlight> (<highlight>5 * QL</highlight>)",
|
||||
"\n\n<yellow>Tradeskilling info added by Mdkdoc420 (RK2)</yellow>"
|
||||
],
|
||||
"de_DE": [
|
||||
"{item_display}\n\n",
|
||||
"Es wird <highlight>{ee_cl_req}</highlight> EE & CL (<highlight>4.5 * QL</highlight>) benötigt um Bio-Material zu analysieren.\n\n",
|
||||
"Wird verwendet um City Gebäude herzustellen\n\n",
|
||||
"Die folgenden Skills werden im Tradeskill Prozess benötigt:\n\n",
|
||||
"Quantum FT - <highlight>400</highlight> (<highlight>Static</highlight>)\n",
|
||||
"Pharma Tech - <highlight>{pt_req}</highlight> (<highlight>3.5 * QL</highlight>) 400 ist das minimum\n",
|
||||
"Chemistry - <highlight>{chem_me_req}</highlight> (<highlight>4 * QL</highlight>) 400 ist das minimum\n",
|
||||
"Mechanical Engineering - <highlight>{chem_me_req}</highlight> (<highlight>4 * QL</highlight>)\n",
|
||||
"Electrical Engineering - <highlight>{ee_cl_req}</highlight> (<highlight>4.5 * QL</highlight>)\n",
|
||||
"Comp Liter - <highlight>{cl_req}</highlight> (<highlight>5 * QL</highlight>)",
|
||||
"\n\n<yellow>Tradeskilling info added by Mdkdoc420 (RK2)</yellow>"
|
||||
]
|
||||
},
|
||||
"weapon_info": {
|
||||
"en_US": [
|
||||
"\n\n<highlight>QL {ql}</highlight> is the highest weapon this type will combine into.",
|
||||
"{bump}",
|
||||
"\n\nIt will take <highlight>{me_ws_req}</highlight> ME & WS (<highlight>6 * QL</highlight>) to combine with a <highlight>QL {ql}</highlight> Kyr'ozch Weapon."
|
||||
],
|
||||
"de_DE": [
|
||||
"\n\nDie Waffe darf maximal das <highlight>QL {ql}</highlight> haben, um mit diesem Bio-Material kombiniert zu werden.",
|
||||
"{bump}",
|
||||
"\n\nEs werden <highlight>{me_ws_req}</highlight> ME & WS (<highlight>6 * QL</highlight>) zum kombinieren mit einer <highlight>QL {ql}</highlight> Kyr'ozch Weapon benötigt."
|
||||
]
|
||||
},
|
||||
"weapon_bump": {
|
||||
"en_US": "\nNote: <highlight>The weapon can bump several QL's.</highlight>",
|
||||
"de_DE": "\nHinweis: <highlight>Die Waffe kann um einige QL gelevelt werden.</highlight>"
|
||||
},
|
||||
"ai_gen_list_title": {
|
||||
"en_US": "Alien Generals",
|
||||
"de_DE": "Alien General"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,204 @@
|
||||
import math
|
||||
|
||||
import hjson
|
||||
|
||||
from core.chat_blob import ChatBlob
|
||||
from core.command_param_types import Options, Int
|
||||
from core.decorators import instance, command
|
||||
from core.text import Text
|
||||
from core.translation_service import TranslationService
|
||||
from modules.standard.items.items_controller import ItemsController
|
||||
|
||||
|
||||
@instance()
|
||||
class AlienArmorController:
|
||||
def inject(self, registry):
|
||||
self.text: Text = registry.get_instance("text")
|
||||
self.items_controller: ItemsController = registry.get_instance("items_controller")
|
||||
self.ts: TranslationService = registry.get_instance("translation_service")
|
||||
self.getresp = self.ts.get_response
|
||||
|
||||
def start(self):
|
||||
self.ts.register_translation("module/alien", self.load_alien_msg)
|
||||
self.init_static_items()
|
||||
|
||||
def load_alien_msg(self):
|
||||
with open("modules/standard/alien/alien.msg", mode="r", encoding="utf-8") as f:
|
||||
return hjson.load(f)
|
||||
|
||||
@command(command="aiarmor", params=[], access_level="member",
|
||||
description="List the alien armor types")
|
||||
def aiarmor_list_command(self, request):
|
||||
blob = self.getresp("module/alien", "ai_armor", {
|
||||
"strong": self.text.make_tellcmd("Strong Armor", "aiarmor Strong"),
|
||||
"supple": self.text.make_tellcmd("Supple Armor", "aiarmor Supple"),
|
||||
"enduring": self.text.make_tellcmd("Enduring Armor", "aiarmor Enduring"),
|
||||
"observant": self.text.make_tellcmd("Observant Armor", "aiarmor Observant"),
|
||||
"arithmetic": self.text.make_tellcmd("Arithmetic Armor", "aiarmor Arithmetic"),
|
||||
"spiritual": self.text.make_tellcmd("Spiritual Armor", "aiarmor Spiritual"),
|
||||
"cc": self.text.make_tellcmd("Combined Commando's Armor", "aiarmor cc"),
|
||||
"cm": self.text.make_tellcmd("Combined Mercenary's Armor", "aiarmor cm"),
|
||||
"co": self.text.make_tellcmd("Combined Officer's", "aiarmor co"),
|
||||
"cp": self.text.make_tellcmd("Combined Paramedic's Armor", "aiarmor cp"),
|
||||
"cs": self.text.make_tellcmd("Combined Scout's Armor", "aiarmor cs"),
|
||||
"css": self.text.make_tellcmd("Combined Sharpshooter's Armor", "aiarmor css")
|
||||
})
|
||||
|
||||
return ChatBlob(self.getresp("module/alien", "ai_armor_title"), blob)
|
||||
|
||||
@command(command="aiarmor",
|
||||
params=[Options(["strong", "supple", "enduring", "observant", "arithmetic", "spiritual"]),
|
||||
Int("ql", is_optional=True)], access_level="member",
|
||||
description="Show the process for making normal alien armor")
|
||||
def aiarmor_normal_command(self, request, armor_type, ql):
|
||||
armor_type = armor_type.capitalize()
|
||||
ql = ql or 300
|
||||
misc_ql = math.floor(ql * 0.8)
|
||||
|
||||
blob = self.getresp("module/alien", "ai_armor_ts", {
|
||||
"armor_type": armor_type,
|
||||
"ql": ql,
|
||||
**self.get_static_items(),
|
||||
**self.text.generate_item(self.items_controller.find_by_name("Kyr'Ozch Viralbots"), misc_ql, "viralbots"),
|
||||
**self.text.generate_item(self.items_controller.find_by_name("Memory-Wiped Kyr'Ozch Viralbots"),
|
||||
misc_ql, "memory_wiped_viralbots"),
|
||||
"step1_CL": math.ceil(misc_ql * 4.5),
|
||||
"step1_NP": math.ceil(misc_ql * 4.5),
|
||||
|
||||
**self.text.generate_item(self.items_controller.find_by_name("Formatted Kyr'Ozch Viralbots"), misc_ql,
|
||||
"formatted_viralbots"),
|
||||
"step2_CL": math.ceil(misc_ql * 4.5),
|
||||
"step2_NP": math.ceil(misc_ql * 6),
|
||||
|
||||
**self.text.generate_item(self.items_controller.find_by_name("Solid Clump of Kyr'Ozch Bio-Material"), ql,
|
||||
"solid_clump"),
|
||||
**self.text.generate_item(self.items_controller.find_by_name("Mutated Kyr'Ozch Bio-Material"), ql,
|
||||
"mutated_material"),
|
||||
**self.text.generate_item(self.items_controller.find_by_name("Pristine Kyr'Ozch Bio-Material"), ql,
|
||||
"pristine_material"),
|
||||
"step3_chem": math.ceil(ql * 4.5),
|
||||
|
||||
**self.text.generate_item(self.items_controller.find_by_name("Generic Kyr'Ozch DNA-Soup"), ql, "dna_soup"),
|
||||
"chem_prist": math.ceil(ql * 4.5), "chem_mutat": math.ceil(ql * 7),
|
||||
|
||||
**self.text.generate_item(self.items_controller.find_by_name("DNA Cocktail"), ql, "dna_cocktail"),
|
||||
"pharma": math.ceil(ql * 6),
|
||||
|
||||
**self.text.generate_item(self.items_controller.find_by_name("Kyr'Ozch Formatted Viralbot Solution"), ql,
|
||||
"formatted_viralbot_solution"),
|
||||
**self.text.generate_item(self.items_controller.find_by_name("Formatted Viralbot Vest"), ql,
|
||||
"formatted_viralbot_vest"),
|
||||
"psycho": math.floor(ql * 6),
|
||||
**self.get_armor(armor_type, ql),
|
||||
})
|
||||
|
||||
return ChatBlob(self.getresp("module/alien", "ai_armor_ts_title", {"ql": ql, "type": armor_type}), blob)
|
||||
|
||||
def get_armor(self, armor_type, ql):
|
||||
blob = None
|
||||
bot_ql = math.floor(ql * 0.8)
|
||||
armor = self.items_controller.find_by_name("%s Body Armor" % armor_type, ql)
|
||||
bot = self.items_controller.find_by_name("%s Lead Viralbots" % armor_type, bot_ql)
|
||||
return {"icon_armor": self.text.make_item(armor.lowid, armor.highid, ql, self.text.make_image(armor.icon)),
|
||||
"text_armor": self.text.make_item(armor.lowid, armor.highid, ql, armor.name),
|
||||
"icon_vb_bot": self.text.make_item(bot.lowid, bot.highid, bot_ql, self.text.make_image(bot.icon)),
|
||||
"text_vb_bot": self.text.make_item(bot.lowid, bot.highid, bot_ql, bot.name),
|
||||
"vb_ql": bot_ql
|
||||
}
|
||||
|
||||
@command(command="aiarmor",
|
||||
params=[Options(["cc", "cm", "co", "cp", "cs", "css", "ss"]), Int("ql", is_optional=True)],
|
||||
access_level="member",
|
||||
description="Show the process for making combined alien armor",
|
||||
extended_description="CSS and SS both refer to Combined Sharpshooters")
|
||||
def aiarmor_combined_command(self, request, armor_type, target_ql):
|
||||
armor_type = armor_type.lower()
|
||||
target_ql = target_ql or 300
|
||||
source_ql = math.floor(target_ql * 0.8)
|
||||
|
||||
if armor_type == "cc":
|
||||
result_armor_id = 246660 # Combined Commando's Jacket
|
||||
|
||||
source_armor_id = 246616 # Strong Body Armor
|
||||
name_source = "strong"
|
||||
|
||||
target_armor_id = 246622 # Supple Body Armor
|
||||
name_target = "supple"
|
||||
elif armor_type == "cm":
|
||||
result_armor_id = 246638 # Combined Mercenary's Jacket
|
||||
|
||||
source_armor_id = 246616 # Strong Body Armor
|
||||
name_source = "strong"
|
||||
|
||||
target_armor_id = 246580 # Enduring Body Armor
|
||||
name_target = "enduring"
|
||||
elif armor_type == "co":
|
||||
result_armor_id = 246672 # Combined Officer's Jacket
|
||||
|
||||
source_armor_id = 246600 # Spiritual Body Armor
|
||||
name_source = "spiritual"
|
||||
|
||||
target_armor_id = 246560 # Arithmetic Body Armor
|
||||
name_target = "arithmetic"
|
||||
elif armor_type == "cp":
|
||||
result_armor_id = 246648 # Combined Paramedic's Jacket
|
||||
|
||||
source_armor_id = 246600 # Spiritual Body Armor
|
||||
name_source = "spiritual"
|
||||
|
||||
target_armor_id = 246580 # Enduring Body Armor
|
||||
name_target = "enduring"
|
||||
elif armor_type == "cs":
|
||||
result_armor_id = 246684 # Combined Scout's Jacket
|
||||
|
||||
source_armor_id = 246592 # Observant Body Armor
|
||||
name_source = "observant"
|
||||
|
||||
target_armor_id = 246560 # Arithmetic Body Armor
|
||||
name_target = "arithmetic"
|
||||
elif armor_type == "css" or armor_type == "ss":
|
||||
result_armor_id = 246696 # Combined Sharpshooter's Jacket
|
||||
|
||||
source_armor_id = 246592 # Observant Body Armor
|
||||
name_source = "observant"
|
||||
|
||||
target_armor_id = 246622 # Supple Body Armor
|
||||
name_target = "supple"
|
||||
else:
|
||||
return self.getresp("module/alien", "ai_armor_combined_unknown", {"type": armor_type})
|
||||
|
||||
source = self.items_controller.get_by_item_id(source_armor_id)
|
||||
target = self.items_controller.get_by_item_id(target_armor_id)
|
||||
result = self.items_controller.get_by_item_id(result_armor_id)
|
||||
|
||||
blob = self.getresp("module/alien", "ai_armor_combined", {
|
||||
**self.text.generate_item(source, source_ql, "source"),
|
||||
"s_ql": source_ql,
|
||||
"t_ql": target_ql,
|
||||
"ts_process_source": self.text.make_tellcmd(self.getresp("module/alien", "ai_armor_ts_process"),
|
||||
"aiarmor %s %d" % (name_source, source_ql)),
|
||||
**self.text.generate_item(target, target_ql, "target"),
|
||||
"ts_process_target": self.text.make_tellcmd(self.getresp("module/alien", "ai_armor_ts_process"),
|
||||
"aiarmor %s %d" % (name_target, target_ql)),
|
||||
**self.text.generate_item(result, target_ql, "result")})
|
||||
|
||||
return ChatBlob(
|
||||
self.getresp("module/alien", "ai_armor_ts_title", {"ql": target_ql, "type": result.name}), blob)
|
||||
|
||||
def get_static_items(self):
|
||||
return self.static_items
|
||||
|
||||
def init_static_items(self):
|
||||
|
||||
self.static_items = {
|
||||
**self.text.generate_item(
|
||||
self.items_controller.get_by_item_id(247099, 100), 100, "step1_tool"),
|
||||
**self.text.generate_item(self.items_controller.find_by_name("Nano Programming Interface", 1), 1, "NPI"),
|
||||
**self.text.generate_item(self.items_controller.find_by_name("Kyr'Ozch Structural Analyzer", 100), 100,
|
||||
"structural_analyser"),
|
||||
**self.text.generate_item(self.items_controller.find_by_name("Uncle Bazzit's Generic Nano-Solvent", 100),
|
||||
100, "bazzit_generic_nano_solvent"),
|
||||
**self.text.generate_item(self.items_controller.find_by_name("Essential Human DNA", 100), 100, "human_dna"),
|
||||
**self.text.generate_item(self.items_controller.find_by_name("Basic Fashion Vest", 1), 1,
|
||||
"basic_fashion_vest"),
|
||||
}
|
||||
@@ -0,0 +1,229 @@
|
||||
import math
|
||||
|
||||
from core.chat_blob import ChatBlob
|
||||
from core.command_param_types import Any, Item, Int
|
||||
from core.decorators import instance, command
|
||||
from core.text import Text
|
||||
from core.translation_service import TranslationService
|
||||
|
||||
|
||||
@instance()
|
||||
class AlienBioController:
|
||||
def __init__(self):
|
||||
self.ofab_armor_types = ["64", "295", "468", "935"]
|
||||
self.ofab_weapon_types = ["18", "34", "687", "812"]
|
||||
self.alien_armor_types = ["mutated", "pristine"]
|
||||
self.alien_weapon_types = ["1", "2", "3", "4", "5", "12", "13", "48", "76", "112", "240", "880", "992"]
|
||||
|
||||
def inject(self, registry):
|
||||
self.db = registry.get_instance("db")
|
||||
self.text: Text = registry.get_instance("text")
|
||||
self.util = registry.get_instance("util")
|
||||
self.items_controller = registry.get_instance("items_controller")
|
||||
self.command_alias_service = registry.get_instance("command_alias_service")
|
||||
self.ts: TranslationService = registry.get_instance("translation_service")
|
||||
self.getresp = self.ts.get_response
|
||||
|
||||
def pre_start(self):
|
||||
self.db.load_sql_file(self.module_dir + "/sql/alien_weapons.sql", pre_optimized=True)
|
||||
self.db.create_view("alien_weapon_specials")
|
||||
self.db.create_view("alien_weapons")
|
||||
|
||||
def start(self):
|
||||
self.command_alias_service.add_alias("clump", "bio")
|
||||
self.command_alias_service.add_alias("b", "bio")
|
||||
|
||||
@command(command="bio", params=[Item("bio_material")], access_level="member",
|
||||
description="Show info about Kyr'Ozch Bio-Material")
|
||||
def bio_command(self, request, item):
|
||||
high_id = item.high_id
|
||||
ql = item.ql
|
||||
|
||||
if high_id == 247707 or high_id == 247708:
|
||||
bio_type = "1"
|
||||
elif high_id == 247709 or high_id == 247710:
|
||||
bio_type = "2"
|
||||
elif high_id == 247717 or high_id == 247718:
|
||||
bio_type = "3"
|
||||
elif high_id == 247711 or high_id == 247712:
|
||||
bio_type = "4"
|
||||
elif high_id == 247713 or high_id == 247714:
|
||||
bio_type = "5"
|
||||
elif high_id == 247715 or high_id == 247716:
|
||||
bio_type = "12"
|
||||
elif high_id == 247719 or high_id == 247720:
|
||||
bio_type = "13"
|
||||
elif high_id == 288699 or high_id == 288700:
|
||||
bio_type = "48"
|
||||
elif high_id == 247697 or high_id == 247698:
|
||||
bio_type = "76"
|
||||
elif high_id == 247699 or high_id == 247700:
|
||||
bio_type = "112"
|
||||
elif high_id == 247701 or high_id == 247702:
|
||||
bio_type = "240"
|
||||
elif high_id == 247703 or high_id == 247704:
|
||||
bio_type = "880"
|
||||
elif high_id == 247705 or high_id == 247706:
|
||||
bio_type = "992"
|
||||
elif high_id == 247102 or high_id == 247103:
|
||||
bio_type = "pristine"
|
||||
elif high_id == 247104 or high_id == 247105:
|
||||
bio_type = "mutated"
|
||||
elif high_id == 247764 or high_id == 254804:
|
||||
bio_type = "serum"
|
||||
else:
|
||||
bio_type = "unknown"
|
||||
|
||||
bio_info = self.get_bio_info(bio_type, ql)
|
||||
if bio_info:
|
||||
return bio_info
|
||||
else:
|
||||
return "Bio-Material type unknown or not a bio-material."
|
||||
|
||||
@command(command="bioinfo", params=[], access_level="member",
|
||||
description="Show list of Kyr'Ozch Bio-Material types")
|
||||
def bioinfo_list_command(self, request):
|
||||
return ChatBlob(self.getresp("module/alien", "bioinfo_list_title"),
|
||||
self.getresp("module/alien", "bioinfo_list", {
|
||||
"ofab_armor": self.get_type_blob(self.ofab_armor_types),
|
||||
"ofab_weap": self.get_type_blob(self.ofab_weapon_types),
|
||||
"ai_armor": self.get_type_blob(self.alien_armor_types),
|
||||
"ai_weap": self.get_type_blob(self.alien_weapon_types),
|
||||
"serum": self.get_type_blob(["serum"]),
|
||||
}))
|
||||
|
||||
def get_type_blob(self, bio_types):
|
||||
blob = ""
|
||||
for bio_type in bio_types:
|
||||
blob += self.text.make_tellcmd(bio_type, "bioinfo %s" % bio_type) + "\n"
|
||||
return blob
|
||||
|
||||
@command(command="bioinfo", params=[Any("bio_type"), Int("ql", is_optional=True)], access_level="member",
|
||||
description="Show info about a bio-material type")
|
||||
def bioinfo_show_command(self, request, bio_type, ql):
|
||||
ql = ql or 300
|
||||
|
||||
bio_info = self.get_bio_info(bio_type, ql)
|
||||
if bio_info:
|
||||
return bio_info
|
||||
else:
|
||||
return self.getresp("module/alien", "bioinfo_unknown_type", {"type": bio_type})
|
||||
|
||||
def get_bio_info(self, bio_type, ql):
|
||||
if bio_type in self.ofab_armor_types:
|
||||
return self.ofab_armor_bio(bio_type, ql)
|
||||
elif bio_type in self.ofab_weapon_types:
|
||||
return self.ofab_weapon_bio(bio_type, ql)
|
||||
elif bio_type in self.alien_armor_types:
|
||||
return self.alien_armor_bio(bio_type, ql)
|
||||
elif bio_type in self.alien_weapon_types:
|
||||
return self.alien_weapon_bio(bio_type, ql)
|
||||
elif bio_type == "serum":
|
||||
return self.serum_bio(ql)
|
||||
else:
|
||||
return None
|
||||
|
||||
def ofab_armor_bio(self, bio_type, ql):
|
||||
name = "Kyr'Ozch Bio-Material - Type %s" % bio_type
|
||||
|
||||
data = self.db.query("SELECT * FROM ofab_armor_type WHERE type = ?", [bio_type])
|
||||
item = self.items_controller.find_by_name(name, ql)
|
||||
upgrades = ""
|
||||
for row in data:
|
||||
upgrades += self.text.make_tellcmd(row.profession, "ofabarmor %s" % row.profession) + "\n"
|
||||
|
||||
return ChatBlob(self.getresp("module/alien", "bioinfo_unknown_type",
|
||||
{"type": bio_type, "ql": ql}),
|
||||
self.getresp("module/alien", "ofab_armor_bio",
|
||||
{"type": bio_type, **self.text.generate_item(item, ql), "upgrades": upgrades}))
|
||||
|
||||
def ofab_weapon_bio(self, bio_type, ql):
|
||||
name = "Kyr'Ozch Bio-Material - Type %s" % bio_type
|
||||
|
||||
data = self.db.query("SELECT * FROM ofab_weapons WHERE type = ?", [bio_type])
|
||||
|
||||
blob = self.display_item(name, ql) + "\n\n"
|
||||
blob += "<highlight>Upgrades Ofab Weapons for:</highlight>\n"
|
||||
for row in data:
|
||||
blob += self.text.make_tellcmd("Ofab %s Mk 1" % row.name, "ofabweapons %s" % row.name) + "\n"
|
||||
|
||||
return ChatBlob("%s (QL %d)" % (name, ql), blob)
|
||||
|
||||
def alien_armor_bio(self, bio_type, ql):
|
||||
min_ql = math.floor(ql * 0.8)
|
||||
if ql <= 240:
|
||||
max_ql = math.floor(ql / 0.8)
|
||||
else:
|
||||
max_ql = 300
|
||||
|
||||
cl = math.floor(min_ql * 4.5)
|
||||
pharma = math.floor(ql * 6)
|
||||
nano_prog = math.floor(min_ql * 6)
|
||||
psyco = math.floor(ql * 6)
|
||||
max_psyco = math.floor(max_ql * 6)
|
||||
ts_bio = math.floor(ql * 4.5)
|
||||
if bio_type == "mutated":
|
||||
name = "Mutated Kyr'Ozch Bio-Material"
|
||||
chem = math.floor(ql * 7)
|
||||
chem_msg = "7 * QL"
|
||||
extra_info = self.getresp("module/alien", "alien_armor_bio_extra_info_mutated")
|
||||
elif bio_type == "pristine":
|
||||
name = "Pristine Kyr'Ozch Bio-Material"
|
||||
chem = math.floor(ql * 4.5)
|
||||
chem_msg = "4.5 * QL"
|
||||
extra_info = self.getresp("module/alien", "alien_armor_bio_extra_info_pristine")
|
||||
else:
|
||||
return None
|
||||
return ChatBlob("%s (QL %d)" % (name, ql),
|
||||
self.getresp("module/alien", "alien_armor_bio",
|
||||
{"item": self.display_item(name, ql),
|
||||
"ee_cl_req": ts_bio, "ql": ql, "cl_req": cl, "chem_req": chem,
|
||||
"chem_info": chem_msg, "chem_extra_info": extra_info, "nano_prog_req": nano_prog,
|
||||
"pt_req": pharma, "psyco_req": psyco, "min_ql": min_ql, "max_ql": max_ql,
|
||||
"max_psyco": max_psyco}))
|
||||
|
||||
def alien_weapon_bio(self, bio_type, ql):
|
||||
name = "Kyr'Ozch Bio-Material - Type %s" % bio_type
|
||||
|
||||
# Ensures that the maximum AI weapon that combines into doesn't go over QL 300
|
||||
# when the user presents a QL 271+ bio-material
|
||||
max_ai_type = math.floor(ql / 0.9)
|
||||
if max_ai_type > 300 or max_ai_type < 1:
|
||||
max_ai_type = 300
|
||||
|
||||
specials = self.db.query_single("SELECT specials FROM alien_weapon_specials WHERE type = ?",
|
||||
[bio_type]).specials
|
||||
data = self.db.query("SELECT * FROM alien_weapons WHERE type = ?", [bio_type])
|
||||
display_blob = ""
|
||||
for row in data:
|
||||
display_blob += self.display_item(row.name, max_ai_type) + "\n"
|
||||
|
||||
return ChatBlob("%s (QL %d)" % (name, ql),
|
||||
self.getresp("module/alien", "alien_weapon_bio",
|
||||
{"item_display": self.display_item(name, ql),
|
||||
"ee_cl_req": math.floor(ql * 4.5),
|
||||
"specials": specials,
|
||||
"display_blob": display_blob,
|
||||
"weapon_info": self.get_weapon_info(max_ai_type)
|
||||
}))
|
||||
|
||||
def serum_bio(self, ql):
|
||||
name = "Kyr'Ozch Viral Serum"
|
||||
|
||||
return ChatBlob("%s (QL %d)" % (name, ql),
|
||||
self.getresp("module/alien", "serum_bio",
|
||||
{"item_display": self.display_item(name, ql),
|
||||
"ee_cl_req": math.floor(ql * 4.5),
|
||||
"pt_req": (math.floor(ql * 3.5) if math.floor(ql * 3.5) > 400 else 400),
|
||||
"chem_me_req": (math.floor(ql * 4) if math.floor(ql * 4) > 400 else 400),
|
||||
"cl_req": math.floor(ql * 5)
|
||||
}))
|
||||
|
||||
def get_weapon_info(self, ql):
|
||||
return self.getresp("module/alien", "weapon_info",
|
||||
{"ql": ql,
|
||||
"bump": ("" if ql == 300 else self.getresp("module/alien", "weapon_bump")),
|
||||
"me_ws_req": math.floor(ql * 6)})
|
||||
|
||||
def display_item(self, name, ql):
|
||||
return self.text.format_item(self.items_controller.find_by_name(name, ql), ql)
|
||||
@@ -0,0 +1,76 @@
|
||||
from core.chat_blob import ChatBlob
|
||||
from core.command_param_types import Options
|
||||
from core.decorators import instance, command
|
||||
from core.text import Text
|
||||
from core.translation_service import TranslationService
|
||||
|
||||
|
||||
@instance()
|
||||
class AlienGeneralController:
|
||||
def inject(self, registry):
|
||||
self.text: Text = registry.get_instance("text")
|
||||
self.items_controller = registry.get_instance("items_controller")
|
||||
self.ts: TranslationService = registry.get_instance("translation_service")
|
||||
self.getresp = self.ts.get_response
|
||||
|
||||
@command(command="aigen", params=[], access_level="member",
|
||||
description="List alien city ground generals")
|
||||
def aigen_list_command(self, request):
|
||||
blob = ""
|
||||
blob += " - <a href='chatcmd:///tell <myname> aigen Ankari'>Ankari</a>\n"
|
||||
blob += " - <a href='chatcmd:///tell <myname> aigen Ilari'>Ilari</a>\n"
|
||||
blob += " - <a href='chatcmd:///tell <myname> aigen Rimah'>Rimah</a>\n"
|
||||
blob += " - <a href='chatcmd:///tell <myname> aigen Jaax'>Jaax</a>\n"
|
||||
blob += " - <a href='chatcmd:///tell <myname> aigen Xoch'>Xoch</a>\n"
|
||||
blob += " - <a href='chatcmd:///tell <myname> aigen Cha'>Cha</a>\n"
|
||||
|
||||
return ChatBlob(self.getresp("module/alien", "ai_gen_list_title"), blob)
|
||||
|
||||
@command(command="aigen",
|
||||
params=[Options(["ankari", "ilari", "rimah", "jaax", "xoch", "cha"])],
|
||||
access_level="member",
|
||||
description="Show info about an alien city ground general")
|
||||
def aigen_show_command(self, request, general):
|
||||
general = general.capitalize()
|
||||
|
||||
blob = ""
|
||||
|
||||
if general == "Ankari":
|
||||
blob += "Low Evade/Dodge, Low AR, Casts Viral/Virral nukes\n\n"
|
||||
blob += self.text.format_item(self.items_controller.get_by_item_id(247145)) + "\n" # Arithmetic Viralbots
|
||||
blob += "(Nanoskill / Tradeskill)\n\n"
|
||||
blob += self.text.format_item(self.items_controller.get_by_item_id(247684)) + "\n\n" # type 1
|
||||
blob += self.text.format_item(self.items_controller.get_by_item_id(247686)) + "\n\n" # type 2
|
||||
blob += self.text.format_item(self.items_controller.get_by_item_id(288673)) # type 48
|
||||
elif general == "Ilari":
|
||||
blob += "Low Evade/Dodge\n\n"
|
||||
blob += self.text.format_item(self.items_controller.get_by_item_id(247147)) + "\n" # Spiritual Viralbots
|
||||
blob += "(Nanocost / Nanopool / Max Nano)\n\n"
|
||||
blob += self.text.format_item(self.items_controller.get_by_item_id(247682)) + "\n\n" # type 992
|
||||
blob += self.text.format_item(self.items_controller.get_by_item_id(247680)) # type 880
|
||||
elif general == "Rimah":
|
||||
blob += "Low Evade/Dodge\n\n"
|
||||
blob += self.text.format_item(self.items_controller.get_by_item_id(247143)) + "\n" # Observant Viralbots
|
||||
blob += "(Init / Evades)\n\n"
|
||||
blob += self.text.format_item(self.items_controller.get_by_item_id(247676)) + "\n\n" # type 112
|
||||
blob += self.text.format_item(self.items_controller.get_by_item_id(247678)) # type 240
|
||||
elif general == "Jaax":
|
||||
blob += "High Evade, Low Dodge\n\n"
|
||||
blob += self.text.format_item(self.items_controller.get_by_item_id(247139)) + "\n" # Strong Viralbots
|
||||
blob += "(Melee / Spec Melee / Add All Def / Add Damage)\n\n"
|
||||
blob += self.text.format_item(self.items_controller.get_by_item_id(247694)) + "\n\n" # type 3
|
||||
blob += self.text.format_item(self.items_controller.get_by_item_id(247688)) # type 4
|
||||
elif general == "Xoch":
|
||||
blob += "High Evade/Dodge, Casts Ilari Biorejuvenation heals\n\n"
|
||||
blob += self.text.format_item(self.items_controller.get_by_item_id(247137)) + "\n" # Enduring Viralbots
|
||||
blob += "(Max Health / Body Dev)\n\n"
|
||||
blob += self.text.format_item(self.items_controller.get_by_item_id(247690)) + "\n\n" # type 5
|
||||
blob += self.text.format_item(self.items_controller.get_by_item_id(247692)) # type 12
|
||||
elif general == "Cha":
|
||||
blob += "High Evade/NR, Low Dodge\n\n"
|
||||
blob += self.text.format_item(self.items_controller.get_by_item_id(247141)) + "\n" # Supple Viralbots
|
||||
blob += "(Ranged / Spec Ranged / Add All Off)\n\n"
|
||||
blob += self.text.format_item(self.items_controller.get_by_item_id(247696)) + "\n\n" # type 13
|
||||
blob += self.text.format_item(self.items_controller.get_by_item_id(247674)) # type 76
|
||||
|
||||
return ChatBlob(f"General {general}", blob)
|
||||
@@ -0,0 +1,58 @@
|
||||
from core.chat_blob import ChatBlob
|
||||
from core.command_param_types import Any
|
||||
from core.decorators import instance, command
|
||||
from core.text import Text
|
||||
|
||||
|
||||
@instance()
|
||||
class LeProcsController:
|
||||
def inject(self, registry):
|
||||
self.db = registry.get_instance("db")
|
||||
self.text: Text = registry.get_instance("text")
|
||||
self.util = registry.get_instance("util")
|
||||
self.command_alias_service = registry.get_instance("command_alias_service")
|
||||
|
||||
def pre_start(self):
|
||||
self.db.load_sql_file(self.module_dir + "/sql/leprocs.sql", pre_optimized=True)
|
||||
self.db.create_view("leprocs")
|
||||
self.command_alias_service.add_alias("leproc", "leprocs")
|
||||
|
||||
@command(command="leprocs", params=[], access_level="member",
|
||||
description="Show a list of professions with LE procs")
|
||||
def leprocs_list_command(self, request):
|
||||
data = self.db.query("SELECT DISTINCT profession FROM leprocs ORDER BY profession")
|
||||
|
||||
blob = ""
|
||||
for row in data:
|
||||
blob += f"<pagebreak>{self.text.make_tellcmd(row.profession, f'leprocs {row.profession}')}\n"
|
||||
|
||||
blob += "\nProc info provided by Wolfbiter (RK1), Gatester (RK2), DrUrban"
|
||||
|
||||
return ChatBlob("LE Procs", blob)
|
||||
|
||||
@command(command="leprocs", params=[Any("profession")], access_level="member",
|
||||
description="Show LE proc information for a specific profession")
|
||||
def leprocs_show_command(self, request, prof_name):
|
||||
profession = self.util.get_profession(prof_name)
|
||||
|
||||
if not profession:
|
||||
return f"Could not find profession <highlight>{prof_name}</highlight>."
|
||||
|
||||
data = self.db.query("SELECT * FROM leprocs WHERE profession LIKE ? "
|
||||
"ORDER BY proc_type, research_lvl DESC", [profession])
|
||||
proc_type = ""
|
||||
blob = ""
|
||||
for row in data:
|
||||
if proc_type != row.proc_type:
|
||||
proc_type = row.proc_type
|
||||
blob += f"\n<highlight>{proc_type}</highlight>\n"
|
||||
|
||||
blob += f"<pagebreak>[{self.text.zfill(row.research_lvl, 10)}] " \
|
||||
f"{row.name} <orange>{row.modifiers}</orange> " \
|
||||
f"{row.duration} <green>{row.proc_trigger}</green>\n"
|
||||
|
||||
blob += "\n\nNote: Offensive procs have a 5% chance of firing every time you attack; " \
|
||||
"Defensive procs have a 10% chance of firing every time something attacks you."
|
||||
blob += "\n\nProc info provided by Wolfbiter (RK1), Gatester (RK2)"
|
||||
|
||||
return ChatBlob(f"{profession} LE Procs", blob)
|
||||
@@ -0,0 +1,81 @@
|
||||
from core.chat_blob import ChatBlob
|
||||
from core.command_param_types import Any, Int
|
||||
from core.decorators import instance, command
|
||||
from core.text import Text
|
||||
|
||||
|
||||
@instance()
|
||||
class OfabArmorController:
|
||||
def inject(self, registry):
|
||||
self.db = registry.get_instance("db")
|
||||
self.text: Text = registry.get_instance("text")
|
||||
self.util = registry.get_instance("util")
|
||||
|
||||
def pre_start(self):
|
||||
self.db.load_sql_file(self.module_dir + "/sql/ofab_armor.sql", pre_optimized=True)
|
||||
self.db.create_view("ofab_armor")
|
||||
self.db.create_view("ofab_armor_cost")
|
||||
self.db.create_view("ofab_armor_type")
|
||||
|
||||
@command(command="ofabarmor", params=[], access_level="member",
|
||||
description="Show ofab armor")
|
||||
def ofabarmor_list_command(self, request):
|
||||
data = self.db.query("SELECT type, profession FROM ofab_armor_type ORDER BY profession")
|
||||
|
||||
blob = ""
|
||||
for row in data:
|
||||
blob += f"<pagebreak>{self.text.make_tellcmd(row.profession, f'ofabarmor {row.profession}')} - " \
|
||||
f"Type {row.type:d}\n"
|
||||
|
||||
return ChatBlob("Ofab Armor", blob)
|
||||
|
||||
@command(command="ofabarmor",
|
||||
params=[Int("ql", is_optional=True), Any("profession"), Int("ql", is_optional=True)],
|
||||
access_level="member",
|
||||
description="Show info about ofab armor",
|
||||
extended_description="QL is optional and can come before or after the profession")
|
||||
def ofabarmor_show_command(self, request, ql1, prof_name, ql2):
|
||||
profession = self.util.get_profession(prof_name)
|
||||
ql = ql1 or ql2 or 300
|
||||
|
||||
if not profession:
|
||||
return "Could not find Ofab Armor for profession <highlight>%s</highlight>." % prof_name
|
||||
|
||||
data = self.db.query("SELECT * FROM ofab_armor o1 "
|
||||
"LEFT JOIN ofab_armor_cost o2 ON o1.slot = o2.slot "
|
||||
"WHERE o1.profession = ? AND o2.ql = ? "
|
||||
"ORDER BY upgrade, name",
|
||||
[profession, ql])
|
||||
if not data:
|
||||
return f"Could not find Ofab Armor for QL <highlight>{ql:d}</highlight>."
|
||||
|
||||
upgrade_type = self.db.query_single("SELECT type FROM ofab_armor_type WHERE profession = ?", [profession]).type
|
||||
|
||||
type_ql = round(ql * 0.8)
|
||||
type_link = self.text.make_tellcmd(f"Kyr'Ozch Bio-Material - Type {upgrade_type:d}",
|
||||
f"bioinfo {upgrade_type:d} {type_ql:d}")
|
||||
|
||||
blob = "Upgrade with %s (minimum QL %d)\n\n" % (type_link, type_ql)
|
||||
|
||||
cost_data = self.db.query("SELECT DISTINCT ql FROM ofab_weapons_cost ORDER BY ql")
|
||||
for row in cost_data:
|
||||
blob += self.text.make_tellcmd(row.ql, f"ofabarmor {profession} {row.ql:d}") + " "
|
||||
blob += "\n\n"
|
||||
|
||||
current_upgrade = ""
|
||||
total_vp = 0
|
||||
for row in data:
|
||||
if current_upgrade != row.upgrade:
|
||||
current_upgrade = row.upgrade
|
||||
blob += "\n"
|
||||
|
||||
blob += "<pagebreak>" + self.text.make_item(row.lowid, row.highid, ql, row.name)
|
||||
|
||||
if row.upgrade == 0 or row.upgrade == 3:
|
||||
blob += f" (<highlight>{row.vp:d}</highlight> VP)"
|
||||
total_vp += row.vp
|
||||
blob += "\n"
|
||||
|
||||
blob += f"\nVP cost for full set: <highlight>{total_vp:d}</highlight>"
|
||||
|
||||
return ChatBlob("%s Ofab Armor (QL %d)" % (profession, ql), blob)
|
||||
@@ -0,0 +1,68 @@
|
||||
from core.chat_blob import ChatBlob
|
||||
from core.command_param_types import Any, Int
|
||||
from core.decorators import instance, command
|
||||
from core.text import Text
|
||||
|
||||
|
||||
@instance()
|
||||
class OfabWeaponsController:
|
||||
def inject(self, registry):
|
||||
self.db = registry.get_instance("db")
|
||||
self.text: Text = registry.get_instance("text")
|
||||
self.items_controller = registry.get_instance("items_controller")
|
||||
self.command_alias_service = registry.get_instance("command_alias_service")
|
||||
|
||||
def pre_start(self):
|
||||
self.db.load_sql_file(self.module_dir + "/sql/ofab_weapons.sql", pre_optimized=True)
|
||||
self.db.create_view("ofab_weapons")
|
||||
self.db.create_view("ofab_weapons_cost")
|
||||
|
||||
def start(self):
|
||||
self.command_alias_service.add_alias("ofabweapon", "ofabweapons")
|
||||
|
||||
@command(command="ofabweapons", params=[], access_level="member",
|
||||
description="Show ofab weapons")
|
||||
def ofabweapons_list_command(self, request):
|
||||
data = self.db.query("SELECT type, name FROM ofab_weapons ORDER BY name")
|
||||
|
||||
blob = ""
|
||||
for row in data:
|
||||
blob += f"<pagebreak>{self.text.make_tellcmd(row.name, f'ofabweapons {row.name}')} - Type {row.type:d}\n"
|
||||
|
||||
return ChatBlob("Ofab Weapons", blob)
|
||||
|
||||
@command(command="ofabweapons",
|
||||
params=[Int("ql", is_optional=True), Any("weapon"), Int("ql", is_optional=True)],
|
||||
access_level="member",
|
||||
description="Show info about an ofab weapon",
|
||||
extended_description="QL is optional and can come before or after the weapon")
|
||||
def ofabweapons_show_command(self, request, ql1, weapon_name, ql2):
|
||||
weapon_name = weapon_name.capitalize()
|
||||
ql = ql1 or ql2 or 300
|
||||
|
||||
weapon = self.db.query_single("SELECT type, vp FROM ofab_weapons w, ofab_weapons_cost c "
|
||||
"WHERE w.name LIKE ? AND c.ql = ?", [weapon_name, ql])
|
||||
|
||||
if not weapon:
|
||||
return f"Could not find Ofab Weapon <highlight>{weapon_name}</highlight> " \
|
||||
f"for QL <highlight>{ql:d}</highlight>."
|
||||
|
||||
type_ql = round(ql * 0.8)
|
||||
type_link = self.text.make_tellcmd(f"Kyr'Ozch Bio-Material - Type {weapon.type:d}",
|
||||
f"bioinfo {weapon.type:d} {type_ql:d}")
|
||||
|
||||
blob = "Upgrade with %s (minimum QL %d)\n\n" % (type_link, type_ql)
|
||||
|
||||
data = self.db.query("SELECT ql FROM ofab_weapons_cost ORDER BY ql")
|
||||
for row in data:
|
||||
blob += self.text.make_tellcmd(row.ql, f"ofabweapons {weapon_name} {row.ql:d}") + " "
|
||||
blob += "\n\n"
|
||||
|
||||
for i in range(1, 7):
|
||||
item = self.items_controller.find_by_name(f"Ofab {weapon_name} Mk {i:d}")
|
||||
blob += "<pagebreak>" + self.text.format_item(item)
|
||||
if i == 1:
|
||||
blob += f" (<highlight>{weapon.vp:d}</highlight> VP)"
|
||||
blob += "\n"
|
||||
|
||||
return ChatBlob(f"Ofab {weapon_name} (QL {ql:d})", blob)
|
||||
@@ -0,0 +1,58 @@
|
||||
# noinspection LongLineForFile
|
||||
|
||||
DROP TABLE IF EXISTS alien_weapon_specials;
|
||||
CREATE TABLE alien_weapon_specials
|
||||
(
|
||||
type INT NOT NULL PRIMARY KEY,
|
||||
specials varchar(255) NOT NULL
|
||||
);
|
||||
INSERT INTO alien_weapon_specials (type, specials)
|
||||
VALUES (1, 'Fling shot'),
|
||||
(2, 'Aimed Shot'),
|
||||
(4, 'Burst'),
|
||||
(3, 'Fling Shot and Aimed Shot'),
|
||||
(5, 'Fling Shot and Burst'),
|
||||
(12, 'Burst and Full Auto'),
|
||||
(13, 'Burst, Fling Shot and Full Auto'),
|
||||
(48, 'Brawl and Dimach'),
|
||||
(76, 'Brawl and Fast Attack'),
|
||||
(112, 'Brawl, Dimach and Fast Attack'),
|
||||
(240, 'Brawl, Dimach, Fast Attack and Sneak Attack'),
|
||||
(880, 'Dimach, Fast Attack, Parry and Riposte'),
|
||||
(992, 'Dimach, Fast Attack, Sneak Attack, Parry and Riposte');
|
||||
DROP TABLE IF EXISTS alien_weapons;
|
||||
CREATE TABLE alien_weapons
|
||||
(
|
||||
type INT NOT NULL,
|
||||
name VARCHAR(255) NOT NULL
|
||||
);
|
||||
INSERT INTO alien_weapons (type, name)
|
||||
VALUES (1, 'Kyr''Ozch Grenade Gun - Type 1'),
|
||||
(1, 'Kyr''Ozch Pistol - Type 1'),
|
||||
(1, 'Kyr''Ozch Shotgun - Type 1'),
|
||||
(2, 'Kyr''Ozch Crossbow - Type 2'),
|
||||
(2, 'Kyr''Ozch Rifle - Type 2'),
|
||||
(3, 'Kyr''Ozch Crossbow - Type 3'),
|
||||
(3, 'Kyr''Ozch Energy Carbine - Type 3'),
|
||||
(3, 'Kyr''Ozch Rifle - Type 3'),
|
||||
(4, 'Kyr''Ozch Machine Pistol - Type 4'),
|
||||
(4, 'Kyr''Ozch Pistol - Type 4'),
|
||||
(4, 'Kyr''Ozch Submachine Gun - Type 4'),
|
||||
(5, 'Kyr''Ozch Carbine - Type 5'),
|
||||
(5, 'Kyr''Ozch Energy Carbine - Type 5'),
|
||||
(5, 'Kyr''Ozch Energy Pistol - Type 5'),
|
||||
(5, 'Kyr''Ozch Machine Pistol - Type 5'),
|
||||
(5, 'Kyr''Ozch Submachine Gun - Type 5'),
|
||||
(12, 'Kyr''Ozch Carbine - Type 12'),
|
||||
(12, 'Kyr''Ozch Submachine Gun - Type 12'),
|
||||
(13, 'Kyr''Ozch Carbine - Type 13'),
|
||||
(48, 'Kyr''Ozch Nunchacko - Type 48'),
|
||||
(76, 'Kyr''Ozch Energy Sword - Type 76'),
|
||||
(76, 'Kyr''Ozch Sledgehammer - Type 76'),
|
||||
(112, 'Kyr''Ozch Energy Hammer - Type 112'),
|
||||
(112, 'Kyr''Ozch Hammer - Type 112'),
|
||||
(112, 'Kyr''Ozch Spear - Type 112'),
|
||||
(112, 'Kyr''Ozch Sword - Type 112'),
|
||||
(240, 'Kyr''Ozch Axe - Type 240'),
|
||||
(880, 'Kyr''Ozch Sword - Type 880'),
|
||||
(992, 'Kyr''Ozch Energy Rapier - Type 992');
|
||||
@@ -0,0 +1,386 @@
|
||||
# noinspection LongLineForFile
|
||||
|
||||
DROP TABLE IF EXISTS leprocs;
|
||||
CREATE TABLE leprocs
|
||||
(
|
||||
profession varchar(20) NOT NULL,
|
||||
name varchar(50) NOT NULL,
|
||||
research_name varchar(50) DEFAULT NULL,
|
||||
research_lvl INT NOT NULL,
|
||||
proc_type char(6) DEFAULT NULL,
|
||||
chance varchar(20) DEFAULT NULL,
|
||||
modifiers varchar(255) NOT NULL,
|
||||
duration varchar(20) NOT NULL,
|
||||
proc_trigger varchar(20) NOT NULL,
|
||||
description varchar(255) NOT NULL
|
||||
);
|
||||
INSERT INTO leprocs (profession, name, research_name, research_lvl, proc_type, chance, modifiers, duration,
|
||||
proc_trigger, description)
|
||||
VALUES ('Adventurer', 'Charring Blow', 'Exploration', 5, 'Type 2', '5%', 'Target Hit Health Fire -533 .. -1434', '',
|
||||
'Offensive', '533 to 1120 fire AC damage if NPC family != 220; 844 to 1434 fire AC damage if NPC family = 220'),
|
||||
('Adventurer', 'Aesir Absorption', 'Exploration', 7, 'Type 1', '10%', 'Self Modify Add All Def. 50', '30s',
|
||||
'Defensive', '+50 AAD, 30 second duration'),
|
||||
('Adventurer', 'Ferocious hits', 'Game Warden', 1, 'Type 1', '5%', 'Self Modify +Damage 15', '30s', 'Offensive',
|
||||
'Self +15 damage modifier, 30 second duration'),
|
||||
('Adventurer', 'Skin Protection', 'Gunslinger', 2, 'Type 1', '10%',
|
||||
'Self Modify ShieldAC 31, Self Modify AbsorbAC 150', '60s', 'Defensive',
|
||||
'Self +31 shield AC and +150 Absorb AC, 60 second duration'),
|
||||
('Adventurer', 'Machete Flurry', 'Keen Eyes', 7, 'Type 1', '5%', 'Self Modify +Damage 75', '60s', 'Offensive',
|
||||
'Self +75 damage modifier, 60 second duration'),
|
||||
('Adventurer', 'Healing Herbs', 'Keen Eyes', 10, 'Type 2', '5%', 'Self Hit Health 697 .. 1193', '', 'Offensive',
|
||||
'Heals 697 to 1193 max health'),
|
||||
('Adventurer', 'Self Preservation', 'Safari Guide', 5, 'Type 1', '10%',
|
||||
'Self Modify ShieldAC 52, Self Modify AbsorbAC 255', '60s', 'Defensive',
|
||||
'Self +52 shield AC and +255 Absorb AC, 60 second duration'),
|
||||
('Adventurer', 'Basic Dressing', 'Wilderness Lore', 1, 'Type 2', '5%', 'Self Hit Health 15 .. 25', '',
|
||||
'Offensive', 'Heals 15 to 25 max health'),
|
||||
('Adventurer', 'Soothing Herbs', 'Wilderness Lore', 2, 'Type 1', '5%', 'Self Hit Health 186 .. 391', '',
|
||||
'Offensive', 'Heals 186 to 391 max health'),
|
||||
('Adventurer', 'Machete Slice', 'Wilderness Survival', 3, 'Type 2', '5%', 'Target Hit Health Fire -137 .. -350',
|
||||
'', 'Offensive', '137 to 350 fire AC damage'),
|
||||
('Adventurer', 'Restore Vigor', 'Wilderness Survival', 4, 'Type 2', '5%', 'Team Hit Health 356 .. 746', '',
|
||||
'Offensive', 'Heals 356 to 746 max health'),
|
||||
('Adventurer', 'Combustion', 'Wilderness Survival', 10, 'Type 2', '5%', 'Target Hit Health Fire -1294 .. -2415',
|
||||
'', 'Offensive', '1294 to 2415 fire AC damage'),
|
||||
('Agent', 'Minor Nanobot Enhance', 'Direct Action', 1, 'Type 1', '5%', 'Self Modify +Damage 15', '60s',
|
||||
'Offensive', 'Self +15 damage modifier, 60 second duration'),
|
||||
('Agent', 'Improved focus', 'Direct Action', 2, 'Type 2', '5%', 'Self Modify CriticalIncrease 15', '15s',
|
||||
'Offensive', 'Self 15% critical increase, 15 second duration'),
|
||||
('Agent', 'No Escape!', 'End Certification', 6, 'Type 1', '5%', 'Target Restrict Action Movement, 6s delay',
|
||||
'6s', 'Offensive', 'Target root, 6 second duration'),
|
||||
('Agent', 'Laser Aim', 'End Certification', 8, 'Type 2', '5%', 'Self Modify CriticalIncrease 30', '60s',
|
||||
'Offensive', 'Self +30% critical increase, 60 second duration'),
|
||||
('Agent', 'Cell Killer', 'Fitness', 3, 'Type 2', '5%', 'Target Hit Health Melee 75, 20 hits, 1s delay', '10s',
|
||||
'Offensive', '75 melee AC damage, 10 hits every 1 seconds'),
|
||||
('Agent', 'Intense Metabolism', 'Intuition', 3, 'Type 1', '5%', 'Self Modify Nano init 250', '60s', 'Offensive',
|
||||
'Self +250 nano init, 60 second duration'),
|
||||
('Agent', 'Plasteel Piercing Rounds', 'Intuition', 4, 'Type 2', '5%', 'Self Modify +Damage 75', '60s',
|
||||
'Offensive', 'Self +75 damage modifier, 60 second duration'),
|
||||
('Agent', 'Notum-Charged Rounds', 'Intuition', 10, 'Type 2', '5%', 'Self Modify +Damage 200', '60s', 'Offensive',
|
||||
'Self +200 damage modifier, duration 60 seconds'),
|
||||
('Agent', 'Nano-Enhanced Targeting', 'Marksmanship', 5, 'Type 2', '5%', 'Self Modify CriticalIncrease 22', '15s',
|
||||
'Offensive', 'Self +22% critical increase, 15 second duration'),
|
||||
('Agent', 'Broken Ankle', 'Stealth', 1, 'Type 2', '5%', 'Target Restrict Action Movement', '3s', 'Offensive',
|
||||
'Target root, 3 second duration'),
|
||||
('Agent', 'Disable Cuffs', 'Threat Assessment', 7, 'Type 1', '5%',
|
||||
'Self Reduce Snare 1083s, Self Reduce Root 1083s, Resist root/snares 20%', '15s', 'Offensive',
|
||||
'Self reduce roots and snares by 18minutes, 20% root/snare resist, 15 seconds'),
|
||||
('Agent', 'Grim Reaper', 'Threat Assessment', 10, 'Type 1', '5%',
|
||||
'Target Hit Health Melee 500, 10 hits, 1s delay', '', 'Offensive',
|
||||
'500 melee AC damage, 10 hits every 1 seconds'),
|
||||
('Bureaucrat', 'Inflation Adjustment', 'Process Theory', 1, 'Type 2', '5%',
|
||||
'Self Modify Nano attack damage modifier 10%', '60s', 'Offensive',
|
||||
'Self +10% nano damage modifier, 60 second duration'),
|
||||
('Bureaucrat', 'Papercut', 'Market Awareness', 1, 'Type 2', '5%', 'Target Hit Health Cold -10 .. -23', '',
|
||||
'Offensive', '10 to 23 cold AC damage'),
|
||||
('Bureaucrat', 'Social Services', 'Hostile Negotiations', 5, 'Type 1', '5%', 'Target Restrict Action Movement',
|
||||
'6s', 'Offensive', 'Target root, 6 second duration'),
|
||||
('Bureaucrat', 'Lost Paperwork', 'Professional Development', 4, 'Type 2', '5%',
|
||||
'Target Hit Health Melee -264 .. -532', '', 'Offensive', '264 to 532 melee AC damage'),
|
||||
('Bureaucrat', 'Next Window Over', 'Professional Development', 3, 'Type 1', '5%', 'Self Hit Nano 10%', '',
|
||||
'Offensive', 'Self, fills 10% of nano pool'),
|
||||
('Bureaucrat', 'Deflation', 'Executive Decisions', 3, 'Type 2', '5%', 'Self Modify Nano attack damage 25%',
|
||||
'45s', 'Offensive', 'Self +25% nano damage modifier, 45 second duration'),
|
||||
('Bureaucrat', 'Wait In That Queue', 'Process Theory', 2, 'Type 1', '5%', 'Target Modify Run speed -600', '15s',
|
||||
'Offensive', 'Target -600 runspeed, 15 second duration, unremovable'),
|
||||
('Bureaucrat', 'Forms in Triplicate', 'Human Resources', 6, 'Type 1', '10%', 'Self Hit Nano 20%', '',
|
||||
'Offensive', 'Self fills 20% of nano pool'),
|
||||
('Bureaucrat', 'Wrong Window', 'Human Resources', 8, 'Type 2', '5%', 'Self Modify Nano attack damage 50%', '30s',
|
||||
'Offensive', 'Self +50% nano damage modifier, 30 second duration'),
|
||||
('Bureaucrat', 'Mobility Embargo', 'Professional Development', 10, 'Type 2', '5%',
|
||||
'AOE 10m Restrict Action Movement', '8s', 'Offensive', 'Target AOE root, 10 meter radius, 8 second duration'),
|
||||
('Bureaucrat', 'Tax Audit', 'Team Building', 7, 'Type 2', '5%', 'Target Hit Health Energy -1600 .. -3750', '',
|
||||
'Offensive', '1600 to 3750 energy AC damage, 3574 taunt'),
|
||||
('Bureaucrat', 'Please Hold', 'Team Building', 10, 'Type 1', '5%', 'Target Modify Run speed -1500', '30s',
|
||||
'Offensive',
|
||||
'Target -1500 runspeed, 30 second duration, 2% chance to break on hit, 7% chance to break on nano damage, 1% chance to break on debuff'),
|
||||
('Doctor', 'Muscle Memory', 'Aggressive Surgery', 5, 'Type 1', '5%', 'Self Nano Init Buff 250', '60s',
|
||||
'Offensive', 'Self +250 nano initiative buff, 60 second duration'),
|
||||
('Doctor', 'Antiseptic', 'Bedside Manner', 8, 'Type 1', '5%', 'Healing 1133 - 1533', '', 'Offensive',
|
||||
'Heals 1133 to 1533 max health'),
|
||||
('Doctor', 'Healing Care', 'Bedside Manner', 6, 'Type 2', '10%', 'Healing (Team) 434-820', '', 'Defensive',
|
||||
'Heals team 434 to 820 max health'),
|
||||
('Doctor', 'Anesthetic', 'Diagnosis', 3, 'Type 2', '5%', 'Self HealEff +15%', '60s', 'Offensive',
|
||||
'Self +15% Heal Efficiency for 60s'),
|
||||
('Doctor', 'Blood Transfusion', 'Internship', 3, 'Type 1', '5%', 'Healing 327-551', '', 'Offensive',
|
||||
'Heals 327 to 551 max health'),
|
||||
('Doctor', 'Pathogen', 'Internship', 4, 'Type 2', '5%', 'DOT 1 3375 Poisondamage (15x225 every 2sec)', '30s',
|
||||
'Offensive', '225 poison AC damage, 15 hits every 2 seconds'),
|
||||
('Doctor', 'Massive Vitae Plan', 'Internship', 10, 'Type 2', '5%', 'Self HealEff 25%', '60', 'Offensive',
|
||||
'Self +25% Heal Efficiency for 60s'),
|
||||
('Doctor', 'Astringent', 'Rehabilitation', 2, 'Type 2', '5%', 'Init Debuff 350', '20s', 'Offensive',
|
||||
'Target -350 initiative debuff, 20 second duration, 15% chance to break on hit, 20% chance to break on nano damage, 20% chance to break on debuff'),
|
||||
('Doctor', 'Inflammation', 'Rehabilitation', 1, 'Type 2', '5%', 'DOT 300 Poisondamage (20x15 every 2sec)', '30s',
|
||||
'Offensive', '20 poison AC damage, 15 hits every 2 seconds'),
|
||||
('Doctor', 'Dangerous Culture', 'Toxicology', 10, 'Type 1', '5%', 'DOT 11 250 Poisondamage (15x750 every 2sec)',
|
||||
'30s', 'Offensive', '750 poison AC damage, 15 hits every 2 seconds'),
|
||||
('Doctor', 'Anatomic Blight', 'Toxicology', 7, 'Type 2', '5%', 'Init Debuff 569', '', 'Offensive',
|
||||
'Target -569 initiative debuff, 60 second duration, 10% chance to break on hit, 10% chance to break on nano damage, 10% chance to break on debuff'),
|
||||
('Doctor', 'Restrictive Bandaging', 'Underground Doctor', 1, 'Type 1', '5%', 'Healing 21-37', '', 'Offensive',
|
||||
'Heals 21 to 37 max health'),
|
||||
('Enforcer', 'Vortex of Hate', 'Anger Management', 10, 'Type 1', '5%', 'AOE Taunt, Self HOT 224 x10, 2s delay',
|
||||
'20s', 'Offensive', 'AOE Taunt, Self heal 224 x10, 2s delay, 20 second duration'),
|
||||
('Enforcer', 'Vile Rage', 'Anger Management', 3, 'Type 1', '5%', 'Rage +350 Runspeed +200 NR +250 Inits', '60s',
|
||||
'Offensive', '+350 runspeed, +200 nano resist, +250 initiatives, 60 second duration'),
|
||||
('Enforcer', 'Tear Ligaments', 'Anger Management', 4, 'Type 1', '5%',
|
||||
'AR/Dmg Buff (Challenger) +170 Damage +70 AAO +34% Scale', '60s', 'Offensive',
|
||||
'+70 AAO, 34% scale, +170 damage modifier, 60 second duration'),
|
||||
('Enforcer', 'Shrug Off Hits', 'Brawlers Sense', 2, 'Type 2', '5%', 'Absorbshield 280', '60s', 'Offensive',
|
||||
'280 Absorb AC buff, 60 second duration'),
|
||||
('Enforcer', 'Bust Kneecaps', 'Brawlers Sense', 1, 'Type 2', '5%',
|
||||
'AR/Dmg Buff (Challenger) +27 Damage +12 AAO +16% Scale', '42s', 'Offensive',
|
||||
'+12 AAO, 16% scale, and +27 damage modifier, 42 second duration'),
|
||||
('Enforcer', 'Inspire Rage', 'Brutality', 5, 'Type 1', '5%', 'Taunt 1600', '', 'Offensive',
|
||||
'1 cold AC damage, target 1600 taunt'),
|
||||
('Enforcer', 'Inspire Ire', 'Endurance', 6, 'Type 2', '5%', 'Taunt 4750', '', 'Offensive',
|
||||
'1 energy AC damage, target 4750 taunt'),
|
||||
('Enforcer', 'Shield of the ogre', 'Endurance', 8, 'Type 1', '5%', 'Absorbshield 745', '60s', 'Offensive',
|
||||
'742 Absorb AC buff, 60 second duration, 60 second duration'),
|
||||
('Enforcer', 'Raging Blow', 'Flexibility', 10, 'Type 1', '5%', 'AR/Dmg Buff (Challenger) +255 Damage +111 AAO',
|
||||
'60s', 'Offensive', '+111 AAO, +255 damage modifier, 60 second duration'),
|
||||
('Enforcer', 'Violation Buffer', 'Flexibility', 7, 'Type 2', '5%',
|
||||
'Damageshield +479 Max HP +75 Shield damage +240 Energy AC, Self heal 479', '60s', 'Offensive',
|
||||
'+479 max health, +60 shield AC, Self heal 479, 60 second duration'),
|
||||
('Enforcer', 'Ignore Pain', 'Hard Labor', 1, 'Type 2', '5%',
|
||||
'Damageshield +25 Max HP +10 Shield damage, self heal 25', '60s', 'Offensive',
|
||||
'+25 max health, +10 shield AC,Self heal 25, 60 second duration'),
|
||||
('Enforcer', 'Air of hatred', 'Kneecapping', 3, 'Type 2', '5%',
|
||||
'20m AOE taunt and self HOT, Heal 79 x10, 2s delay', '20s', 'Offensive',
|
||||
'AOE Taunt, Self heal 79 x10, 2s delay, 20 second duration'),
|
||||
('Engineer', 'Drone Explosives', 'Combat Applications', 5, 'Type 2', '5%',
|
||||
'Target Hit 497 - 1016 Projectiledamage', '', 'Offensive', '497 to 1016 projectile AC damage'),
|
||||
('Engineer', 'Endure Barrage', 'Ergonomics', 3, 'Type 1', '5%', 'AC Buff +500', '60s', 'Offensive',
|
||||
'+500 AC, 60 second duration'),
|
||||
('Engineer', 'Destructive Signal', 'Ergonomics', 4, 'Type 1', '5%',
|
||||
'Melee/Phys/ranged Init Buff +80, Add All DMG +20', '60s', 'Offensive',
|
||||
'+80 ranged/melee/physical initiative, +20 All DMG 60 second duration'),
|
||||
('Engineer', 'Assault Force Relief', 'Ergonomics', 10, 'Type 2', '5%', 'AC Buff (Team) +2500', '60s',
|
||||
'Offensive', 'Team +2500 AC, 60 second duration'),
|
||||
('Engineer', 'Cushion Blows', 'Mechanical Assistance', 1, 'Type 1', '5%',
|
||||
'Damageshield +10 Damageshield +40 Melee AC', '60s', 'Offensive',
|
||||
'+10 shield AC, +40 melee AC, 60 second duration'),
|
||||
('Engineer', 'Congenial Encasement', 'Mechanical Assistance', 2, 'Type 2', '5%',
|
||||
'Reflectshield +13% Reflect 7 Max Reflected Damage', '60s', 'Offensive',
|
||||
'+13% reflect modifier, +7 reflect damage, 60 second duration'),
|
||||
('Engineer', 'Personal Protection', 'Military Hardware', 1, 'Type 2', '5%', 'AC Buff +130', '60s', 'Offensive',
|
||||
'+130 AC, 60 second duration'),
|
||||
('Engineer', 'Energy Transfer', 'Practical Application', 6, 'Type 1', '5%', 'Damageshield +75', '60s',
|
||||
'Offensive', '+75 shield AC, 60 second duration'),
|
||||
('Engineer', 'Reactive Armor', 'Practical Application', 8, 'Type 1', '5%', 'Absorbshield 675', '60s',
|
||||
'Offensive', '675 Absorb AC buff, 60 second duration, 60 second duration'),
|
||||
('Engineer', 'Splinter Preservation', 'Process Refinement', 3, 'Type 1', '5%', 'Absorbshield 375', '60s',
|
||||
'Offensive', '+375 AC, 60 second duration'),
|
||||
('Engineer', 'Drone Missiles', 'Serendipity', 10, 'Type 2', '5%', 'Target Hit 1375 - 3211', '', 'Offensive',
|
||||
'1375 to 3211 energy AC damage'),
|
||||
('Engineer', 'Destructive Theorem', 'Serendipity', 7, 'Type 2', '5%', 'Ranged Init Buff +150', '60s',
|
||||
'Offensive', '+150 ranged initiative, 60 second duration'),
|
||||
('Fixer', 'Dirty Tricks', 'Acquisition', 6, 'Type 1', '5%', 'Dodge Buff +100', '60s', 'Offensive',
|
||||
'+100 dodge ranged, 60 second duration'),
|
||||
('Fixer', 'Fish In A Barrel', 'Cunning', 2, 'Type 1', '5%', 'Evade Debuff -85', '60s', 'Offensive',
|
||||
'Target -85 duck, dodge, and evade, 60 second duration'),
|
||||
('Fixer', 'Contaminated Bullets', 'Cunning', 1, 'Type 2', '5%', 'Damage Boost +3', '60s', 'Offensive',
|
||||
'+3 energy, projectile, and poison damage modifier, 60 second duration'),
|
||||
('Fixer', 'Luck''s Calamity', 'Cunning', 8, 'Type 1', '5%', 'Evade Debuff -170', '60s', 'Offensive',
|
||||
'Target -170 duck, dodge, and evade, 60 second duration'),
|
||||
('Fixer', 'Fighting Chance', 'Fallback Plan', 4, 'Type 2', '5%', 'Damage Boost +50', '60s', 'Offensive',
|
||||
'+50 damage modifier, 60 second duration'),
|
||||
('Fixer', 'Underground Sutures', 'Fallback Plan', 1, 'Type 2', '5%', 'HOT 180 - 216 (12x 15-18 every 5 sec)',
|
||||
'60s', 'Offensive', '15 to 18 healing over time, 1 hit every 5 seconds, 60 second duration'),
|
||||
('Fixer', 'Backyard Bandages', 'Insurance', 6, 'Type 2', '5%', 'HOT 2172 - 2220 (6x362-370 every 10sec)', '60s',
|
||||
'Offensive', '362-370 healing over time, 1 hit every 10 seconds, 60 second duration'),
|
||||
('Fixer', 'Escape The System', 'Respectable Businessman', 4, 'Type 1', '10%',
|
||||
'Root reducer -45 sec (10% change for proc)', '', 'Offensive', 'Self reduce root 45 seconds'),
|
||||
('Fixer', 'Bootleg Remedies', 'Respectable Businessman', 10, 'Type 2', '5%',
|
||||
'HOT 2436 - 2634 (6x406-439 every 10sec)', '60s', 'Offensive',
|
||||
'406 to 439 healing over time, 1 hit every 10 seconds, 60 second duration'),
|
||||
('Fixer', 'Slip Them A Mickey', 'Subtlety', 10, 'Type 2', '5%', 'Damage Boost +130', '60s', 'Offensive',
|
||||
'+130 damage modifier, 60 second duration'),
|
||||
('Fixer', 'Bending The Rules', 'Subtlety', 7, 'Type 2', '5%', 'Damage Boost +85', '60s', 'Offensive',
|
||||
'+85 damage modifier, 60 second duration'),
|
||||
('Fixer', 'Intense Metabolism', 'Smuggler''s Sense', 3, 'Type 1', '5%', 'Self Modify Nano init 250', '60s',
|
||||
'Offensive', '+250 nano initiative, 60 second duration'),
|
||||
('Keeper', 'Righteous Strike', 'Wisdom', 1, 'Type 1', '5%', 'Self Modify Damage modifier 20', '60s', 'Offensive',
|
||||
'+20 damage modifier, 60 second duration'),
|
||||
('Keeper', 'Faithful Reconstruction', 'Virtue', 1, 'Type 2', '5%', 'Team Hit Health 42 .. 53', '', 'Offensive',
|
||||
'Team heal 42 to 53 max health'),
|
||||
('Keeper', 'Eschew the Faithless', 'Wisdom', 2, 'Type 1', '5%',
|
||||
'Self Modify Duck explosives 14 Dodge ranged 14 Evade close 50', '60s', 'Offensive',
|
||||
'+50 evade, +14 duck and dodge, 60 second duration'),
|
||||
('Keeper', 'Symbiotic Bypass', 'Champion', 8, 'Type 1', '5%',
|
||||
'Evade Buff (Team) +140 Evade ClsC +40 Dodge Ranged +40 Duck Exp', '60s', 'Offensive',
|
||||
'Team +140 evade, +40 duck dodge, 60 second duration'),
|
||||
('Keeper', 'Virtuous Reaper', 'Champion', 6, 'Type 1', '5%', 'Damage Boost (Team) +90', '60s', 'Offensive',
|
||||
'Team +90 damage modifier, 60 second duration'),
|
||||
('Keeper', 'Righteous Smite', 'Exemplar', 10, 'Type 1', '5%', 'Damage Boost (Team) +200', '60s', 'Offensive',
|
||||
'Team +200 damage modifier, 60 second duration'),
|
||||
('Keeper', 'Ambient Purification', 'Exemplar', 7, 'Type 2', '5%', 'Healing (Team) 481-948', '', 'Offensive',
|
||||
'Team heal 481 to 948 max health'),
|
||||
('Keeper', 'Subjugation', 'Judgement', 3, 'Type 2', '5%', 'AAO +20 AAD +45 (Team)', '60s', 'Offensive',
|
||||
'Team AAO +20 AAD +45, 60 seconds'),
|
||||
('Keeper', 'Ignore the Unrepentant', 'Judgement', 4, 'Type 1', '5%',
|
||||
'Evade Buff +110 Evade ClsC +30 Dodge Ranged +30 Duck Exp', '60s', 'Offensive',
|
||||
'+110 evade, +30 duck and dodge, 60 second duration'),
|
||||
('Keeper', 'Honor Restored', 'Judgement', 10, 'Type 2', '5%', 'AAO +50 AAD +120 (Team)', '', 'Offensive',
|
||||
'Team AAO +50 AAD +120 60 seconds'),
|
||||
('Keeper', 'Pure Strike', 'Loyalty', 3, 'Type 1', '5%', 'Damage Boost +65', '60s', 'Offensive',
|
||||
'+65 damage modifier, 60 second duration'),
|
||||
('Keeper', 'Benevolent Barrier', 'Paragon', 5, 'Type 2', '5%', 'Reflect Shield +4%', '600s', 'Offensive',
|
||||
'+4% reflect AC, 10 minute duration'),
|
||||
('Martial Artist', 'Absolute Fist', 'Alacrity', 10, 'Type 1', '5%', 'Damage Buff +94', '60s', 'Offensive',
|
||||
'+94 damage modifier, 60 second duration'),
|
||||
('Martial Artist', 'Strengthen Spirit', 'Alacrity', 3, 'Type 1', '5%', 'AC Buff +269 Melee AC +229 Other AC',
|
||||
'60s', 'Offensive', '+226 AC, +269 melee AC, 60 second duration'),
|
||||
('Martial Artist', 'Healing Meditation', 'Cognizance', 5, 'Type 2', '5%', 'Healing 443-981', '', 'Offensive',
|
||||
'Heals 443 to 981 max health'),
|
||||
('Martial Artist', 'Debilitating Strike', 'Cognizance', 6, 'Type 2', '5%', 'Crit Increase +19%', '60s',
|
||||
'Offensive', '+19% critical increase, 60 second duration'),
|
||||
('Martial Artist', 'Medicinal Remedy', 'Empathy', 1, 'Type 2', '5%', 'Healing 34-59', '', 'Offensive',
|
||||
'Heals 34 to 59 max health'),
|
||||
('Martial Artist', 'Strengthen Ki', 'Intuition', 8, 'Type 1', '5%',
|
||||
'AC Buff +40 Strength +676 Melee AC +573 Other AC', '60s', 'Offensive',
|
||||
'+40 strength, +574 AC, +676 melee AC, 60 second duration'),
|
||||
('Martial Artist', 'Smashing Fist', 'Meditation', 4, 'Type 1', '5%', 'Damage Buff +63', '60s', 'Offensive',
|
||||
'+63 damage modifier, 60 second duration'),
|
||||
('Martial Artist', 'Self Reconstruction', 'Meditation', 10, 'Type 2', '5%', 'Healing 980 - 1803', '',
|
||||
'Offensive', 'Heals 980 to 1803 max health'),
|
||||
('Martial Artist', 'Attack Ligaments', 'Nimble', 2, 'Type 2', '5%', 'Crit Increase +8%', '60s', 'Offensive',
|
||||
'+8% critical increase, 60 second duration'),
|
||||
('Martial Artist', 'Stinging Fist', 'Reflex', 1, 'Type 1', '5%', 'Damage Buff +19', '60s', 'Offensive',
|
||||
'+19 damage modifier, 60 second duration'),
|
||||
('Martial Artist', 'Disrupt Ki', 'Reflex', 7, 'Type 1', '5%', 'Evade Buff +85', '60s', 'Offensive',
|
||||
'+85 duck, dodge, and evade, 60 second duration'),
|
||||
('Meta-Physicist', 'Thoughtful Means', 'Angst', 5, 'Type 2', '5%', 'REduces Nano Cost by 25%', '60s',
|
||||
'Offensive', 'Reduces nano cost by 25%, 60 second duration'),
|
||||
('Meta-Physicist', 'Ego Strike', 'Foresight', 6, 'Type 2', '5%', 'Target Hit 802 - 1468 Colddamage', '',
|
||||
'Offensive', 'Target 802 to 1486 cold AC damage'),
|
||||
('Meta-Physicist', 'Anticipated Evasion', 'Foresight', 8, 'Type 1', '5%', 'Evade Buff +250', '60s', 'Offensive',
|
||||
'+250 duck, dodge, and evade, 60 second duration'),
|
||||
('Meta-Physicist', 'Sow Despair', 'Jealousy', 1, 'Type 2', '5%', 'Target Hit 30-65 Poisondamage', '',
|
||||
'Offensive', 'Target 30 to 65 poison AC damage'),
|
||||
('Meta-Physicist', 'Regain Focus', 'Perseverences', 3, 'Type 1', '5%', 'Evade Buff +100', '60s', 'Offensive',
|
||||
'+100 duck, dodge, and evade, 60 second duration'),
|
||||
('Meta-Physicist', 'Mind Wail', 'Perseverences', 4, 'Type 2', '5%', 'Target Hit 314-699 Cold-damage', '',
|
||||
'Offensive', 'Target 314 to 699 cold AC damage'),
|
||||
('Meta-Physicist', 'Nanobot Contingent Arrest', 'Perseverences', 10, 'Type 2', '5%',
|
||||
'Fight Target: -750 NanoInit, %Add nano cost +100%, Nano cast interrupt -25%', '60s', 'Offensive',
|
||||
'Target -750 nano init, add nano cost 100%, decrase interrupt -25%, 60 second duration'),
|
||||
('Meta-Physicist', 'Economic Nanobot Use', 'Spatial Awareness', 2, 'Type 1', '5%', 'Nanocost Reducer -12%',
|
||||
'60s', 'Offensive', '-12% nano cost, 60 second duration'),
|
||||
('Meta-Physicist', 'Diffuse Rage', 'Spatial Awareness', 1, 'Type 2', '5%', 'Damage Debuff -7 Damage -35 Inits',
|
||||
'60s', 'Offensive', 'Target -7 damage modifier, -35 initiatives, 60 second duration'),
|
||||
('Meta-Physicist', 'Super-Ego Strike', 'Sympathy', 10, 'Type 2', '5%', 'Target Hit 1500 - 3000 Colddamage', '',
|
||||
'Offensive', 'Target 1500 to 3000 cold AC damage'),
|
||||
('Meta-Physicist', 'Suppress Fury', 'Sympathy', 7, 'Type 2', '5%', 'Damage Debuff -75 Damage -261 Inits', '60s',
|
||||
'Offensive', 'Target -75 damage modifier, -261 initiatives, 60 second duration'),
|
||||
('Meta-Physicist', 'Sow Doubt', 'Trauma', 3, 'Type 2', '5%', 'Damage Debuff -35 Damage -156 Inits', '60s',
|
||||
'Offensive', 'Target -35 damage modifier, -156 initiatives, 60 second duration'),
|
||||
('Nano-Technician', 'Source Tap', 'Combat Execution', 3, 'Type 1', '10%', 'Nano-HOT 1224 (12x102 every 5sec)',
|
||||
'60s', 'Defensive', '+102 nano points, 1 hit every 15 seconds, 60 second duration'),
|
||||
('Nano-Technician', 'Powered Nano Fortress', 'Discipline', 5, 'Type 2', '10%',
|
||||
'AC/HP/NR Buff +167 AC +246 Max HP +111 NR', '60s', 'Defensive',
|
||||
'+167 AC, +246 max health, +111 nano resist, 60 second duration'),
|
||||
('Nano-Technician', 'Unstable Library', 'Discipline', 1, 'Type 2', '10%',
|
||||
'AC/HP/NR Buff +31 AC +50 Max HP +32 NR', '60s', 'Defensive',
|
||||
'+31 AC, +50 max health +32 nano resist, 60 second duration'),
|
||||
('Nano-Technician', 'Thermal Reprieve', 'Intellectual Refinement', 9, 'Type 1', '10%',
|
||||
'Reflectshield +10% Reflect 10 Max Reflect', '60s', 'Defensive',
|
||||
'+10% reflect AC, +10 max reflect shield, 60 second duration'),
|
||||
('Nano-Technician', 'Looping Service', 'Intellectual Refinement', 6, 'Type 2', '10%', 'Absorbshield 680', '60s',
|
||||
'Defensive', '680 Absorb AC buff, 60 second duration'),
|
||||
('Nano-Technician', 'Harvest Energy', 'Nano Theory', 7, 'Type 1', '10%', 'Nano-HOT 5220 (12x435 every 5sec)',
|
||||
'60s', 'Defensive', '+435 nano points, 1 hit every 5 seconds, 60 second duration'),
|
||||
('Nano-Technician', 'Optimized Library', 'Nano Theory', 10, 'Type 2', '10%',
|
||||
'AC/HP/NR Buff +331 AC +350 Max HP +140 NR', '60s', 'Defensive',
|
||||
'+331 AC, +350 max health, +140 nano resist, 60 second duration'),
|
||||
('Nano-Technician', 'Circular Logic', 'Particle Physics', 1, 'Type 1', '10%', 'Nano-HOT 60 (12x5 every 5sec)',
|
||||
'60s', 'Defensive', '+5 nano points, 1 hit every 5 seconds, 60 second duration'),
|
||||
('Nano-Technician', 'Increase Momentum', 'Particle Physics', 2, 'Type 2', '10%', 'Nanoinit Buff +200', '60s',
|
||||
'Defensive', '+200 nano initiative, 60 second duration'),
|
||||
('Nano-Technician', 'Layered Amnesty', 'Practical Use', 4, 'Type 1', '10%', 'Reflectshield +4%', '60s',
|
||||
'Defensive', '+4% reflect AC, 60 second duration '),
|
||||
('Nano-Technician', 'Accelerated Reality', 'Practical Use', 10, 'Type 2', '10%', 'Nanoinit Buff +600', '60s',
|
||||
'Defensive', '+600 nano initiative, 60 second duration'),
|
||||
('Shade', 'Drain Essence', 'Ambushing', 5, 'Type 1', '5%', 'HP Drain 382 Energydamage 310 Healing', '',
|
||||
'Offensive', 'Target -382 energy AC damage, heals 310 max health'),
|
||||
('Shade', 'Siphon Being', 'Assassin''s Awareness', 8, 'Type 1', '5%', 'HP Drain 580 Energydamage 577 Healing',
|
||||
'', 'Offensive', 'Target -580 energy AC damage, heals 577 max health'),
|
||||
('Shade', 'Shadowed Gift', 'Assassin''s Awareness', 6, 'Type 2', '5%',
|
||||
'DOT 975 Poisondamage (5x195 hits every 1 sec)', '6s', 'Offensive',
|
||||
'195 poison AC damage, 5 hits every 1 seconds, 6 second duration'),
|
||||
('Shade', 'Blackheart', 'Honed Senses', 10, 'Type 2', '5%', 'Target Hit 767 Meleedamage', '', 'Offensive',
|
||||
'Target -767 melee AC damage'),
|
||||
('Shade', 'Twisted Caress', 'Honed Senses', 7, 'Type 2', '5%', 'Target Hit 550 Meleedamage', '', 'Offensive',
|
||||
'Target -550 melee AC damage'),
|
||||
('Shade', 'Devious Spirit', 'Killing Blows', 1, 'Type 2', '5%', 'Target Hit 23 Meleedamage', '', 'Offensive',
|
||||
'Target -23 melee AC damage'),
|
||||
('Shade', 'Misdirection', 'Killing Blows', 2, 'Type 2', '5%', 'Evade Buff EvadeClsC 40 DuckExp 25 DodgeRange 25',
|
||||
'60s', 'Offensive', '+40 evade, +25 duck and dodge, 60 second duration'),
|
||||
('Shade', 'Sap Life', 'Lithe', 1, 'Type 1', '5%', 'HP Drain 17 Energydamage 7 HP Gain', '', 'Offensive',
|
||||
'Target -17 energy AC damage, heals 7 max health'),
|
||||
('Shade', 'Elusive Spirit', 'Malicious Forethought', 4, 'Type 1', '5%',
|
||||
'Evade Buff EvadeClsC 56 DuckExp 32 DodgeRange 32', '60s', 'Offensive',
|
||||
'+56 evade, +32 duck and dodge, 60 second duration'),
|
||||
('Shade', 'Blackened Legacy', 'Malicious Forethought', 10, 'Type 1', '5%',
|
||||
'Evade Buff EvadeClsC 100 DuckExp 50 DodgeRange 50', '60s', 'Offensive',
|
||||
'+100 evade, +50 duck and dodge, 60 second duration'),
|
||||
('Shade', 'Toxic Confusion', 'Malicious Forethought', 3, 'Type 1', '5%',
|
||||
'DOT 425 Poisondamage (5x85 hits every 1sec)', '6s', 'Offensive',
|
||||
'85 poison AC damage, 5 hits every 1 seconds, 6 second duration'),
|
||||
('Shade', 'Concealed Surprise', 'Stiletto Mastery', 3, 'Type 2', '5%', 'Target Hit 234 Meleedamage', '',
|
||||
'Offensive', 'Target -234 melee AC damage'),
|
||||
('Soldier', 'Successful Targeting', 'Classified Ops', 1, 'Type 1', '5%', 'AR Buff +23 AAO', '60s', 'Offensive',
|
||||
'+23 add all offense, 60 second duration'),
|
||||
('Soldier', 'Shoot Artery', 'Combat Sense', 1, 'Type 2', '5%', 'Damage Buff +15 all damage', '60s', 'Offensive',
|
||||
'+15 damage modifier, 60 second duration'),
|
||||
('Soldier', 'Deep Six Initiative', 'Combat Sense', 2, 'Type 2', '5%', 'Init Buff +50', '60s', 'Offensive',
|
||||
'+50 initiatives, 60 second duration'),
|
||||
('Soldier', 'Reconditioned', 'Force Recon', 5, 'Type 1', '5%', 'Self Buff +361 Max HP, HOT (650) 13x50 every 5s',
|
||||
'60s', 'Offensive', '+361 max health, HOT (650) 13x50 5s delay, 60 second duration'),
|
||||
('Soldier', 'Concussive Shot', 'Forward Observer', 3, 'Type 1', '5%', 'Damage Buff +35 damage', '60s',
|
||||
'Offensive', '+35 damage modifier, 60 second duration'),
|
||||
('Soldier', 'Gear Assault Absorption', 'Forward Observer', 4, 'Type 2', '5%', 'Max Reflect DMG +25', '60s',
|
||||
'Offensive', 'Increases damage reflected by 25, 60 second duration'),
|
||||
('Soldier', 'Fuse Body Armor', 'Forward Observer', 10, 'Type 2', '5%', 'Max Reflect DMG +75', '60s', 'Offensive',
|
||||
'Increases damage reflected by 75, 60 second duration'),
|
||||
('Soldier', 'Emergency Bandages', 'Marksmanship', 3, 'Type 1', '5%',
|
||||
'Self Buff +200 Max HP, HOT (325) 13x25 every 5s', '60s', 'Offensive',
|
||||
'+200 max health, HOT (325) 13x25 5sdelay, 60 second duration'),
|
||||
('Soldier', 'Furious Ammunition', 'Strategic Planning', 10, 'Type 1', '5%', 'Damage Buff +99', '60s',
|
||||
'Offensive', '+99 damage modifier, 60 second duration'),
|
||||
('Soldier', 'Graze Jugular Vein', 'Strategic Planning', 7, 'Type 2', '5%', 'Damage Buff +70', '60s', 'Offensive',
|
||||
'+70 damage modifier, 60 second duration'),
|
||||
('Soldier', 'On The Double', 'Sweep and Clear', 8, 'Type 2', '5%', 'Init Buff +150', '60s', 'Offensive',
|
||||
'+150 initiative, 60 second duration'),
|
||||
('Soldier', 'Target Acquired', 'Sweep and Clear', 6, 'Type 1', '5%', 'AR Buff +35 AAO', '60s', 'Offensive',
|
||||
'+35 add all offense, 60 second duration'),
|
||||
('Trader', 'Escrow', 'Aggressive Pricing', 3, 'Type 2', '5%',
|
||||
'Nanodrain 798 Drain (6x133 every 5sec) 600 Gain (6x100 every 5sec)', '30s', 'Offensive',
|
||||
'Target -133 nano points, self +100 nano points, 6 hits every 5 seconds, 30 second duration'),
|
||||
('Trader', 'Unexpected Bonus', 'Door-To-Door Salesman', 3, 'Type 1', '5%',
|
||||
'HP Drain 300 Energydamage 222 Healing', '', 'Offensive', 'Target -300 energy AC damage, heals 222 max health'),
|
||||
('Trader', 'Debt Collection', 'Door-To-Door Salesman', 10, 'Type 1', '5%',
|
||||
'HP Drain 1100 - 1200 Energydamage 1100-1300 Healing', '', 'Offensive',
|
||||
'Target -1100 to -1200 energy AC damage, heals 1100 to 1300 max health'),
|
||||
('Trader', 'Unforgiven Debts', 'Door-To-Door Salesman', 4, 'Type 1', '5%',
|
||||
'Skilldrain 136 Weapon- and Nanoskills Drain(10s)/Gain 68 AAO Drain (PVM) (30s)', '30s', 'Offensive',
|
||||
'Target -136 weapon and nanoskills, -68 add all offense, self +136 weapon and nanoskills, +68 add all offense, 30 second duration'),
|
||||
('Trader', 'Unopened Letter', 'Eye for a Deal', 8, 'Type 1', '5%', 'AC Drain +2067 AC -2098 AC', '60s',
|
||||
'Offensive', 'Target -2098 AC, self 2067 AC, 60 second duration'),
|
||||
('Trader', 'Exchange Product', 'Eye for a Deal', 6, 'Type 1', '5%', 'HP Drain 990 Energydamage 997 Healing', '',
|
||||
'Offensive', 'Target -990 energy AC damage, heals 997 max health'),
|
||||
('Trader', 'Rigid Liquidation', 'Fast Talk', 7, 'Type 2', '5%',
|
||||
'Nanodrain 1842 Drain (6x307 every 5sec) 1626 Gain (6x271 every 5sec)', '30s', 'Offensive',
|
||||
'Target -307 nano points, self +271 nano points, 6 hits every 5 seconds, 30 second duration'),
|
||||
('Trader', 'Accumulated Interest', 'Fast Talk', 10, 'Type 1', '5%',
|
||||
'Skilldrain 204 Weapon- and Nanoskills Drain(10s)/Gain 102 AAO Drain (PVM) (30s)', '30s', 'Offensive',
|
||||
'Target -204 weapon and nanoskills, -102 add all offense, self +204 weapon and nanoskills, +102 add all offense, 30 second duration'),
|
||||
('Trader', 'Deplete Assets', 'Hostile Takeover', 5, 'Type 1', '5%', 'AC Drain +1394 AC -1449 AC', '60s',
|
||||
'Offensive', 'Target -1449 AC, self +1394 AC, 60 second duration'),
|
||||
('Trader', 'Rebate', 'Sensible Investment', 1, 'Type 1', '5%', 'HP Drain 43 Energydamage 18 Healing', '',
|
||||
'Offensive', 'Target -43 energy AC damage, heals 18 max health'),
|
||||
('Trader', 'Refinance Loans', 'Sensible Investment', 2, 'Type 2', '5%',
|
||||
'AC Drain -200 AC +200 AC (On fightingtarget)', '60s', 'Offensive',
|
||||
'Target -200 AC, target''s fighting target +200 AC, 60 second duration'),
|
||||
('Trader', 'Payment Plan', 'Sensitive Negotiations', 1, 'Type 2', '5%',
|
||||
'Skilldrain 9 Weapon- and Nanoskills Drain(10s)/Gain 5 AAO Drain (PVM) (30s)', '30s', 'Offensive',
|
||||
'Target -9 weapon and nanoskills, -5 add all offense, self +9 weapon and nanoskills, +5 add all offense, 30 second duration');
|
||||
@@ -0,0 +1,438 @@
|
||||
# noinspection LongLineForFile
|
||||
|
||||
DROP TABLE IF EXISTS ofab_armor;
|
||||
CREATE TABLE ofab_armor
|
||||
(
|
||||
profession VARCHAR(30) NOT NULL,
|
||||
name VARCHAR(150) NOT NULL,
|
||||
slot VARCHAR(30) NOT NULL,
|
||||
lowid INT NOT NULL,
|
||||
highid INT NOT NULL,
|
||||
upgrade INT NOT NULL
|
||||
);
|
||||
INSERT INTO ofab_armor (profession, name, slot, lowid, highid, upgrade)
|
||||
VALUES ('Adventurer', 'Ofab Adventurer Body Armor', 'body', 264202, 264203, 0),
|
||||
('Adventurer', 'Ofab Adventurer Boots', 'boots', 264200, 264201, 0),
|
||||
('Adventurer', 'Ofab Adventurer Pants', 'pants', 264198, 264199, 0),
|
||||
('Adventurer', 'Ofab Adventurer Sleeves', 'sleeves', 264204, 264205, 0),
|
||||
('Adventurer', 'Ofab Adventurer Gloves', 'gloves', 264206, 264207, 0),
|
||||
('Adventurer', 'Ofab Adventurer Helmet', 'helmet', 264208, 264209, 0),
|
||||
('Adventurer', 'Jayde''s Odyssey ring', 'ring', 267560, 267561, 0),
|
||||
('Agent', 'Ofab Agent Body Armor', 'body', 264305, 264306, 0),
|
||||
('Agent', 'Ofab Agent Boots', 'boots', 264311, 264312, 0),
|
||||
('Agent', 'Ofab Agent Pants', 'pants', 264317, 264318, 0),
|
||||
('Agent', 'Ofab Agent Sleeves', 'sleeves', 264299, 264300, 0),
|
||||
('Agent', 'Ofab Agent Gloves', 'gloves', 264293, 264294, 0),
|
||||
('Agent', 'Ofab Agent Helmet', 'helmet', 264287, 264288, 0),
|
||||
('Agent', 'Agents'' Ring of Aim', 'ring', 267582, 267583, 0),
|
||||
('Bureaucrat', 'Ofab Bureaucrat Vest', 'body', 264521, 264522, 0),
|
||||
('Bureaucrat', 'Ofab Bureaucrat Boots', 'boots', 264527, 264528, 0),
|
||||
('Bureaucrat', 'Ofab Bureaucrat Pants', 'pants', 264533, 264534, 0),
|
||||
('Bureaucrat', 'Ofab Bureaucrat Sleeves', 'sleeves', 264515, 264516, 0),
|
||||
('Bureaucrat', 'Ofab Bureaucrat Gloves', 'gloves', 264509, 264510, 0),
|
||||
('Bureaucrat', 'Ofab Bureaucrat Headgear', 'helmet', 264503, 264504, 0),
|
||||
('Bureaucrat', 'Bureaucrats'' Ring of Order', 'ring', 268307, 268308, 0),
|
||||
('Doctor', 'Ofab Doctor Body', 'body', 264668, 264669, 0),
|
||||
('Doctor', 'Ofab Doctor Boots', 'boots', 264674, 264675, 0),
|
||||
('Doctor', 'Ofab Doctor Pants', 'pants', 264680, 264681, 0),
|
||||
('Doctor', 'Ofab Doctor Sleeves', 'sleeves', 264662, 264663, 0),
|
||||
('Doctor', 'Ofab Doctor Gloves', 'gloves', 264656, 264657, 0),
|
||||
('Doctor', 'Ofab Doctor Helmet', 'helmet', 264650, 264651, 0),
|
||||
('Doctor', 'Sheffy''s Micro Coil', 'ring', 267562, 267563, 0),
|
||||
('Enforcer', 'Ofab Enforcer Breastplate', 'body', 264223, 264224, 0),
|
||||
('Enforcer', 'Ofab Enforcer Boots', 'boots', 264217, 264218, 0),
|
||||
('Enforcer', 'Ofab Enforcer Pants', 'pants', 264211, 264212, 0),
|
||||
('Enforcer', 'Ofab Enforcer Sleeves', 'sleeves', 264229, 264230, 0),
|
||||
('Enforcer', 'Ofab Enforcer Gauntlets', 'gloves', 264235, 264236, 0),
|
||||
('Enforcer', 'Ofab Enforcer Helmet', 'helmet', 264241, 264242, 0),
|
||||
('Enforcer', 'Band of Bravery', 'ring', 267564, 267565, 0),
|
||||
('Engineer', 'Ofab Engineer Body', 'body', 264596, 264597, 0),
|
||||
('Engineer', 'Ofab Engineer Boots', 'boots', 264602, 264603, 0),
|
||||
('Engineer', 'Ofab Engineer Pants', 'pants', 264608, 264609, 0),
|
||||
('Engineer', 'Ofab Engineer Sleeves', 'sleeves', 264590, 264591, 0),
|
||||
('Engineer', 'Ofab Engineer Gloves', 'gloves', 264581, 264582, 0),
|
||||
('Engineer', 'Ofab Engineer Helmet', 'helmet', 264575, 264576, 0),
|
||||
('Engineer', 'Rusty''s Ring of Bolts', 'ring', 267566, 267567, 0),
|
||||
('Fixer', 'Ofab Fixer Body Armor', 'body', 264485, 264486, 0),
|
||||
('Fixer', 'Ofab Fixer Boots', 'boots', 264491, 264492, 0),
|
||||
('Fixer', 'Ofab Fixer Pants', 'pants', 264497, 264498, 0),
|
||||
('Fixer', 'Ofab Fixer Sleeves', 'sleeves', 264479, 264480, 0),
|
||||
('Fixer', 'Ofab Fixer Gloves', 'gloves', 264473, 264474, 0),
|
||||
('Fixer', 'Ofab Fixer Helmet', 'helmet', 264467, 264468, 0),
|
||||
('Fixer', 'Fixers'' Ring of Breaking', 'ring', 267568, 267569, 0),
|
||||
('Keeper', 'Ofab Keeper Body Armor', 'body', 264632, 264633, 0),
|
||||
('Keeper', 'Ofab Keeper Boots', 'boots', 264638, 264639, 0),
|
||||
('Keeper', 'Ofab Keeper Pants', 'pants', 264644, 264645, 0),
|
||||
('Keeper', 'Ofab Keeper Sleeves', 'sleeves', 264626, 264627, 0),
|
||||
('Keeper', 'Ofab Keeper Gloves', 'gloves', 264620, 264621, 0),
|
||||
('Keeper', 'Ofab Keeper Helmet', 'helmet', 264614, 264615, 0),
|
||||
('Keeper', 'Knights'' Ring of Honour', 'ring', 267570, 267571, 0),
|
||||
('Martial Artist', 'Ofab Martial Artist Body Armor', 'body', 264341, 264342, 0),
|
||||
('Martial Artist', 'Ofab Martial Artist Boots', 'boots', 264347, 264348, 0),
|
||||
('Martial Artist', 'Ofab Martial Artist Pants', 'pants', 264353, 264354, 0),
|
||||
('Martial Artist', 'Ofab Martial Artist Sleeves', 'sleeves', 264335, 264336, 0),
|
||||
('Martial Artist', 'Ofab Martial Artist Gloves', 'gloves', 264329, 264330, 0),
|
||||
('Martial Artist', 'Ofab Martial Artist Helmet', 'helmet', 264323, 264324, 0),
|
||||
('Martial Artist', 'Engelen''s Ring of Damage', 'ring', 267572, 267573, 0),
|
||||
('Meta-Physicist', 'Ofab Metaphysicist Body Armor', 'body', 264377, 264378, 0),
|
||||
('Meta-Physicist', 'Ofab Metaphysicist Boots', 'boots', 264383, 264384, 0),
|
||||
('Meta-Physicist', 'Ofab Metaphysicist Pants', 'pants', 264389, 264390, 0),
|
||||
('Meta-Physicist', 'Ofab Metaphysicist Sleeves', 'sleeves', 264371, 264372, 0),
|
||||
('Meta-Physicist', 'Ofab Metaphysicist Gloves', 'gloves', 264365, 264366, 0),
|
||||
('Meta-Physicist', 'Ofab Metaphysicist Headgear', 'helmet', 264359, 264360, 0),
|
||||
('Meta-Physicist', 'XtremTech''s Ring of Casting', 'ring', 268305, 268306, 0),
|
||||
('Nano-Technician', 'Ofab Nano Technician Body Armor', 'body', 264413, 264414, 0),
|
||||
('Nano-Technician', 'Ofab Nano Technician Boots', 'boots', 264419, 264420, 0),
|
||||
('Nano-Technician', 'Ofab Nano Technician Pants', 'pants', 264425, 264426, 0),
|
||||
('Nano-Technician', 'Ofab Nano Technician Sleeves', 'sleeves', 264407, 264408, 0),
|
||||
('Nano-Technician', 'Ofab Nano Technician Gloves', 'gloves', 264401, 264402, 0),
|
||||
('Nano-Technician', 'Ofab Nano Technician Helmet', 'helmet', 264395, 264396, 0),
|
||||
('Nano-Technician', 'NTs'' Ring of NanoTechnic', 'ring', 267574, 267575, 0),
|
||||
('Soldier', 'Ofab Soldier Body Armor', 'body', 264449, 264450, 0),
|
||||
('Soldier', 'Ofab Soldier Boots', 'boots', 264455, 264456, 0),
|
||||
('Soldier', 'Ofab Soldier Pants', 'pants', 264461, 264462, 0),
|
||||
('Soldier', 'Ofab Soldier Sleeves', 'sleeves', 264443, 264444, 0),
|
||||
('Soldier', 'Ofab Soldier Gloves', 'gloves', 264437, 264438, 0),
|
||||
('Soldier', 'Ofab Soldier Helmet', 'helmet', 264431, 264432, 0),
|
||||
('Soldier', 'Soldiers'' Ring of Focus', 'ring', 267578, 267579, 0),
|
||||
('Trader', 'Ofab Trader Body Armor', 'body', 264269, 264270, 0),
|
||||
('Trader', 'Ofab Trader Boots', 'boots', 264281, 264282, 0),
|
||||
('Trader', 'Ofab Trader Pants', 'pants', 264275, 264276, 0),
|
||||
('Trader', 'Ofab Trader Sleeves', 'sleeves', 264263, 264264, 0),
|
||||
('Trader', 'Ofab Trader Gloves', 'gloves', 264257, 264258, 0),
|
||||
('Trader', 'Ofab Trader Helmet', 'helmet', 264251, 264252, 0),
|
||||
('Trader', 'Baffle''s Ring of Fling', 'ring', 267580, 267581, 0),
|
||||
('Shade', 'Ofab Shade Body Armor', 'body', 264557, 264558, 0),
|
||||
('Shade', 'Ofab Shade Boots', 'boots', 264563, 264564, 0),
|
||||
('Shade', 'Ofab Shade Pants', 'pants', 264569, 264570, 0),
|
||||
('Shade', 'Ofab Shade Sleeves', 'sleeves', 264551, 264552, 0),
|
||||
('Shade', 'Ofab Shade Gloves', 'gloves', 264545, 264546, 0),
|
||||
('Shade', 'Ofab Shade Headgear', 'helmet', 264539, 264540, 0),
|
||||
('Shade', 'Shades'' Ring of Shadows', 'ring', 267576, 267577, 0),
|
||||
('Adventurer', 'Improved Ofab Adventurer Body Armor', 'body', 264190, 264191, 1),
|
||||
('Adventurer', 'Improved Ofab Adventurer Boots', 'boots', 264188, 264189, 1),
|
||||
('Adventurer', 'Improved Ofab Adventurer Pants', 'pants', 264186, 264187, 1),
|
||||
('Adventurer', 'Improved Ofab Adventurer Sleeves', 'sleeves', 264192, 264193, 1),
|
||||
('Adventurer', 'Improved Ofab Adventurer Gloves', 'gloves', 264194, 264195, 1),
|
||||
('Adventurer', 'Improved Ofab Adventurer Helmet', 'helmet', 264196, 264197, 1),
|
||||
('Agent', 'Improved Ofab Agent Body Armor', 'body', 264303, 264304, 1),
|
||||
('Agent', 'Improved Ofab Agent Boots', 'boots', 264309, 264310, 1),
|
||||
('Agent', 'Improved Ofab Agent Pants', 'pants', 264315, 264316, 1),
|
||||
('Agent', 'Improved Ofab Agent Sleeves', 'sleeves', 264297, 264298, 1),
|
||||
('Agent', 'Improved Ofab Agent Gloves', 'gloves', 264291, 264292, 1),
|
||||
('Agent', 'Improved Ofab Agent Helmet', 'helmet', 264285, 264286, 1),
|
||||
('Bureaucrat', 'Improved Ofab Bureaucrat Vest', 'body', 264519, 264520, 1),
|
||||
('Bureaucrat', 'Improved Ofab Bureaucrat Boots', 'boots', 264525, 264526, 1),
|
||||
('Bureaucrat', 'Improved Ofab Bureaucrat Pants', 'pants', 264531, 264532, 1),
|
||||
('Bureaucrat', 'Improved Ofab Bureaucrat Sleeves', 'sleeves', 264513, 264514, 1),
|
||||
('Bureaucrat', 'Improved Ofab Bureaucrat Gloves', 'gloves', 264507, 264508, 1),
|
||||
('Bureaucrat', 'Improved Ofab Bureaucrat Headgear', 'helmet', 264501, 264502, 1),
|
||||
('Doctor', 'Improved Ofab Doctor Body', 'body', 264666, 264667, 1),
|
||||
('Doctor', 'Improved Ofab Doctor Boots', 'boots', 264672, 264673, 1),
|
||||
('Doctor', 'Improved Ofab Doctor Pants', 'pants', 264678, 264679, 1),
|
||||
('Doctor', 'Improved Ofab Doctor Sleeves', 'sleeves', 264660, 264661, 1),
|
||||
('Doctor', 'Improved Ofab Doctor Gloves', 'gloves', 264654, 264655, 1),
|
||||
('Doctor', 'Improved Ofab Doctor Helmet', 'helmet', 264648, 264649, 1),
|
||||
('Enforcer', 'Improved Ofab Enforcer Breastplate', 'body', 264225, 264226, 1),
|
||||
('Enforcer', 'Improved Ofab Enforcer Boots', 'boots', 264219, 264220, 1),
|
||||
('Enforcer', 'Improved Ofab Enforcer Pants', 'pants', 264213, 264214, 1),
|
||||
('Enforcer', 'Improved Ofab Enforcer Sleeves', 'sleeves', 264231, 264232, 1),
|
||||
('Enforcer', 'Improved Ofab Enforcer Gauntlets', 'gloves', 264237, 264238, 1),
|
||||
('Enforcer', 'Improved Ofab Enforcer Helmet', 'helmet', 264243, 264244, 1),
|
||||
('Engineer', 'Improved Ofab Engineer Body', 'body', 264594, 264595, 1),
|
||||
('Engineer', 'Improved Ofab Engineer Boots', 'boots', 264600, 264601, 1),
|
||||
('Engineer', 'Improved Ofab Engineer Pants', 'pants', 264606, 264607, 1),
|
||||
('Engineer', 'Improved Ofab Engineer Sleeves', 'sleeves', 264585, 264586, 1),
|
||||
('Engineer', 'Improved Ofab Engineer Gloves', 'gloves', 264579, 264580, 1),
|
||||
('Engineer', 'Improved Ofab Engineer Helmet', 'helmet', 264573, 264574, 1),
|
||||
('Fixer', 'Improved Ofab Fixer Body Armor', 'body', 264483, 264484, 1),
|
||||
('Fixer', 'Improved Ofab Fixer Boots', 'boots', 264489, 264490, 1),
|
||||
('Fixer', 'Improved Ofab Fixer Pants', 'pants', 264495, 264496, 1),
|
||||
('Fixer', 'Improved Ofab Fixer Sleeves', 'sleeves', 264477, 264478, 1),
|
||||
('Fixer', 'Improved Ofab Fixer Gloves', 'gloves', 264471, 264472, 1),
|
||||
('Fixer', 'Improved Ofab Fixer Helmet', 'helmet', 264465, 264466, 1),
|
||||
('Keeper', 'Improved Ofab Keeper Body Armor', 'body', 264630, 264631, 1),
|
||||
('Keeper', 'Improved Ofab Keeper Boots', 'boots', 264636, 264637, 1),
|
||||
('Keeper', 'Improved Ofab Keeper Pants', 'pants', 264642, 264643, 1),
|
||||
('Keeper', 'Improved Ofab Keeper Sleeves', 'sleeves', 264624, 264625, 1),
|
||||
('Keeper', 'Improved Ofab Keeper Gloves', 'gloves', 264618, 264619, 1),
|
||||
('Keeper', 'Improved Ofab Keeper Helmet', 'helmet', 264612, 264613, 1),
|
||||
('Martial Artist', 'Improved Ofab Martial Artist Body Armor', 'body', 264339, 264340, 1),
|
||||
('Martial Artist', 'Improved Ofab Martial Artist Boots', 'boots', 264345, 264346, 1),
|
||||
('Martial Artist', 'Improved Ofab Martial Artist Pants', 'pants', 264351, 264352, 1),
|
||||
('Martial Artist', 'Improved Ofab Martial Artist Sleeves', 'sleeves', 264333, 264334, 1),
|
||||
('Martial Artist', 'Improved Ofab Martial Artist Gloves', 'gloves', 264327, 264328, 1),
|
||||
('Martial Artist', 'Improved Ofab Martial Artist Helmet', 'helmet', 264321, 264322, 1),
|
||||
('Meta-Physicist', 'Improved Ofab Metaphysicist Body Armor', 'body', 264375, 264376, 1),
|
||||
('Meta-Physicist', 'Improved Ofab Metaphysicist Boots', 'boots', 264381, 264382, 1),
|
||||
('Meta-Physicist', 'Improved Ofab Metaphysicist Pants', 'pants', 264387, 264388, 1),
|
||||
('Meta-Physicist', 'Improved Ofab Metaphysicist Sleeves', 'sleeves', 264369, 264370, 1),
|
||||
('Meta-Physicist', 'Improved Ofab Metaphysicist Gloves', 'gloves', 264363, 264364, 1),
|
||||
('Meta-Physicist', 'Improved Ofab Metaphysicist Headgear', 'helmet', 264357, 264358, 1),
|
||||
('Nano-Technician', 'Improved Ofab Nano Technician Body Armor', 'body', 264411, 264412, 1),
|
||||
('Nano-Technician', 'Improved Ofab Nano Technician Boots', 'boots', 264417, 264418, 1),
|
||||
('Nano-Technician', 'Improved Ofab Nano Technician Pants', 'pants', 264423, 264424, 1),
|
||||
('Nano-Technician', 'Improved Ofab Nano Technician Sleeves', 'sleeves', 264405, 264406, 1),
|
||||
('Nano-Technician', 'Improved Ofab Nano Technician Gloves', 'gloves', 264399, 264400, 1),
|
||||
('Nano-Technician', 'Improved Ofab Nano Technician Helmet', 'helmet', 264393, 264394, 1),
|
||||
('Soldier', 'Improved Ofab Soldier Body Armor', 'body', 264447, 264448, 1),
|
||||
('Soldier', 'Improved Ofab Soldier Boots', 'boots', 264453, 264454, 1),
|
||||
('Soldier', 'Improved Ofab Soldier Pants', 'pants', 264459, 264460, 1),
|
||||
('Soldier', 'Improved Ofab Soldier Sleeves', 'sleeves', 264441, 264442, 1),
|
||||
('Soldier', 'Improved Ofab Soldier Gloves', 'gloves', 264435, 264436, 1),
|
||||
('Soldier', 'Improved Ofab Soldier Helmet', 'helmet', 264429, 264430, 1),
|
||||
('Trader', 'Improved Ofab Trader Body Armor', 'body', 264267, 264268, 1),
|
||||
('Trader', 'Improved Ofab Trader Boots', 'boots', 264279, 264280, 1),
|
||||
('Trader', 'Improved Ofab Trader Pants', 'pants', 264273, 264274, 1),
|
||||
('Trader', 'Improved Ofab Trader Sleeves', 'sleeves', 264261, 264262, 1),
|
||||
('Trader', 'Improved Ofab Trader Gloves', 'gloves', 264255, 264256, 1),
|
||||
('Trader', 'Improved Ofab Trader Helmet', 'helmet', 264249, 264250, 1),
|
||||
('Shade', 'Improved Ofab Shade Body Armor', 'body', 264555, 264556, 1),
|
||||
('Shade', 'Improved Ofab Shade Boots', 'boots', 264561, 264562, 1),
|
||||
('Shade', 'Improved Ofab Shade Pants', 'pants', 264567, 264568, 1),
|
||||
('Shade', 'Improved Ofab Shade Sleeves', 'sleeves', 264549, 264550, 1),
|
||||
('Shade', 'Improved Ofab Shade Gloves', 'gloves', 264543, 264544, 1),
|
||||
('Shade', 'Improved Ofab Shade Headgear', 'helmet', 264537, 264538, 1),
|
||||
('Adventurer', 'Penultimate Ofab Adventurer Body Armor', 'body', 264178, 264179, 2),
|
||||
('Adventurer', 'Penultimate Ofab Adventurer Boots', 'boots', 264176, 264177, 2),
|
||||
('Adventurer', 'Penultimate Ofab Adventurer Pants', 'pants', 264174, 264175, 2),
|
||||
('Adventurer', 'Penultimate Ofab Adventurer Sleeves', 'sleeves', 264180, 264181, 2),
|
||||
('Adventurer', 'Penultimate Ofab Adventurer Gloves', 'gloves', 264182, 264183, 2),
|
||||
('Adventurer', 'Penultimate Ofab Adventurer Helmet', 'helmet', 264184, 264185, 2),
|
||||
('Agent', 'Penultimate Ofab Agent Body Armor', 'body', 264301, 264302, 2),
|
||||
('Agent', 'Penultimate Ofab Agent Boots', 'boots', 264307, 264308, 2),
|
||||
('Agent', 'Penultimate Ofab Agent Pants', 'pants', 264313, 264314, 2),
|
||||
('Agent', 'Penultimate Ofab Agent Sleeves', 'sleeves', 264295, 264296, 2),
|
||||
('Agent', 'Penultimate Ofab Agent Gloves', 'gloves', 264289, 264290, 2),
|
||||
('Agent', 'Penultimate Ofab Agent Helmet', 'helmet', 264283, 264284, 2),
|
||||
('Bureaucrat', 'Penultimate Ofab Bureaucrat Vest', 'body', 264517, 264518, 2),
|
||||
('Bureaucrat', 'Penultimate Ofab Bureaucrat Boots', 'boots', 264523, 264524, 2),
|
||||
('Bureaucrat', 'Penultimate Ofab Bureaucrat Pants', 'pants', 264529, 264530, 2),
|
||||
('Bureaucrat', 'Penultimate Ofab Bureaucrat Sleeves', 'sleeves', 264511, 264512, 2),
|
||||
('Bureaucrat', 'Penultimate Ofab Bureaucrat Gloves', 'gloves', 264505, 264506, 2),
|
||||
('Bureaucrat', 'Penultimate Ofab Bureaucrat Headgear', 'helmet', 264499, 264500, 2),
|
||||
('Doctor', 'Penultimate Ofab Doctor Body', 'body', 264664, 264665, 2),
|
||||
('Doctor', 'Penultimate Ofab Doctor Boots', 'boots', 264670, 264671, 2),
|
||||
('Doctor', 'Penultimate Ofab Doctor Pants', 'pants', 264676, 264677, 2),
|
||||
('Doctor', 'Penultimate Ofab Doctor Sleeves', 'sleeves', 264658, 264659, 2),
|
||||
('Doctor', 'Penultimate Ofab Doctor Gloves', 'gloves', 264652, 264653, 2),
|
||||
('Doctor', 'Penultimate Ofab Doctor Helmet', 'helmet', 264646, 264647, 2),
|
||||
('Enforcer', 'Penultimate Ofab Enforcer Breastplate', 'body', 264227, 264228, 2),
|
||||
('Enforcer', 'Penultimate Ofab Enforcer Boots', 'boots', 264221, 264222, 2),
|
||||
('Enforcer', 'Penultimate Ofab Enforcer Pants', 'pants', 264215, 264216, 2),
|
||||
('Enforcer', 'Penultimate Ofab Enforcer Sleeves', 'sleeves', 264233, 264234, 2),
|
||||
('Enforcer', 'Penultimate Ofab Enforcer Gauntlets', 'gloves', 264239, 264240, 2),
|
||||
('Enforcer', 'Penultimate Ofab Enforcer Helmet', 'helmet', 264245, 264246, 2),
|
||||
('Engineer', 'Penultimate Ofab Engineer Body', 'body', 264592, 264593, 2),
|
||||
('Engineer', 'Penultimate Ofab Engineer Boots', 'boots', 264598, 264599, 2),
|
||||
('Engineer', 'Penultimate Ofab Engineer Pants', 'pants', 264604, 264605, 2),
|
||||
('Engineer', 'Penultimate Ofab Engineer Sleeves', 'sleeves', 264583, 264584, 2),
|
||||
('Engineer', 'Penultimate Ofab Engineer Gloves', 'gloves', 264577, 264578, 2),
|
||||
('Engineer', 'Penultimate Ofab Engineer Helmet', 'helmet', 264571, 264572, 2),
|
||||
('Fixer', 'Penultimate Ofab Fixer Body Armor', 'body', 264481, 264482, 2),
|
||||
('Fixer', 'Penultimate Ofab Fixer Boots', 'boots', 264487, 264488, 2),
|
||||
('Fixer', 'Penultimate Ofab Fixer Pants', 'pants', 264493, 264494, 2),
|
||||
('Fixer', 'Penultimate Ofab Fixer Sleeves', 'sleeves', 264475, 264476, 2),
|
||||
('Fixer', 'Penultimate Ofab Fixer Gloves', 'gloves', 264469, 264470, 2),
|
||||
('Fixer', 'Penultimate Ofab Fixer Helmet', 'helmet', 264463, 264464, 2),
|
||||
('Keeper', 'Penultimate Ofab Keeper Body Armor', 'body', 264628, 264629, 2),
|
||||
('Keeper', 'Penultimate Ofab Keeper Boots', 'boots', 264634, 264635, 2),
|
||||
('Keeper', 'Penultimate Ofab Keeper Pants', 'pants', 264640, 264641, 2),
|
||||
('Keeper', 'Penultimate Ofab Keeper Sleeves', 'sleeves', 264622, 264623, 2),
|
||||
('Keeper', 'Penultimate Ofab Keeper Gloves', 'gloves', 264616, 264617, 2),
|
||||
('Keeper', 'Penultimate Ofab Keeper Helmet', 'helmet', 264610, 264611, 2),
|
||||
('Martial Artist', 'Penultimate Ofab Martial Artist Body Armor', 'body', 264337, 264338, 2),
|
||||
('Martial Artist', 'Penultimate Ofab Martial Artist Boots', 'boots', 264343, 264344, 2),
|
||||
('Martial Artist', 'Penultimate Ofab Martial Artist Pants', 'pants', 264349, 264350, 2),
|
||||
('Martial Artist', 'Penultimate Ofab Martial Artist Sleeves', 'sleeves', 264331, 264332, 2),
|
||||
('Martial Artist', 'Penultimate Ofab Martial Artist Gloves', 'gloves', 264325, 264326, 2),
|
||||
('Martial Artist', 'Penultimate Ofab Martial Artist Helmet', 'helmet', 264319, 264320, 2),
|
||||
('Meta-Physicist', 'Penultimate Ofab Metaphysicist Body Armor', 'body', 264373, 264374, 2),
|
||||
('Meta-Physicist', 'Penultimate Ofab Metaphysicist Boots', 'boots', 264379, 264380, 2),
|
||||
('Meta-Physicist', 'Penultimate Ofab Metaphysicist Pants', 'pants', 264385, 264386, 2),
|
||||
('Meta-Physicist', 'Penultimate Ofab Metaphysicist Sleeves', 'sleeves', 264367, 264368, 2),
|
||||
('Meta-Physicist', 'Penultimate Ofab Metaphysicist Gloves', 'gloves', 264361, 264362, 2),
|
||||
('Meta-Physicist', 'Penultimate Ofab Metaphysicist Headgear', 'helmet', 264355, 264356, 2),
|
||||
('Nano-Technician', 'Penultimate Ofab Nano Technician Body Armor', 'body', 264409, 264410, 2),
|
||||
('Nano-Technician', 'Penultimate Ofab Nano Technician Boots', 'boots', 264415, 264416, 2),
|
||||
('Nano-Technician', 'Penultimate Ofab Nano Technician Pants', 'pants', 264421, 264422, 2),
|
||||
('Nano-Technician', 'Penultimate Ofab Nano Technician Sleeves', 'sleeves', 264403, 264404, 2),
|
||||
('Nano-Technician', 'Penultimate Ofab Nano Technician Gloves', 'gloves', 264397, 264398, 2),
|
||||
('Nano-Technician', 'Penultimate Ofab Nano Technician Helmet', 'helmet', 264391, 264392, 2),
|
||||
('Soldier', 'Penultimate Ofab Soldier Body Armor', 'body', 264445, 264446, 2),
|
||||
('Soldier', 'Penultimate Ofab Soldier Boots', 'boots', 264451, 264452, 2),
|
||||
('Soldier', 'Penultimate Ofab Soldier Pants', 'pants', 264457, 264458, 2),
|
||||
('Soldier', 'Penultimate Ofab Soldier Sleeves', 'sleeves', 264439, 264440, 2),
|
||||
('Soldier', 'Penultimate Ofab Soldier Gloves', 'gloves', 264433, 264434, 2),
|
||||
('Soldier', 'Penultimate Ofab Soldier Helmet', 'helmet', 264427, 264428, 2),
|
||||
('Trader', 'Penultimate Ofab Trader Body Armor', 'body', 264265, 264266, 2),
|
||||
('Trader', 'Penultimate Ofab Trader Boots', 'boots', 264277, 264278, 2),
|
||||
('Trader', 'Penultimate Ofab Trader Pants', 'pants', 264271, 264272, 2),
|
||||
('Trader', 'Penultimate Ofab Trader Sleeves', 'sleeves', 264259, 264260, 2),
|
||||
('Trader', 'Penultimate Ofab Trader Gloves', 'gloves', 264253, 264254, 2),
|
||||
('Trader', 'Penultimate Ofab Trader Helmet', 'helmet', 264247, 264248, 2),
|
||||
('Shade', 'Penultimate Ofab Shade Body Armor', 'body', 264553, 264554, 2),
|
||||
('Shade', 'Penultimate Ofab Shade Boots', 'boots', 264559, 264560, 2),
|
||||
('Shade', 'Penultimate Ofab Shade Pants', 'pants', 264565, 264566, 2),
|
||||
('Shade', 'Penultimate Ofab Shade Sleeves', 'sleeves', 264547, 264548, 2),
|
||||
('Shade', 'Penultimate Ofab Shade Gloves', 'gloves', 264541, 264542, 2),
|
||||
('Shade', 'Penultimate Ofab Shade Headgear', 'helmet', 264535, 264536, 2),
|
||||
('Adventurer', 'Special Edition Ofab Adventurer Helmet', 'specialhelmet', 267353, 267354, 3),
|
||||
('Agent', 'Special Edition Ofab Agent Helmet', 'specialhelmet', 267356, 267357, 3),
|
||||
('Bureaucrat', 'Special Edition Ofab Bureaucrat Headgear', 'specialhelmet', 267363, 267364, 3),
|
||||
('Doctor', 'Special Edition Ofab Doctor Helmet', 'specialhelmet', 267351, 267352, 3),
|
||||
('Enforcer', 'Special Edition Ofab Enforcer Helmet', 'specialhelmet', 267365, 267366, 3),
|
||||
('Engineer', 'Special Edition Ofab Engineer Helmet', 'specialhelmet', 267369, 267370, 3),
|
||||
('Fixer', 'Special Edition Ofab Fixer Helmet', 'specialhelmet', 267367, 267368, 3),
|
||||
('Keeper', 'Special Edition Ofab Keeper Helmet', 'specialhelmet', 267375, 267376, 3),
|
||||
('Martial Artist', 'Special Edition Ofab Martial Artist Helmet', 'specialhelmet', 267371, 267372, 3),
|
||||
('Meta-Physicist', 'Special Edition Ofab Metaphysicist Headgear', 'specialhelmet', 267373, 267374, 3),
|
||||
('Nano-Technician', 'Special Edition Ofab Nano Technician Helmet', 'specialhelmet', 267383, 267384, 3),
|
||||
('Soldier', 'Special Edition Ofab Soldier Helmet', 'specialhelmet', 267379, 267380, 3),
|
||||
('Trader', 'Special Edition Ofab Trader Helmet', 'specialhelmet', 267381, 267382, 3),
|
||||
('Shade', 'Special Edition Ofab Shade Headgear', 'specialhelmet', 267377, 267378, 3),
|
||||
('Adventurer', 'OFAB Adventurer Protective Gear', 'back', 267931, 267931, 3),
|
||||
('Agent', 'OFAB Agent Protective Gear', 'back', 267509, 267509, 3),
|
||||
('Bureaucrat', 'OFAB Bureaucrat Protective Gear', 'back', 267932, 267932, 3),
|
||||
('Doctor', 'OFAB Doctor Protective Gear', 'back', 267933, 267933, 3),
|
||||
('Enforcer', 'OFAB Enforcer Protective Gear', 'back', 267510, 267510, 3),
|
||||
('Engineer', 'OFAB Engineer Protective Gear', 'back', 267936, 267936, 3),
|
||||
('Fixer', 'OFAB Fixer Protective Gear', 'back', 267512, 267512, 3),
|
||||
('Keeper', 'OFAB Keeper Protective Gear', 'back', 267513, 267513, 3),
|
||||
('Martial Artist', 'OFAB Martial Artist Protective Gear', 'back', 267937, 267937, 3),
|
||||
('Meta-Physicist', 'OFAB Meta-Physicist Protective Gear', 'back', 267515, 267515, 3),
|
||||
('Nano-Technician', 'OFAB Nano Technician Protective Gear', 'back', 267938, 267938, 3),
|
||||
('Soldier', 'OFAB Soldier Protective Gear', 'back', 267939, 267939, 3),
|
||||
('Trader', 'OFAB Trader Protective Gear', 'back', 267935, 267935, 3),
|
||||
('Shade', 'OFAB Shade Protective Gear', 'back', 267934, 267934, 3),
|
||||
('Adventurer', 'OFAB Adventurer Shoulder Wear', 'shoulder', 301693, 301693, 3),
|
||||
('Agent', 'OFAB Agent Shoulder Wear', 'shoulder', 301698, 301698, 3),
|
||||
('Bureaucrat', 'OFAB Bureaucrat Shoulder Wear', 'shoulder', 301696, 301696, 3),
|
||||
('Doctor', 'OFAB Doctor Shoulder Wear', 'shoulder', 301697, 301697, 3),
|
||||
('Enforcer', 'OFAB Enforcer Shoulder Wear', 'shoulder', 267511, 267511, 3),
|
||||
('Engineer', 'OFAB Engineer Shoulder Wear', 'shoulder', 268003, 268003, 3),
|
||||
('Fixer', 'OFAB Fixer Shoulder Wear', 'shoulder', 301694, 301694, 3),
|
||||
('Keeper', 'OFAB Keeper Shoulder Wear', 'shoulder', 267514, 267514, 3),
|
||||
('Martial Artist', 'OFAB Martial Artist Shoulder Wear', 'shoulder', 268004, 268004, 3),
|
||||
('Meta-Physicist', 'OFAB Metaphysicist Shoulder Wear', 'shoulder', 301695, 301695, 3),
|
||||
('Nano-Technician', 'OFAB Nano Technician Shoulder Wear', 'shoulder', 268081, 268081, 3),
|
||||
('Soldier', 'OFAB Soldier Shoulder Wear', 'shoulder', 268186, 268186, 3),
|
||||
('Trader', 'OFAB Trader Shoulder Wear', 'shoulder', 268006, 268006, 3),
|
||||
('Shade', 'OFAB Shade Shoulder Wear', 'shoulder', 268005, 268005, 3);
|
||||
DROP TABLE IF EXISTS ofab_armor_cost;
|
||||
CREATE TABLE ofab_armor_cost
|
||||
(
|
||||
slot varchar(30) NOT NULL,
|
||||
ql INT NOT NULL,
|
||||
vp INT NOT NULL
|
||||
);
|
||||
INSERT INTO ofab_armor_cost (slot, ql, vp)
|
||||
VALUES ('ring', 1, 100),
|
||||
('body', 25, 78),
|
||||
('boots', 25, 73),
|
||||
('pants', 25, 73),
|
||||
('sleeves', 25, 49),
|
||||
('gloves', 25, 49),
|
||||
('helmet', 25, 78),
|
||||
('ring', 25, 253),
|
||||
('body', 50, 323),
|
||||
('boots', 50, 302),
|
||||
('pants', 50, 302),
|
||||
('sleeves', 50, 202),
|
||||
('gloves', 50, 202),
|
||||
('helmet', 50, 323),
|
||||
('ring', 50, 741),
|
||||
('body', 75, 736),
|
||||
('boots', 75, 690),
|
||||
('pants', 75, 690),
|
||||
('sleeves', 75, 460),
|
||||
('gloves', 75, 460),
|
||||
('helmet', 75, 736),
|
||||
('ring', 75, 1563),
|
||||
('body', 100, 1316),
|
||||
('boots', 100, 1234),
|
||||
('pants', 100, 1234),
|
||||
('sleeves', 100, 823),
|
||||
('gloves', 100, 823),
|
||||
('helmet', 100, 1316),
|
||||
('ring', 100, 2719),
|
||||
('body', 125, 2064),
|
||||
('boots', 125, 1935),
|
||||
('pants', 125, 1935),
|
||||
('sleeves', 125, 1290),
|
||||
('gloves', 125, 1290),
|
||||
('helmet', 125, 2064),
|
||||
('ring', 125, 4210),
|
||||
('body', 150, 2980),
|
||||
('boots', 150, 2794),
|
||||
('pants', 150, 2794),
|
||||
('sleeves', 150, 1863),
|
||||
('gloves', 150, 1863),
|
||||
('helmet', 150, 2980),
|
||||
('ring', 150, 6035),
|
||||
('body', 175, 4064),
|
||||
('boots', 175, 3810),
|
||||
('pants', 175, 3810),
|
||||
('sleeves', 175, 2540),
|
||||
('gloves', 175, 2540),
|
||||
('helmet', 175, 4064),
|
||||
('ring', 175, 8193),
|
||||
('body', 200, 5316),
|
||||
('boots', 200, 4984),
|
||||
('pants', 200, 4984),
|
||||
('sleeves', 200, 3322),
|
||||
('gloves', 200, 3322),
|
||||
('helmet', 200, 5316),
|
||||
('ring', 200, 10687),
|
||||
('body', 225, 6735),
|
||||
('boots', 225, 6313),
|
||||
('pants', 225, 6313),
|
||||
('sleeves', 225, 4209),
|
||||
('gloves', 225, 4209),
|
||||
('helmet', 225, 6735),
|
||||
('ring', 225, 13513),
|
||||
('body', 250, 8321),
|
||||
('boots', 250, 7802),
|
||||
('pants', 250, 7802),
|
||||
('sleeves', 250, 5201),
|
||||
('gloves', 250, 5201),
|
||||
('helmet', 250, 8321),
|
||||
('ring', 250, 16674),
|
||||
('body', 275, 10077),
|
||||
('boots', 275, 9446),
|
||||
('pants', 275, 9446),
|
||||
('sleeves', 275, 6298),
|
||||
('gloves', 275, 6298),
|
||||
('helmet', 275, 10077),
|
||||
('ring', 275, 20171),
|
||||
('body', 300, 12000),
|
||||
('boots', 300, 11250),
|
||||
('pants', 300, 11250),
|
||||
('sleeves', 300, 7500),
|
||||
('gloves', 300, 7500),
|
||||
('helmet', 300, 12000),
|
||||
('ring', 300, 24000),
|
||||
('specialhelmet', 300, 30000),
|
||||
('back', 300, 30000),
|
||||
('shoulder', 300, 12000);
|
||||
DROP TABLE IF EXISTS ofab_armor_type;
|
||||
CREATE TABLE ofab_armor_type
|
||||
(
|
||||
type SMALLINT NOT NULL,
|
||||
profession VARCHAR(30) NOT NULL
|
||||
);
|
||||
INSERT INTO ofab_armor_type (type, profession)
|
||||
VALUES (64, 'Doctor'),
|
||||
(64, 'Engineer'),
|
||||
(64, 'Keeper'),
|
||||
(64, 'Meta-Physicist'),
|
||||
(295, 'Adventurer'),
|
||||
(295, 'Enforcer'),
|
||||
(295, 'Martial Artist'),
|
||||
(295, 'Soldier'),
|
||||
(468, 'Bureaucrat'),
|
||||
(468, 'Nano-Technician'),
|
||||
(468, 'Trader'),
|
||||
(935, 'Agent'),
|
||||
(935, 'Fixer'),
|
||||
(935, 'Shade');
|
||||
@@ -0,0 +1,39 @@
|
||||
# noinspection LongLineForFile
|
||||
|
||||
DROP TABLE IF EXISTS ofab_weapons;
|
||||
CREATE TABLE ofab_weapons
|
||||
(
|
||||
type SMALLINT NOT NULL,
|
||||
name VARCHAR(255) NOT NULL
|
||||
);
|
||||
INSERT INTO ofab_weapons (type, name)
|
||||
VALUES (18, 'Mongoose'),
|
||||
(18, 'Viper'),
|
||||
(18, 'Wolf'),
|
||||
(34, 'Bear'),
|
||||
(34, 'Panther'),
|
||||
(687, 'Cobra'),
|
||||
(687, 'Shark'),
|
||||
(687, 'Silverback'),
|
||||
(812, 'Hawk'),
|
||||
(812, 'Peregrine'),
|
||||
(812, 'Tiger');
|
||||
DROP TABLE IF EXISTS ofab_weapons_cost;
|
||||
CREATE TABLE ofab_weapons_cost
|
||||
(
|
||||
ql SMALLINT NOT NULL,
|
||||
vp SMALLINT NOT NULL
|
||||
);
|
||||
INSERT INTO ofab_weapons_cost (ql, vp)
|
||||
VALUES (25, 117),
|
||||
(50, 488),
|
||||
(75, 1110),
|
||||
(100, 1988),
|
||||
(125, 2365),
|
||||
(150, 3497),
|
||||
(175, 5384),
|
||||
(200, 7987),
|
||||
(225, 8617),
|
||||
(250, 10509),
|
||||
(275, 13665),
|
||||
(300, 18000);
|
||||
Reference in New Issue
Block a user