FANDOM


--[[Category:Flower Knight description modules]]
-- This data module holds all info needed to render an ability string.
 
local abilityData = {}
 
abilityData.MiscData = false
 
abilityData.targets = {
    allies = {
        [1] = "oneself",
        [2] = "2 party members, oneself included,",
        [3] = "3 party members, oneself included,",
        [4] = "4 party members, oneself included,",
        [5] = "party members",
        ["all"] = "party members",
        ["other"] = 'XX party members',
    },
    enemies = {
        [1] = "1 enemy",
        [2] = "2 enemies",
        [3] = "3 enemies",
        [4] = "4 enemies",
        [5] = "enemies",
        ["all"] = "all enemies",
        ["other"] = 'XX enemies',
    },
    -- Used for skill_rate_down, etc.
    skillEnemies = {
        [1] = "1 skill-using enemy",
        [2] = "2 skill-using enemies",
        [3] = "3 skill-using enemies",
        [4] = "4 skill-using enemies",
        [5] = "skill-using enemies",
        ["all"] = "skill-using enemies",
        ["other"] = 'XX skill-using enemies',
    },
}
 
function abilityData._valTransByTyping(val)
    abilityData._prepMiscData()
    return abilityData.MiscData.typeIDtoInfo[val]['name'] or
        abilityData.MiscData.typeIDtoInfo['Other']['name']
end
 
function abilityData._prepMiscData()
    if not abilityData.MiscData then
        abilityData.MiscData = require('Module:MiscData')
    end
end
 
-- Transforms a value for an ability to prepare it for the description format string.
abilityData.valTrans = {
    allies = function(val) return abilityData.targets['allies'][val] end,
    enemies = function(val) return abilityData.targets['enemies'][val] end,
    skillEnemies = function(val) return abilityData.targets['skillEnemies'][val] end,
    divide100 = function(val) return val / 100.0 end,
    divide2 = function(val) return val * 0.5 end,
    divide3 = function(val) return val / 3.0 end,
    minus100 = function(val) return val - 100 end,
    fractionOf100 = function(val) return 100.0 / val end,
    add100Divide100 = function(val) return (val + 100) / 100.0 end,
    multBySkillLevel = function(val) return val * (5 - 1) / 100.0 end,
    typing = abilityData._valTransByTyping,
    other = function(val) return val end,
}
 
--Do not transform these values if using the short description.
abilityData.doNotTransformForShortDesc = {
    allies = 1,
    enemies = 1,
    skillEnemies = 1,
}
 
--[[
What follows is a list of *base* ability IDs.
This differs from the unique ability IDs that characters use because characters
have multiple abilities and will feed their own parameters into the base abilities.
 
val0 is usually the main effect value.
When a number of toVal1 (allies/enemies) is involved, val1 is always used for this.
    Even when toVal1 are involved, val1 is often filled in, but not used in the description.
val2 is usually used for upper limits, activation rates, or various formulas for val0.
 
There are multiple kinds of ways the numerical values are transformed.
(none): The number is shown as-is.
allies: The number refers to party members. Use "targets".
enemies: The number refers to enemies. Use "targets".
skillEnemies: The number refers to skill-using enemies. Use "targets".
divide100: Divided by 100.
minus100: The number has 100 subtracted from it.
add100Divide10: (value + 100) / 10.0
multBySkillLevel: (value * (skill level - 1) / 100.0)
typing: Becomes a string based on the typing (Slash, Blunt, etc.)
 
Some notes on specific base ability IDs.
904 is Edelweiss' ability and will need special considerations.
1106 and 1208 are for the Lantana and Pepo Aqua Shadow stages.
    These abilities can target either allies or enemies, but they don't
    store info as to whether it's for the allies or enemies in the values.
    It instead stores it in the Japanese description.
    I instead hand-wave this in the English description.
2003 is for Aqua Shadow King Protea I believe.
3002 is also for Aqua Shadow King Protea.
    val0 is actually the 1st ability's ID: 2003.
2101 is Aqua Shadow Bride Cactus' ability.
2102 is featured in the fights with Aqua Shadow King Protea.
    Only one of those girls has it.
4001 is used in the Swanboat Deck Battles from Whaleship Missions 17 and on.
--]]
abilityData.baseAbilities = {
    -- Ability 0 means there is no ability. Do not remove this element.
    [0] = {"", short="", name="", iconID=0},
    [1] = {"Increases Attack for ${val1} by ${val0}%", short="Atk +${val0}% for ${val1}", iconID=1, name="Atk up", toVal1="allies"},
    [2] = {"Increases Attack for ${val1} up to ${val0}% based on each member's affection", short="Atk + \${val0}% per Aff for ${val1}", name="Atk up", iconID=1, toVal1="allies"},
    [3] = {"Increases Damage for ${val1} against Bosses by ${val0}%", short="Boss Dmg +${val0}% for ${val1}", name="Atk up", iconID=11, pre="boss", toVal1="allies"},
    [4] = {"Increases Attack for ${val1} with ${val2} attribute by ${val0}%", short="Atk +${val0}% for ${val1} ${val2}", iconID=1, name="Atk up", toVal2="typing", forEquip=true,},
    [5] = {"Increases Attack for ${val1} by ${val0}% if the battle starts with the Light Gauge at least ${val2}% filled", short="Atk +${val0}% for ${val1} if LG >= ${val2}%", iconID=3, name="Atk up", toVal1="allies"},
    [6] = {"Increases Attack for 1 to 5 party members by ${val0}% based on her Skill Level (1~5)", short="Atk +${val0}% for 1-5 as per Skill Lv", name="Atk up", iconID=6},
    [8] = {"Increases Damage of Skills for ${val1} by ${val0}%", short="Skill Dmg +${val0}% for ${val1}", iconID=13, name="Skill Dmg up", toVal1="allies"},
    [9] = {"Increases Attack for party members of the same attribute by ${val0}%", short="Same Attr Atk +${val0}%", iconID=1, name="Atk up", forEquip=true,},
    [10] = {"Increases Attack for ${val1} by ${val0}% of the party's speed", short="Atk + Spd * ${val0}% for ${val1}", iconID=4, name="Spd to Atk", toVal1="allies", see="Attack up based on Speed"},
    [11] = {"Increases Attack for ${val1} by ${val0}% multiplied by the number of remaining enemies on the field when combat begins", short="Atk + ${val0} * enemy # for ${val1}", iconID=7, name="Atk up by More Enemies", toVal1="allies"},
    [12] = {"An unknown enemy ability. ID: 12, (${val0}, ${val1}, ${val2})", short="Unknown",},
    [13] = {"Increases Attack for ${val1} by ${val0}% at the end of your turn (Up to ${val2}%)", short="Atk +${val0}% after turn for ${val1} (max ${val2}%)", iconID=38, name="Atk up", toVal1="allies"},
    [14] = {"Increases Damage for ${val1} by ${val0}% each turn (Up to ${val2}%)", short="Dmg +${val0}% per turn for ${val1}", iconID=10, name="Dmg up", toVal1="allies", see="Damage Up Based on Turns Passed",},
    [15] = {"Increases Attack for ${val1} with fewer enemies around: By ${val3}% at 3+ → ${val2}% at 2 → ${val0}% at 1", short="Atk +(${val3}, ${val2}, ${val0})% w/less Enemy # for ${val1}", iconID=7, name="Atk up by Less Enemies", toVal1="allies",},
    [16] = {"Increases Attack for ${val1} by ${val0}% per type of flower knight (Up to three times; ability-added types don't work)", short="Atk +(${val0} * min(partner attrs, 3))%", iconID=1, name="Atk up", toVal1="allies",},
    [17] = {"Increases Attack for ${val1} by ${val0}% of each flower knight's own Defense", short="Atk +${val0}% of Def", iconID=1, name="Def to Atk", toVal1="allies", see="Attack up based on Defense",},
    [18] = {"Increases Attack for ${val1} by ${val0}% based on the number of party members at the start of combat", short="Atk +(${val0} * ally #)%", iconID=1, name="Atk up by Ally #", toVal1="allies",},
    [19] = {"If any party member goes below 50% HP, boosts one's own Attack by ${val0}% and Damage by ${val2}% for that battle", short="Ally <50% HP: Own Atk ${val0}%, Dmg ${val2}%", iconID=1, name="Low Ally HP: Power up",},
    [101] = {"Increases Defense for ${val1} by ${val0}%, increases damage reduction when defending by ${val2}%, and allows oneself to resist fainting with 1 HP remaining up to 3 times per battle", short="Def +${val0}% for ${val1}, Reduce Dmg by ${val2}%", iconID=18, name="Def up", toVal1="allies", toVal2="divide100", see="Defense up",},
    [102] = {"Increases Defense for party members of the same attribute by ${val0}%", short="Same Attr Def +${val0}%", iconID=18, name="Def up", forEquip=true,},
    [201] = {"Adds ${val0} to the party's Speed", short="Spd +${val0}", name="Spd up", iconID=24},
    [301] = {"Increases Attack for ${val1} by ${val0}% on turn ${val2}", short="Turn ${val2}: Atk +${val0}% for ${val1}", iconID=2, name="Atk up Once", toVal1="allies"},
    [302] = {"Increases Attack for ${val1} by ${val0}% on and after turn ${val2}", short="Turn ${val2}+: Atk +${val0} for ${val1}", iconID=14, name="Atk up", toVal1="allies"},
    [303] = {"Increases Defense for ${val1} by ${val0}% on turn ${val2}", short="Turn ${val2}: Def +${val0}% for ${val1}", iconID=18, name="Def up", toVal1="enemies", toVal0="minus100"},
    [304] = {"Increases Damage for ${val1} by ${val0}% on turn ${val2}", short="Turn ${val2}: Dmg +${val0}% for ${val1}", iconID=10, name="Dmg up", toVal1="allies"},
    [401] = {"Increases Shine Crystal drop rates for ${val1} by ${val0}%", short="Crystal Drop +${val0}% for ${val1}", iconID=23, name="Shine Drop up", toVal1="allies"},
    [501] = {"Increases Solar Drive's effectiveness by ${val0}%", short="Solar Dmg +${val0}%", name="Solar Dmg up", iconID=23, see="Solar Drive effectiveness up"},
    [602] = {"Takes ${val0}% less Damage from small pests while moving", short="${val0}% Less Dmg from map pests", name="Small Pest Dmg down", iconID=31},
    [701] = {"In a Boss fight, increases Attack for ${val1} by ${val0}%", short="Boss Fight: Atk +${val0} for ${val1}", iconID=9, name="Atk up", pre="boss", toVal1="allies"},
    [801] = {"Starts the subjugation with the Light Gauge ${val0}% filled", short="LG starts at +${val0}", name="Light Gauge", iconID=23},
    [901] = {"Heals ${val0}x more HP from Healing Panels", short="Heal Panels ${val0}x stronger", iconID=30, name="Heal Panel Effect up", toVal0="divide100"},
    [902] = {"Party members Heal ${val0}% HP when encountering a Nest Panel", short="Heal ${val0}% HP at nest", name="Heal at Pest Nest", iconID=31},
    [903] = {"Encountered Cannon Panels will attack ${val0} more pest(s)", short="Cannon targets +${val0}", iconID=35, name="Cannon Shots up", suff="additive_dupe"},
    [904] = {"Increases Attack by ${val0}% when encountering a nest panel (Up to ${val2}%)", short="Nest: Atk +${val0}%", name="Atk up at Pest Nest", iconID=31, see="Attack up when encountering pest nests"},
    [1002] = {"Ignores effects from Speed-altering panels in maps", short="Nullify Spd Panels", name="Ignore Spd Panel", iconID=26},
    [1101] = {"Increases Skill Activation Rate for ${val1} by ${val0}x on turn ${val2}", short="Turn ${val2}: Skill Rate +${val0}x for ${val1}", name="Skill Rate up", iconID=14, toVal1="allies", toVal0="divide100"},
    [1102] = {"Increases Skill Activation Rate for ${val1} up to ${val0}x based on each member's affection", short="Skill Rate +${val0}x for ${val1} as per Aff", iconID=13, name="Skill Rate up", toVal1="allies", toVal0="add100Divide100", see="Skill Activation Rate up based on Affection",},
    [1104] = {"Increases Skill Activation Rate for ${val1} by ${val0}x", short="Skill Rate +${val0} for ${val1}", iconID=13, name="Skill Rate up", toVal1="allies", toVal0="add100Divide100"},
    [1105] = {"Increases Skill Activation Rate for ${val1} by 1.28~1.36x based on one's own Skill Level (1~5)", short="Skill Rate +1.28~1.36x for ${val1} as per Skill Lv", iconID=13, name="Skill Rate up", toVal1="allies", toVal0="add100Divide100", toVal2="multBySkillLevel"},
    [1106] = {"Increases Skill Activation Rate for all teammates by ${val0}x for as many turns as Ability Panels obtained", short="Skill Rate +${val0}x per Ability Panel", iconID=36, name="Skill Rate up", toVal0="add100Divide100"},
    [1201] = {"Counters ${val0}% of the time using ${val2}x of your Defense as Attack Power", short="Ctr ${val0}% of the time w/${val2}x Def as Atk", pre="when_attacked", iconID=21, name="Counter", toVal2="divide100", see="Counter",},
    [1202] = {"Evades enemy attacks at a set rate", short="Evade", name="Evade", iconID=19, see="Evade"},
    [1203] = {"Makes ${val1} Miss ${val0}% of the time", short="Miss +${val0}% for ${val1}", iconID=33, name="Miss Rate up", toVal1="enemies"},
    [1204] = {"Negates Damage ${val0}x for ${val1}", short="Negate Dmg ${val0}x for ${val1}", iconID=20, name="Negate Dmg", toVal1="allies", see="Negate Damage",},
    [1205] = {"Allows ${val1} to also hit the weak point (1.5x damage) to enemies weak to ${val0}", short="Add ${val0} type for ${val1}", iconID=12, name="Add Type", suff="no_sametype_target", toVal1="allies", toVal0="typing", see="Additional Attribute",},
    [1206] = {"Evades enemy attacks ${val0}% of the time for ${val2} turn(s), then ${val1}% of the time afterwards", short="Evade ${val0}% for ${val2} turns, then ${val1}%", name="Evade", iconID=19, see="Evade",},
    [1207] = {"Makes ${val1} Miss ${val0}% of the time", short="Miss +${val0}% for ${val1}", iconID=33, name="Miss Rate up", toVal1="allies"},
    [1208] = {"Increases Evade chance for all teammates by ${val0}% for as many turns as Ability Panels obtained", short="Allies Evade +${val0}% per gotten Panel", name="Evade", iconID=36},
    [1209] = {"After being attacked, increases Skill Activation Rate for ${val1} by ${val0}x on the next turn", short="Hit: Next turn's Skill Rate +${val0}x for ${val1}", iconID=13, name="Skill Rate up When Hit", toVal0="divide100", toVal1="allies"},
    [1210] = {"After being attacked, increases Damage for ${val1} by ${val0}% on the next turn", iconID=10, name="Dmg up When Hit", short="Hit: Next turn's Dmg +${val0}% for ${val1}", toVal1="allies"},
    [1211] = {"An unknown enemy ability. ID: 1211, (${val0}, ${val1}, ${val2})", short="Unknown",},
    [1301] = {"Turns ${val2}-${val0} normal panels into Chocolate Healing Panels", short="Make ${val2}-${val0} Heal Panels", iconID=27, name="Make Heal Panels", pre="start_subj", suff="no_dupe"},
    [1302] = {"Turns ${val2}-${val0} normal panels into Altar Panels", short="Make ${val2}-${val0} Altar Panels", iconID=28, name="Make Altar Panels", pre="start_subj", suff="no_dupe"},
    [1303] = {"Turns ${val0} normal panels into Rainbow Panels which increase Skill Activation Rate by 1.1x and Heal HP for all parties when passed through", short="Make ${val2}-${val0} Rainbow Panels", iconID=29, name="Make Rainbow Panels", pre="start_subj", suff="no_dupe_deck_only"},
    [1401] = {"Increases Attack for ${val1} by ${val0}% each time a party member uses a Skill (Up to ${val2}%)", short="On Ally Skill: Atk +${val0}% for ${val1}", iconID=8, name="Atk up", toVal1="allies"},
    [1402] = {"Increases your Damage to enemies by Current HP / Max HP / ${val0}", short="Dmg + Curr HP / Max HP / ${val0}", name="Dmg up", suff="dmg_up_hp_ratio_ex", iconID=10, toVal0="divide100", see="Attack up based on HP",},
    [1501] = {"Increases Attack for ${val1} by ${val0}% per 100% Solar Drive used (Up to ${val2}%)", short="On Solar: Atk +${val0}% for ${val1}", name="Atk up", iconID=3, toVal1="allies", see="Attack/Damage up with Solar Drive",},
    [1502] = {"Increases Damage for ${val1} by ${val0}% per 100% Solar Drive used (Up to ${val2}%)", short="On Solar: Dmg +${val0}% for ${val1}", name="Dmg up", iconID=3, toVal1="allies", see="Attack/Damage up with Solar Drive",},
    [1701] = {"Increases Critical Activation Rate for ${val1} by ${val0}%", short="Crit Rate +${val0}% for ${val1}", name="Crit Rate up", iconID=15, toVal1="allies", see="Critical Rate up"},
    [1702] = {"Increases Critical Damage for ${val1} by ${val0}%", short="Crit Dmg +${val0}% for ${val1}", iconID=15, name="Crit Dmg up", toVal1="allies"},
    [1703] = {"Increases Critical Damage for ${val1} with ${val2} attribute by ${val0}%", short="Crit Dmg +${val0}% for ${val1} ${val2}", iconID=15, name="Crit Dmg up", toVal1="allies", toVal2="typing", forEquip=true,},
    [1704] = {"Guarantees a Critical Hit for ${val1} on turn 1 and increases Critical Damage by ${val0}%", short="Turn 1: 100% Crit Rate for ${val1}, Crit Dmg +${val0}%", short="1st Turn 100% Crit, Crit Dmg +${val0}%", iconID=15, name="100% Crit", toVal1="allies", see="Critical Rate up",},
    [1801] = {"Reduces Attack for ${val1} by ${val0}%", short="Atk -${val0}% for ${val1}", iconID=32, name="Atk down", toVal1="enemies", see="Attack down",},
    [1802] = {"Reduces Defense for all flower knights by ${val0}%", short="Def -${val0}% for 5", name="Def down",},
    [1803] = {"Reduces Skill Activation Rate for ${val1} by ${val0}%", short="Skill Rate -${val0}% for ${val1}", iconID=34, name="Skill Rate down", toVal1="skillEnemies"},
    [1901] = {"Heals ${val1} for ${val0}% of one's own max HP every turn ${val2}% of the time", short="${val2}% chance for ${val1} to Heal ${val0}% of Max HP", iconID=22, name="Heal", toVal1="allies", see="Turn-Based Heal"},
    [1902] = {"An unknown enemy ability. ID: 1902, (${val0}, ${val1}, ${val2})", short="Unknown",},
    [2001] = {"After attacking an enemy, there's a ${val0}% chance to Act Again", short="${val0}% chance to Act Again", name="Act Twice", iconID=16},
    [2002] = {"After attacking an enemy, there's a ${val0}% chance to Act Again on turn ${val2}", short="Turn ${val2}: ${val0}% chance to Act Again", name="Act Twice", iconID=17},
    [2003] = {"After attacking an enemy, there's a ${val0}% chance for ${val1} to Act Again", short="${val0}% chance to Act Again for ${val1}", name="Act Twice", toVal1="allies", iconID=16},
    [2101] = {"Draws all attacks towards oneself and reduces Damage by 30%. Furthermore, when HP goes to 90% or below, one's Defense becomes 0 and one's Critical Activation Rate becomes 80%", short="Provoke, 30% Dmg Reduce; at <90% HP: Def = 0, Crit Rate +80%", name="Provoke", iconID=36},
    [2102] = {"Reduces Weakness Damage for all party members by 30%", short="Reduce Weakness Dmg by 30%", name="Dmg down", iconID=9},
    [2103] = {"Reduces Damage from non-${val2} characters by ${val0}%", short="Reduce Dmg from non-${val2} by ${val0}%", name="Dmg down", iconID=36, toVal2="typing"},
    [2104] = {"An unknown enemy ability. ID: 2104, (${val0}, ${val1}, ${val2})", short="Unknown",},
    [2105] = {"An unknown enemy ability. ID: 2105, (${val0}, ${val1}, ${val2})", short="Unknown",},
    [2201] = {"Increases Weakness Damage for ${val1} by ${val0}%", short="Weak Dmg +${val0}% for ${val1}", toVal1="allies", iconID=39, name="Weak Dmg up", forEquip=true,},
    [2301] = {"Increases damage reduction when defending by ${val2}%", short="Defend Reduces Dmg by ${val2}%", iconID=18, name="Def up", toVal1="allies", forEquip=true,},
    [2701] = {"Each turn, has a ${val0}% chance to reduce the number of times enemies can act by one. Activates separately with other abilities", short="${val0}% less actions", iconID=40, name="Less actions",},
    [3001] = {"Draws all attacks towards oneself and reduces damage by 30%. Furthermore, when HP goes to 90% or below, one's Defense becomes 0 and one's Critical Activation Rate becomes 80%", short="Provoke, 30% Dmg Reduce; at <90% HP: Def = 0, Crit Rate +80%", name="Provoke", iconID=36},
    [3002] = {"On the next turn after being defeated, the effects of abilities that allow acting multiple times will be disabled", short="After death, cannot Act Again", name="Ability Disable", iconID=36},
    [3003] = {"When one's HP goes to 0, restores the HP of ${val1} by ${val0}% (0 HP members are healed by ${val2}%)", short="When Downed: Heal %${val0}% for ${val1}; Heal ${val2} if Downed", name="Revive", iconID=22, toVal1="allies"},
    [3004] = {"An unknown enemy ability. ID: 3004, (${val0}, ${val1}, ${val2})", short="Unknown",},
    [3005] = {"An unknown enemy ability. ID: 3005, (${val0}, ${val1}, ${val2})", short="Unknown",},
    [4001] = {"Pests take the preemptive strike", short="Pests Act First", name="Initiative", iconID=36},
    [5001] = {"After attacking an enemy, follow up with an attack that uses ${val0}% of the party's Overall Force as Attack power", short="Pursuit on 1 w/${val0}% TP", name="Pursuit", iconID=16, see="Pursuit",},
    [5002] = {"After attacking an enemy, follow up with an attack against ${val1} that uses ${val0}% of the party's Overall Force as Attack power", short="Pursuit on ${val1} w/${val0}% TP", name="Pursuit", iconID=16, see="Pursuit", toVal1="enemies"},
    [7001] = {"Counters ${val0}% of the time using ${val2}x of your Defense as Attack Power, or Super Counters if Defend and Counter activate simultaneously. (Super Counter deals ${val3}x Counter damage)", short="Ctr ${val0}% of the time w/${val2} Def as Atk; Super Ctr does ${val3}x", pre="when_attacked", iconID=21, name="(Super) Counter", toVal2="divide100", toVal3="divide100", see="Super Counter",},
    [7002] = {"If an enemy misses, Intercepts ${val0}% of the time with ${val2}% additional Attack Power", short="Intercept ${val0}% of misses w/+${val2}% Atk", iconID=46, name="Intercept", see="Intercept",},
    [8001] = {"Increases Defend Rate for ${val1} by ${val0}% with ${val2} attribute", short="Defend Rate +${val0}% for ${val1} ${val2}", iconID=18, name="Def Rate up", toVal0="divide100", toVal1="allies", toVal2="typing", forEquip=true,},
    [8002] = {"Increases Defend Rate for ${val1} by ${val0}%", short="Defend Rate +${val0}% for ${val1}", iconID=18, name="Def Rate up", toVal0="divide100", toVal1="allies", forEquip=true,},
}
 
return abilityData
Community content is available under CC-BY-SA unless otherwise noted.