diff --git a/lua/app/config/item.lua b/lua/app/config/item.lua index bcf5eb91..013e3660 100644 --- a/lua/app/config/item.lua +++ b/lua/app/config/item.lua @@ -74,11 +74,47 @@ local item = { ["num"]=1, ["weight"]=100 }, + { + ["type"]=1, + ["id"]=23002, + ["num"]=1, + ["weight"]=100 + }, { ["type"]=1, ["id"]=33001, ["num"]=1, ["weight"]=100 + }, + { + ["type"]=1, + ["id"]=33002, + ["num"]=1, + ["weight"]=100 + }, + { + ["type"]=1, + ["id"]=43001, + ["num"]=1, + ["weight"]=100 + }, + { + ["type"]=1, + ["id"]=43002, + ["num"]=1, + ["weight"]=100 + }, + { + ["type"]=1, + ["id"]=53001, + ["num"]=1, + ["weight"]=100 + }, + { + ["type"]=1, + ["id"]=53002, + ["num"]=1, + ["weight"]=100 } } }, @@ -99,11 +135,23 @@ local item = { ["num"]=1, ["weight"]=100 }, + { + ["type"]=1, + ["id"]=34001, + ["num"]=1, + ["weight"]=100 + }, { ["type"]=1, ["id"]=44001, ["num"]=1, ["weight"]=100 + }, + { + ["type"]=1, + ["id"]=54001, + ["num"]=1, + ["weight"]=100 } } }, diff --git a/lua/app/config/skill_rogue.lua b/lua/app/config/skill_rogue.lua index b8f2df96..919aa503 100644 --- a/lua/app/config/skill_rogue.lua +++ b/lua/app/config/skill_rogue.lua @@ -663,7 +663,7 @@ local skill_rogue = { }, [1200101]={ ["limit_times"]=1, - ["weight"]=2000, + ["weight"]=3000, ["qlt"]=3, ["type"]=2, ["skill_position"]=1, @@ -698,7 +698,7 @@ local skill_rogue = { }, [1200103]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=1, ["parameter"]={ @@ -709,7 +709,7 @@ local skill_rogue = { }, [1200104]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=2, ["skill_position"]=1, @@ -735,7 +735,7 @@ local skill_rogue = { }, [1200105]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=4, ["type"]=14, ["parameter"]={ @@ -755,7 +755,7 @@ local skill_rogue = { }, [1200106]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=9, ["skill_position"]=1, @@ -774,7 +774,7 @@ local skill_rogue = { ["unlock"]=1200105, ["cover_unlock"]=1200105, ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=4, ["type"]=14, ["parameter"]={ @@ -794,7 +794,7 @@ local skill_rogue = { }, [1300100]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=30000, ["qlt"]=4, ["type"]=6, ["skill_position"]=1, @@ -802,7 +802,7 @@ local skill_rogue = { }, [1300101]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=4, ["type"]=12, ["skill_position"]=1, @@ -819,7 +819,7 @@ local skill_rogue = { }, [1300102]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=12, ["skill_position"]=1, @@ -836,7 +836,7 @@ local skill_rogue = { }, [1300103]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=4, ["type"]=1, ["parameter"]={ @@ -849,7 +849,7 @@ local skill_rogue = { ["unlock"]=1300101, ["cover_unlock"]=1300101, ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=12, ["skill_position"]=1, @@ -866,7 +866,7 @@ local skill_rogue = { }, [1300105]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=4, ["type"]=14, ["parameter"]={ @@ -888,7 +888,7 @@ local skill_rogue = { ["unlock"]=1300105, ["cover_unlock"]=1300105, ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=14, ["parameter"]={ @@ -908,7 +908,7 @@ local skill_rogue = { }, [1300107]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=4, ["type"]=12, ["skill_position"]=1, @@ -925,14 +925,14 @@ local skill_rogue = { }, [1300200]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=30000, ["qlt"]=4, ["type"]=6, ["skill_position"]=1 }, [1300201]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=2, ["skill_position"]=1, @@ -950,7 +950,7 @@ local skill_rogue = { }, [1300202]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=12, ["skill_position"]=1, @@ -967,7 +967,7 @@ local skill_rogue = { }, [1300203]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=4, ["type"]=1, ["parameter"]={ @@ -978,7 +978,7 @@ local skill_rogue = { }, [1300204]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=2, ["skill_position"]=1, @@ -996,7 +996,7 @@ local skill_rogue = { }, [1300205]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=4, ["type"]=7, ["parameter"]={ @@ -1008,7 +1008,7 @@ local skill_rogue = { }, [1300206]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=9, ["skill_position"]=1, @@ -1025,7 +1025,7 @@ local skill_rogue = { }, [1300207]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=4, ["type"]=12, ["skill_position"]=1, @@ -1048,14 +1048,14 @@ local skill_rogue = { }, [1400100]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=30000, ["qlt"]=4, ["type"]=6, ["skill_position"]=1 }, [1400101]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=4, ["type"]=12, ["skill_position"]=1, @@ -1072,7 +1072,7 @@ local skill_rogue = { }, [1400102]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=12, ["skill_position"]=1, @@ -1089,7 +1089,7 @@ local skill_rogue = { }, [1400103]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=12, ["skill_position"]=1, @@ -1106,7 +1106,7 @@ local skill_rogue = { }, [1400104]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=4, ["type"]=12, ["skill_position"]=1, @@ -1125,7 +1125,7 @@ local skill_rogue = { ["unlock"]=1400101, ["cover_unlock"]=1400101, ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=4, ["type"]=12, ["skill_position"]=1, @@ -1142,7 +1142,7 @@ local skill_rogue = { }, [1400106]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=9, ["skill_position"]=1, @@ -1159,7 +1159,7 @@ local skill_rogue = { }, [1400107]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=4, ["type"]=15, ["parameter"]={ @@ -1199,7 +1199,7 @@ local skill_rogue = { }, [2200102]={ ["limit_times"]=1, - ["weight"]=2000, + ["weight"]=3000, ["qlt"]=3, ["type"]=2, ["skill_position"]=2, @@ -1225,7 +1225,7 @@ local skill_rogue = { }, [2200103]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=12, ["skill_position"]=2, @@ -1242,7 +1242,7 @@ local skill_rogue = { }, [2200104]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=9, ["skill_position"]=2, @@ -1259,7 +1259,7 @@ local skill_rogue = { }, [2200105]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=4, ["type"]=12, ["skill_position"]=2, @@ -1276,7 +1276,7 @@ local skill_rogue = { }, [2200106]={ ["limit_times"]=1, - ["weight"]=2000, + ["weight"]=3000, ["qlt"]=3, ["type"]=2, ["skill_position"]=2, @@ -1302,7 +1302,7 @@ local skill_rogue = { }, [2200107]={ ["limit_times"]=1, - ["weight"]=2000, + ["weight"]=3000, ["qlt"]=2, ["type"]=12, ["skill_position"]=2, @@ -1327,7 +1327,7 @@ local skill_rogue = { }, [2300101]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=12, ["skill_position"]=2, @@ -1344,7 +1344,7 @@ local skill_rogue = { }, [2300102]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=4, ["type"]=1, ["parameter"]={ @@ -1355,7 +1355,7 @@ local skill_rogue = { }, [2300103]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=4, ["type"]=12, ["skill_position"]=2, @@ -1374,7 +1374,7 @@ local skill_rogue = { ["unlock"]=2300101, ["cover_unlock"]=2300101, ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=12, ["skill_position"]=2, @@ -1391,7 +1391,7 @@ local skill_rogue = { }, [2300105]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=4, ["type"]=9, ["skill_position"]=2, @@ -1410,7 +1410,7 @@ local skill_rogue = { ["unlock"]=2300103, ["cover_unlock"]=2300103, ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=4, ["type"]=12, ["skill_position"]=2, @@ -1427,7 +1427,7 @@ local skill_rogue = { }, [2300107]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=9, ["skill_position"]=2, @@ -1452,7 +1452,7 @@ local skill_rogue = { }, [2300201]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=2, ["skill_position"]=2, @@ -1478,7 +1478,7 @@ local skill_rogue = { }, [2300202]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=9, ["skill_position"]=2, @@ -1495,7 +1495,7 @@ local skill_rogue = { }, [2300203]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=2, ["type"]=3, ["skill_position"]=2, @@ -1512,7 +1512,7 @@ local skill_rogue = { }, [2300204]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=2, ["skill_position"]=2, @@ -1538,7 +1538,7 @@ local skill_rogue = { }, [2300205]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=4, ["type"]=14, ["parameter"]={ @@ -1560,7 +1560,7 @@ local skill_rogue = { ["unlock"]=2300205, ["cover_unlock"]=2300205, ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=4, ["type"]=14, ["parameter"]={ @@ -1580,7 +1580,7 @@ local skill_rogue = { }, [2300207]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=4, ["type"]=12, ["skill_position"]=2, @@ -1605,7 +1605,7 @@ local skill_rogue = { }, [2400101]={ ["limit_times"]=1, - ["weight"]=2000, + ["weight"]=3000, ["qlt"]=3, ["type"]=2, ["skill_position"]=2, @@ -1650,7 +1650,7 @@ local skill_rogue = { ["unlock"]=2400102, ["cover_unlock"]=2400102, ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=4, ["type"]=12, ["skill_position"]=2, @@ -1667,7 +1667,7 @@ local skill_rogue = { }, [2400104]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=9, ["skill_position"]=2, @@ -1684,7 +1684,7 @@ local skill_rogue = { }, [2400105]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=4, ["type"]=1, ["parameter"]={ @@ -1697,7 +1697,7 @@ local skill_rogue = { ["unlock"]=2400105, ["cover_unlock"]=2400105, ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=1, ["parameter"]={ @@ -1708,7 +1708,7 @@ local skill_rogue = { }, [2400107]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=4, ["type"]=12, ["skill_position"]=2, @@ -1733,7 +1733,7 @@ local skill_rogue = { }, [3200101]={ ["limit_times"]=1, - ["weight"]=2000, + ["weight"]=3000, ["qlt"]=4, ["type"]=12, ["skill_position"]=3, @@ -1767,7 +1767,7 @@ local skill_rogue = { }, [3200103]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=7, ["parameter"]={ @@ -1780,7 +1780,7 @@ local skill_rogue = { }, [3200104]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=2, ["skill_position"]=3, @@ -1815,7 +1815,7 @@ local skill_rogue = { }, [3200105]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=4, ["type"]=12, ["skill_position"]=3, @@ -1834,7 +1834,7 @@ local skill_rogue = { ["unlock"]=3200105, ["cover_unlock"]=3200105, ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=12, ["skill_position"]=3, @@ -1851,7 +1851,7 @@ local skill_rogue = { }, [3200107]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=12, ["skill_position"]=3, @@ -1876,7 +1876,7 @@ local skill_rogue = { }, [3300101]={ ["limit_times"]=1, - ["weight"]=2000, + ["weight"]=3000, ["qlt"]=3, ["type"]=7, ["parameter"]={ @@ -1948,7 +1948,7 @@ local skill_rogue = { }, [3300105]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=4, ["type"]=12, ["skill_position"]=3, @@ -2004,7 +2004,7 @@ local skill_rogue = { }, [3300200]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=30000, ["qlt"]=4, ["type"]=6, ["skill_position"]=3, @@ -2012,7 +2012,7 @@ local skill_rogue = { }, [3300201]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=12, ["skill_position"]=3, @@ -2029,7 +2029,7 @@ local skill_rogue = { }, [3300202]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=3, ["skill_position"]=3, @@ -2046,7 +2046,7 @@ local skill_rogue = { }, [3300203]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=4, ["type"]=7, ["parameter"]={ @@ -2058,7 +2058,7 @@ local skill_rogue = { }, [3300204]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=1, ["parameter"]={ @@ -2070,7 +2070,7 @@ local skill_rogue = { [3300205]={ ["unlock"]=3300204, ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=4, ["type"]=7, ["parameter"]={ @@ -2082,7 +2082,7 @@ local skill_rogue = { }, [3300206]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=9, ["skill_position"]=4, @@ -2101,7 +2101,7 @@ local skill_rogue = { ["unlock"]=3300204, ["cover_unlock"]=3300204, ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=4, ["type"]=1, ["parameter"]={ @@ -2111,11 +2111,13 @@ local skill_rogue = { ["icon"]="38" }, [3400100]={ + ["weight"]=30000, ["qlt"]=4, ["type"]=6, ["icon"]="67" }, [3400101]={ + ["weight"]=3000, ["qlt"]=4, ["type"]=12, ["effect"]={ @@ -2157,7 +2159,7 @@ local skill_rogue = { }, [3400103]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=9, ["skill_position"]=4, @@ -2175,6 +2177,7 @@ local skill_rogue = { [3400104]={ ["unlock"]=3400101, ["cover_unlock"]=3400101, + ["weight"]=3000, ["qlt"]=3, ["type"]=12, ["effect"]={ @@ -2189,6 +2192,7 @@ local skill_rogue = { ["icon"]="67" }, [3400105]={ + ["weight"]=3000, ["qlt"]=4, ["type"]=12, ["effect"]={ @@ -2205,6 +2209,7 @@ local skill_rogue = { [3400106]={ ["unlock"]=3400106, ["cover_unlock"]=3400106, + ["weight"]=3000, ["qlt"]=3, ["type"]=12, ["effect"]={ @@ -2219,6 +2224,7 @@ local skill_rogue = { ["icon"]="67" }, [3400107]={ + ["weight"]=3000, ["qlt"]=4, ["type"]=14, ["parameter"]={ @@ -2245,7 +2251,7 @@ local skill_rogue = { }, [4200101]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=2, ["skill_position"]=4, @@ -2293,7 +2299,7 @@ local skill_rogue = { }, [4200104]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=4, ["type"]=2, ["skill_position"]=4, @@ -2324,7 +2330,7 @@ local skill_rogue = { }, [4200106]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=9, ["skill_position"]=4, @@ -2360,7 +2366,7 @@ local skill_rogue = { }, [4300100]={ ["limit_times"]=1, - ["weight"]=3000, + ["weight"]=30000, ["qlt"]=4, ["type"]=6, ["icon"]="57" @@ -2487,7 +2493,7 @@ local skill_rogue = { }, [4300300]={ ["limit_times"]=1, - ["weight"]=3000, + ["weight"]=30000, ["qlt"]=4, ["icon"]="57" }, @@ -2619,7 +2625,7 @@ local skill_rogue = { }, [4400101]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=8, ["parameter"]={ @@ -2631,7 +2637,7 @@ local skill_rogue = { }, [4400102]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=12, ["skill_position"]=4, @@ -2648,7 +2654,7 @@ local skill_rogue = { }, [4400103]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=4, ["type"]=2, ["skill_position"]=4, @@ -2662,7 +2668,7 @@ local skill_rogue = { }, [4400104]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=4, ["type"]=7, ["parameter"]={ @@ -2674,7 +2680,7 @@ local skill_rogue = { }, [4400105]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=4, ["type"]=12, ["skill_position"]=4, @@ -2691,7 +2697,7 @@ local skill_rogue = { }, [4400106]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=9, ["skill_position"]=4, @@ -2710,7 +2716,7 @@ local skill_rogue = { ["unlock"]=4400105, ["cover_unlock"]=4400105, ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=4, ["type"]=12, ["skill_position"]=4, @@ -2764,7 +2770,7 @@ local skill_rogue = { }, [5200103]={ ["limit_times"]=1, - ["weight"]=2000, + ["weight"]=3000, ["qlt"]=3, ["type"]=8, ["parameter"]={ @@ -2802,7 +2808,7 @@ local skill_rogue = { }, [5200105]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=4, ["type"]=1, ["parameter"]={ @@ -2813,7 +2819,7 @@ local skill_rogue = { }, [5200106]={ ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=3, ["type"]=9, ["skill_position"]=5, @@ -2831,7 +2837,7 @@ local skill_rogue = { [5200107]={ ["unlock"]=5200105, ["limit_times"]=1, - ["weight"]=1000, + ["weight"]=3000, ["qlt"]=4, ["type"]=1, ["parameter"]={ @@ -2842,7 +2848,7 @@ local skill_rogue = { }, [5300100]={ ["limit_times"]=1, - ["weight"]=3000, + ["weight"]=30000, ["qlt"]=4, ["type"]=6, ["skill_position"]=5, @@ -2973,7 +2979,7 @@ local skill_rogue = { }, [5300200]={ ["limit_times"]=1, - ["weight"]=3000, + ["weight"]=30000, ["qlt"]=4, ["type"]=6, ["skill_position"]=5, @@ -3108,11 +3114,15 @@ local skill_rogue = { }, [5400100]={ ["limit_times"]=1, + ["weight"]=30000, + ["qlt"]=4, ["type"]=6, ["skill_position"]=5 }, [5400101]={ ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, ["type"]=7, ["parameter"]={ 1, @@ -3122,6 +3132,8 @@ local skill_rogue = { }, [5400102]={ ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, ["type"]=12, ["skill_position"]=5, ["effect"]={ @@ -3135,6 +3147,8 @@ local skill_rogue = { }, [5400103]={ ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=3, ["type"]=12, ["skill_position"]=5, ["effect"]={ @@ -3165,6 +3179,8 @@ local skill_rogue = { }, [5400105]={ ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, ["type"]=1, ["parameter"]={ 5400123 @@ -3173,6 +3189,8 @@ local skill_rogue = { }, [5400106]={ ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, ["type"]=12, ["skill_position"]=5, ["effect"]={ @@ -3186,6 +3204,8 @@ local skill_rogue = { }, [5400107]={ ["limit_times"]=1, + ["weight"]=3000, + ["qlt"]=4, ["type"]=12, ["skill_position"]=5, ["effect"]={ diff --git a/lua/app/module/battle/component/battle_unit_comp.lua b/lua/app/module/battle/component/battle_unit_comp.lua index cd934bd3..8297dcb7 100644 --- a/lua/app/module/battle/component/battle_unit_comp.lua +++ b/lua/app/module/battle/component/battle_unit_comp.lua @@ -490,8 +490,6 @@ function BattleUnitComp:changeState(state) self:enterAssistingAttackState() elseif state == UNIT_STATE.DEAD then self:enterDeadState() - elseif state == UNIT_STATE.BORN then - self:enterBornState() elseif state == UNIT_STATE.ENTER_BATTLEFIELD then self:enterEnterBattlefieldState() elseif state == UNIT_STATE.SWITCH_IN then diff --git a/lua/app/module/battle/controller/battle_controller.lua b/lua/app/module/battle/controller/battle_controller.lua index daeff18d..75d6aae0 100644 --- a/lua/app/module/battle/controller/battle_controller.lua +++ b/lua/app/module/battle/controller/battle_controller.lua @@ -9,6 +9,7 @@ local BattleController = class("BattleController") local BATTLE_BOARD_SKILL_HANDLE = require "app/module/battle/skill/battle_board_skill_handle" local BATTLE_ROGUE_SKILL_HANDLE = require "app/module/battle/skill/battle_rogue_skill_handle" local BATTLE_GRID_EFFECT_HANDLE = require "app/module/battle/skill/battle_grid_effect_handle" +local BATTLE_INSTRUCTIONS_HELPER = require "app/module/battle/helper/battle_instructions_helper" local BattleBuffHandle = require "app/module/battle/helper/battle_buff_handle" local ELIMINATION_TOUCH_EVENT = GConst.ELIMINATION_TOUCH_EVENT @@ -1164,163 +1165,7 @@ function BattleController:onFillBoardOver(isRoundBeginCheck) end function BattleController:generateInstructions(skillEntity, elementType, lineCount, influenceElementTypeMap, elementTypeMap) - local elementTypeCount = 0 - -- local assistingList = nil - ---- 援助 - for element, count in pairs(elementTypeMap) do - -- if element == elementType then - elementTypeCount = elementTypeCount + count - -- else - -- if assistingList == nil then - -- assistingList = {} - -- end - -- local obj = { - -- count = count, - -- skillMatch = element, - -- } - -- table.insert(assistingList, obj) - -- end - end - - ---- 技能 - if skillEntity then - if elementType == skillEntity:getPosition() then - table.insert(self.instructions, { - name = BattleConst.INSTRUCTION_NAME.PLAY_SKILL, - skillMatch = elementType, - count = elementTypeCount, - }) - else - if skillEntity:getEffect() ~= nil then - table.insert(self.instructions, { - name = BattleConst.INSTRUCTION_NAME.PLAY_SKILL, - skillMatch = skillEntity:getPosition(), - count = 0, - }) - end - if elementTypeCount > 0 then - table.insert(self.instructions, { - name = BattleConst.INSTRUCTION_NAME.GENERAL_ATTACK, - skillMatch = elementType, - count = elementTypeCount, - }) - end - end - else - ---- 普攻 - if elementTypeCount > 0 then - table.insert(self.instructions, { - name = BattleConst.INSTRUCTION_NAME.GENERAL_ATTACK, - skillMatch = elementType, - count = elementTypeCount, - }) - end - end - - -- if assistingList then - -- table.insert(self.instructions, { - -- name = BattleConst.INSTRUCTION_NAME.ASSISTING, - -- assistingList = assistingList, - -- }) - -- end - - ---- 加buff - if skillEntity then - local eliminateEffects = skillEntity:getEliminateEffects(self) - if eliminateEffects then - local effectList - for _, buffEntity in ipairs(eliminateEffects) do - if not effectList then - effectList = {} - end - table.insert(effectList, buffEntity) - end - if effectList then - local unit = { - name = BattleConst.INSTRUCTION_NAME.ADD_CUR_ROUND_ATTR, - effectList = effectList - } - table.insert(self.instructions, unit) - end - end - if skillEntity:getLinkEffects() and elementType then - local effectList - for type, buffEntities in pairs(skillEntity:getLinkEffects()) do - local buffEntity = buffEntities[elementType] - if buffEntity then - if not effectList then - effectList = {} - end - table.insert(effectList, buffEntity) - end - end - if effectList then - local unit = { - name = BattleConst.INSTRUCTION_NAME.ADD_CUR_ROUND_ATTR, - effectList = effectList - } - table.insert(self.instructions, unit) - end - end - - if skillEntity:getInInfluenceEffects() and influenceElementTypeMap then - for influenceElementType , _ in pairs(influenceElementTypeMap) do - local effectList - for type, buffEntities in pairs(skillEntity:getInInfluenceEffects()) do - local buffEntity = buffEntities[influenceElementType] - if buffEntity then - if not effectList then - effectList = {} - end - table.insert(effectList, buffEntity) - end - end - if effectList then - table.insert(self.instructions, { - name = BattleConst.INSTRUCTION_NAME.ADD_CUR_ROUND_ATTR, - effectList = effectList - }) - end - end - end - - if skillEntity:getElementCountEffect() and elementType then - local effectList - for type, buffEntities in pairs(skillEntity:getElementCountEffect()) do - local originBuffEntity = buffEntities.origin - local useBuffEntity = buffEntities.use - if not effectList then - effectList = {} - end - local newNum = originBuffEntity:getEffectNum() * lineCount - useBuffEntity:setEffectNum(newNum) - table.insert(effectList, useBuffEntity) - end - if effectList then - table.insert(self.instructions, { - name = BattleConst.INSTRUCTION_NAME.ADD_CUR_ROUND_ATTR, - effectList = effectList - }) - end - end - - -- - if skillEntity:getSkillAttackBeforeEffects() and elementType then - local effectList - for type, buffEntity in pairs(skillEntity:getSkillAttackBeforeEffects()) do - if not effectList then - effectList = {} - end - table.insert(effectList, buffEntity) - end - if effectList then - table.insert(self.instructions, { - name = BattleConst.INSTRUCTION_NAME.ADD_CUR_ROUND_ATTR, - effectList = effectList - }) - end - end - end + self.instructions = BATTLE_INSTRUCTIONS_HELPER.generateInstructions(skillEntity, elementType, lineCount, influenceElementTypeMap, elementTypeMap, self) end function BattleController:exeInstructions(callback) @@ -1792,7 +1637,8 @@ function BattleController:getRandomSkillList(getCount, onlyCommonSkill) for _, skillId in ipairs(list) do local skillCfg = cfg[skillId] if skillCfg and (not skillCfg.limit_times or self.battleData:getSkillCount(skillId) < skillCfg.limit_times) then - if not map[skillId] then + + if not map[skillId] and (not skillCfg.unlock or self.battleData:getSkillCount(skillCfg.unlock) > 0) then table.insert(newSkillPool, skillId) table.insert(skillWeight, skillCfg.weight) count = count + 1 @@ -2594,12 +2440,12 @@ local function _addCurRoundAttr(self, instruction, callback) local mainComp = self:getOtherSideMainUnit(BattleConst.SIDE_DEF) for _, effect in ipairs(instruction.effectList) do local target - if effect:getTartgetSide() == BattleConst.SIDE_DEF then + if effect:getTargetSide() == BattleConst.SIDE_DEF then target = defComp - elseif effect:getTartgetSide() == BattleConst.SIDE_ATK then + elseif effect:getTargetSide() == BattleConst.SIDE_ATK then target = mainComp else - local matchType = BattleConst.SIDE_OBJ_TO_MATCH_TYPE[effect:getTartgetSide()] + local matchType = BattleConst.SIDE_OBJ_TO_MATCH_TYPE[effect:getTargetSide()] if matchType then target = self.atkTeam:getUnitComp()[matchType] end diff --git a/lua/app/module/battle/helper/battle_instructions_helper.lua b/lua/app/module/battle/helper/battle_instructions_helper.lua new file mode 100644 index 00000000..163fa8d6 --- /dev/null +++ b/lua/app/module/battle/helper/battle_instructions_helper.lua @@ -0,0 +1,255 @@ +local BattleConst = GConst.BattleConst +local BattleInstructionsHelper = {} + +BattleInstructionsHelper._generateAttackInstructions = function(instructions, skillEntity, elementType, elementTypeCount) + if skillEntity then + if elementType == skillEntity:getPosition() then + table.insert(instructions, { + name = BattleConst.INSTRUCTION_NAME.PLAY_SKILL, + skillMatch = elementType, + count = elementTypeCount, + }) + else + if skillEntity:getEffect() ~= nil then + table.insert(instructions, { + name = BattleConst.INSTRUCTION_NAME.PLAY_SKILL, + skillMatch = skillEntity:getPosition(), + count = 0, + }) + end + if elementTypeCount > 0 then + table.insert(instructions, { + name = BattleConst.INSTRUCTION_NAME.GENERAL_ATTACK, + skillMatch = elementType, + count = elementTypeCount, + }) + end + end + else + ---- 普攻 + if elementTypeCount > 0 then + table.insert(instructions, { + name = BattleConst.INSTRUCTION_NAME.GENERAL_ATTACK, + skillMatch = elementType, + count = elementTypeCount, + }) + end + end + + -- if assistingList then + -- table.insert(self.instructions, { + -- name = BattleConst.INSTRUCTION_NAME.ASSISTING, + -- assistingList = assistingList, + -- }) + -- end +end + +local generateEliminateEffects = function(instructions, skillEntity, battleController) + local eliminateEffects = skillEntity:getEliminateEffects(battleController) + if not eliminateEffects then + return + end + local effectList + for _, buffEntity in ipairs(eliminateEffects) do + if not effectList then + effectList = {} + end + table.insert(effectList, buffEntity) + end + if effectList then + local unit = { + name = BattleConst.INSTRUCTION_NAME.ADD_CUR_ROUND_ATTR, + effectList = effectList + } + table.insert(instructions, unit) + end +end + +local generateLinkEffects = function(instructions, skillEntity, elementType) + if not skillEntity:getLinkEffects() or not elementType then + return + end + + local effectList + for type, buffEntities in pairs(skillEntity:getLinkEffects()) do + local buffEntity = buffEntities[elementType] + if buffEntity then + if not effectList then + effectList = {} + end + table.insert(effectList, buffEntity) + end + end + if effectList then + local unit = { + name = BattleConst.INSTRUCTION_NAME.ADD_CUR_ROUND_ATTR, + effectList = effectList + } + table.insert(instructions, unit) + end +end + +local generateInfluenceEffects = function(instructions, skillEntity, influenceElementTypeMap) + if not skillEntity:getInInfluenceEffects() or not influenceElementTypeMap then + return + end + for influenceElementType , _ in pairs(influenceElementTypeMap) do + local effectList + for type, buffEntities in pairs(skillEntity:getInInfluenceEffects()) do + local buffEntity = buffEntities[influenceElementType] + if buffEntity then + if not effectList then + effectList = {} + end + table.insert(effectList, buffEntity) + end + end + if effectList then + table.insert(instructions, { + name = BattleConst.INSTRUCTION_NAME.ADD_CUR_ROUND_ATTR, + effectList = effectList + }) + end + end +end + +local generateElementCountEffect = function(instructions, skillEntity, elementType, lineCount) + if not skillEntity:getElementCountEffect() or not elementType then + return + end + + local effectList + for rogueSkill, list in pairs(skillEntity:getElementCountEffect()) do + for index, buffEntities in pairs(list) do + local originBuffEntity = buffEntities.origin + local useBuffEntity = buffEntities.use + if not effectList then + effectList = {} + end + local newNum = originBuffEntity:getEffectNum() * lineCount + useBuffEntity:setEffectNum(newNum) + table.insert(effectList, useBuffEntity) + end + end + if effectList then + table.insert(instructions, { + name = BattleConst.INSTRUCTION_NAME.ADD_CUR_ROUND_ATTR, + effectList = effectList + }) + end +end + +local generateSkillAttackBeforeEffects = function(instructions, skillEntity) + if not skillEntity:getSkillAttackBeforeEffects() then + return + end + + local effectList + for rogueSkill, list in pairs(skillEntity:getSkillAttackBeforeEffects()) do + for index, buffEntity in pairs(list) do + if not effectList then + effectList = {} + end + table.insert(effectList, buffEntity) + end + end + if effectList then + table.insert(instructions, { + name = BattleConst.INSTRUCTION_NAME.ADD_CUR_ROUND_ATTR, + effectList = effectList + }) + end +end + +local generateLinkCountMoreEffects = function(instructions, skillEntity, lineCount) + if not skillEntity:getLinkCountMoreEffects() then + return + end + + local effectList + for rogueSkill, list in pairs(skillEntity:getLinkCountMoreEffects()) do + for index, info in pairs(list) do + if info.paramsCount and info.paramsCount <= lineCount then + if not effectList then + effectList = {} + end + table.insert(effectList, info.buffEntity) + end + end + end + if effectList then + table.insert(instructions, { + name = BattleConst.INSTRUCTION_NAME.ADD_CUR_ROUND_ATTR, + effectList = effectList + }) + end +end + +local generateLinkCountPowerEffects = function(instructions, skillEntity, lineCount) + if not skillEntity:getLinkCountPowerEffects() then + return + end + + local effectList + for rogueSkill, list in pairs(skillEntity:getLinkCountPowerEffects()) do + for index, info in pairs(list) do + if info.paramsCount and info.paramsCount <= lineCount then + local power = lineCount // info.paramsCount + if not effectList then + effectList = {} + end + local newNum = info.originBuffEntity:getEffectNum() * power + info.useBuffEntity:setEffectNum(newNum) + table.insert(effectList, info.useBuffEntity) + end + end + end + if effectList then + table.insert(instructions, { + name = BattleConst.INSTRUCTION_NAME.ADD_CUR_ROUND_ATTR, + effectList = effectList + }) + end +end + +BattleInstructionsHelper._generateBuffInstructions = function(instructions, skillEntity, elementType, lineCount, influenceElementTypeMap, battleController) + if skillEntity then + generateEliminateEffects(instructions, skillEntity, battleController) + generateLinkEffects(instructions, skillEntity, elementType) + generateInfluenceEffects(instructions, skillEntity, influenceElementTypeMap) + generateElementCountEffect(instructions, skillEntity, elementType, lineCount) + generateSkillAttackBeforeEffects(instructions, skillEntity) + generateLinkCountMoreEffects(instructions, skillEntity, lineCount) + generateLinkCountPowerEffects(instructions, skillEntity, lineCount) + end +end + +BattleInstructionsHelper.generateInstructions = function(skillEntity, elementType, lineCount, influenceElementTypeMap, elementTypeMap, battleController) + local elementTypeCount = 0 + local instructions = {} + -- local assistingList = nil + ---- 援助 + for element, count in pairs(elementTypeMap) do + -- if element == elementType then + elementTypeCount = elementTypeCount + count + -- else + -- if assistingList == nil then + -- assistingList = {} + -- end + -- local obj = { + -- count = count, + -- skillMatch = element, + -- } + -- table.insert(assistingList, obj) + -- end + end + + -- 攻击 + BattleInstructionsHelper._generateAttackInstructions(instructions, skillEntity, elementType, elementTypeCount) + ---- 加buff + BattleInstructionsHelper._generateBuffInstructions(instructions, skillEntity, elementType, lineCount, influenceElementTypeMap, battleController) + + return instructions +end + +return BattleInstructionsHelper diff --git a/lua/app/module/battle/helper/battle_instructions_helper.lua.meta b/lua/app/module/battle/helper/battle_instructions_helper.lua.meta new file mode 100644 index 00000000..cd2ad418 --- /dev/null +++ b/lua/app/module/battle/helper/battle_instructions_helper.lua.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 6fd938e7da92c8e4e9a0b7560081b1cd +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 3b8b241bab4a4ac9a22fcce9c64f1242, type: 3} diff --git a/lua/app/module/battle/skill/battle_rogue_skill_handle.lua b/lua/app/module/battle/skill/battle_rogue_skill_handle.lua index c910328a..99bd4bed 100644 --- a/lua/app/module/battle/skill/battle_rogue_skill_handle.lua +++ b/lua/app/module/battle/skill/battle_rogue_skill_handle.lua @@ -4,7 +4,7 @@ local BattleBuffEntity = require "app/userdata/battle/skill/battle_buff_entity" local BattleRogueSkillHandle = {} -local _changeBaseSkill = function(skillInfo, battleData, battleController) +local _changeBaseSkill = function(skillId, skillInfo, battleData, battleController) local elementType = skillInfo.skill_position if not elementType or not skillInfo.parameter then return @@ -27,7 +27,7 @@ local _changeBaseSkill = function(skillInfo, battleData, battleController) end end -local _addEliminationRange = function(skillInfo, battleData, battleController) +local _addEliminationRange = function(skillId, skillInfo, battleData, battleController) local elementType = skillInfo.skill_position if not elementType or not skillInfo.boardrange then return @@ -39,7 +39,7 @@ local _addEliminationRange = function(skillInfo, battleData, battleController) end end -local _canLinkAnyElement = function(skillInfo, battleData, battleController) +local _canLinkAnyElement = function(skillId, skillInfo, battleData, battleController) local elementType = skillInfo.skill_position if not elementType then return @@ -51,7 +51,7 @@ local _canLinkAnyElement = function(skillInfo, battleData, battleController) end end -local _addLinkAtkp = function(skillInfo, battleData, battleController) +local _addLinkAtkp = function(skillId, skillInfo, battleData, battleController) local elementType = skillInfo.skill_position if not elementType or not skillInfo.effect then return @@ -74,7 +74,7 @@ local _addLinkAtkp = function(skillInfo, battleData, battleController) end end -local _changeElementType = function(skillInfo, battleData, battleController) +local _changeElementType = function(skillId, skillInfo, battleData, battleController) if not skillInfo.boardrange or not skillInfo.parameter then return end @@ -88,7 +88,7 @@ local _changeElementType = function(skillInfo, battleData, battleController) battleController:changeElementType(count, elementType) end -local _addAttr = function(skillInfo, battleData, battleController, value) +local _addAttr = function(skillId, skillInfo, battleData, battleController, value) if not skillInfo.attr then return end @@ -99,7 +99,7 @@ local _addAttr = function(skillInfo, battleData, battleController, value) battleController:addHeroAttr(skillInfo.attr.type, value) end -local _unlockSkill = function(skillInfo, battleData, battleController, value) +local _unlockSkill = function(skillId, skillInfo, battleData, battleController, value) if not skillInfo.skill_position then return end @@ -107,7 +107,7 @@ local _unlockSkill = function(skillInfo, battleData, battleController, value) battleData:unlockSkillEntity(skillInfo.skill_position) end -local _addSkillEffectParams = function(skillInfo, battleData, battleController) +local _addSkillEffectParams = function(skillId, skillInfo, battleData, battleController) local elementType = skillInfo.skill_position if not elementType or not skillInfo.parameter then return @@ -144,7 +144,7 @@ local _addSkillEffectParams = function(skillInfo, battleData, battleController) end end -local _addSkillRound = function(skillInfo, battleData, battleController) +local _addSkillRound = function(skillId, skillInfo, battleData, battleController) local elementType = skillInfo.skill_position if not elementType or not skillInfo.parameter then return @@ -182,7 +182,7 @@ local _addSkillRound = function(skillInfo, battleData, battleController) end end -local _addSkillEffect = function(skillInfo, battleData, battleController) +local _addSkillEffect = function(skillId, skillInfo, battleData, battleController) if not skillInfo.effect then return end @@ -209,7 +209,7 @@ local _addSkillEffect = function(skillInfo, battleData, battleController) end return else - local matchType = BattleConst.SIDE_OBJ_TO_MATCH_TYPE[effect:getTartgetSide()] + local matchType = BattleConst.SIDE_OBJ_TO_MATCH_TYPE[skillInfo.obj] if matchType then target = battleController.atkTeam:getUnitComp()[matchType] end @@ -222,7 +222,7 @@ local _addSkillEffect = function(skillInfo, battleData, battleController) end end -local _addSkillInInfluenceAtkp = function(skillInfo, battleData, battleController) +local _addSkillInInfluenceAtkp = function(skillId, skillInfo, battleData, battleController) local elementType = skillInfo.skill_position if not elementType or not skillInfo.effect then return @@ -243,7 +243,7 @@ local _addSkillInInfluenceAtkp = function(skillInfo, battleData, battleControlle end end -local _addSkillAttackBeforeEffect = function(skillInfo, battleData, battleController) +local _addSkillAttackBeforeEffect = function(skillId, skillInfo, battleData, battleController) local elementType = skillInfo.skill_position if not elementType or not skillInfo.effect then return @@ -260,13 +260,16 @@ local _addSkillAttackBeforeEffect = function(skillInfo, battleData, battleContro local entity = battleData:getSkillEntityByElement(elementType) if entity then + if skillInfo.cover_unlock then + entity:removeSkillAttackBeforeEffect(skillInfo.cover_unlock) + end for k, effect in ipairs(skillInfo.effect) do - entity:addSkillAttackBeforeEffect(k, effect, unitEntity, skillInfo.obj) + entity:addSkillAttackBeforeEffect(skillId, k, effect, unitEntity, skillInfo.obj) end end end -local _addSkillElementCountEffect = function(skillInfo, battleData, battleController) +local _addSkillElementCountEffect = function(skillId, skillInfo, battleData, battleController) local elementType = skillInfo.skill_position if not elementType or not skillInfo.effect then return @@ -283,8 +286,69 @@ local _addSkillElementCountEffect = function(skillInfo, battleData, battleContro local entity = battleData:getSkillEntityByElement(elementType) if entity then - for _, effect in ipairs(skillInfo.effect) do - entity:addElementCountEffect(effect, unitEntity, skillInfo.obj) + if skillInfo.cover_unlock then + entity:removeElementCountEffect(skillInfo.cover_unlock) + end + for k, effect in ipairs(skillInfo.effect) do + entity:addElementCountEffect(skillId, k, effect, unitEntity, skillInfo.obj) + end + end +end + +local _addLinkCountMoreEffect = function(skillId, skillInfo, battleData, battleController) + local elementType = skillInfo.skill_position + if not elementType or not skillInfo.effect or not skillInfo.parameter then + return + end + + if not battleController.battleData or not battleController.battleData.atkTeam then + return + end + + local unitEntity = battleController.battleData.atkTeam:getAllMembers()[elementType] + if not unitEntity then + return + end + + local entity = battleData:getSkillEntityByElement(elementType) + if entity then + if skillInfo.cover_unlock then + entity:removeLinkCountMoreEffects(skillInfo.cover_unlock) + end + for k, effect in ipairs(skillInfo.effect) do + local paramsCount = skillInfo.parameter[k] + if paramsCount then + entity:addLinkCountMoreEffects(skillId, k, effect, unitEntity, skillInfo.obj, paramsCount) + end + end + end +end + +local _addLinkCountPowerEffect = function(skillId, skillInfo, battleData, battleController) + local elementType = skillInfo.skill_position + if not elementType or not skillInfo.effect or not skillInfo.parameter then + return + end + + if not battleController.battleData or not battleController.battleData.atkTeam then + return + end + + local unitEntity = battleController.battleData.atkTeam:getAllMembers()[elementType] + if not unitEntity then + return + end + + local entity = battleData:getSkillEntityByElement(elementType) + if entity then + if skillInfo.cover_unlock then + entity:removeLinkCountPowerEffects(skillInfo.cover_unlock) + end + for k, effect in ipairs(skillInfo.effect) do + local paramsCount = skillInfo.parameter[k] + if paramsCount then + entity:addLinkCountPowerEffects(skillId, k, effect, unitEntity, skillInfo.obj, paramsCount) + end end end end @@ -303,6 +367,8 @@ BattleRogueSkillHandle._effectOn = { [11] = _addSkillInInfluenceAtkp, -- 技能消除的增加伤害 [12] = _addSkillAttackBeforeEffect, -- 技能触发前的技能效果 [13] = _addSkillElementCountEffect, -- 技能链接中每一个元素累加的技能效果 + [14] = _addLinkCountMoreEffect, -- 链接超过x元素获得一次技能效果 + [15] = _addLinkCountPowerEffect, -- 链接超过x元素获得倍数技能效果 } function BattleRogueSkillHandle.takeEffect(skillId, battleData, battleController, value) @@ -313,7 +379,7 @@ function BattleRogueSkillHandle.takeEffect(skillId, battleData, battleController local func = BattleRogueSkillHandle._effectOn[cfg.type] if func then - func(cfg, battleData, battleController, value) + func(skillId, cfg, battleData, battleController, value) end end diff --git a/lua/app/userdata/battle/skill/battle_board_skill_entity.lua b/lua/app/userdata/battle/skill/battle_board_skill_entity.lua index fb828706..8437fb21 100644 --- a/lua/app/userdata/battle/skill/battle_board_skill_entity.lua +++ b/lua/app/userdata/battle/skill/battle_board_skill_entity.lua @@ -5,11 +5,12 @@ function BattleBoardSkillEntity:ctor(skillId) self:refreshSkillId(skillId) self.curEnergy = 0 self.addRange = {} - self.linkEffectEntities = {} - self.inInfluenceEntities = {} - self.skillAttackBeforeEffectEntities = {} - self.elementCountEffectEntities = {} - self.cacheBuffEntities = {} + self.linkEffectEntities = {} -- 链接攻击伤害 type = 3 + self.inInfluenceEntities = {} -- 技能消除攻击伤害 type = 11 + self.skillAttackBeforeEffectEntities = {} -- 战斗开始前获得技能效果 type = 12 + self.elementCountEffectEntities = {} -- 根据消除数量获得次数的技能效果 type = 13 + self.linkCountMoreEffects = {} -- 链接超过x元素获得一次技能效果 type = 14 + self.linkCountPowerEffects = {} -- 链接超过x元素获得倍数技能效果 type = 15 self.upSkillIdMap = {} self.getUpSkillKind = 0 @@ -280,27 +281,38 @@ function BattleBoardSkillEntity:addInInfluenceEffect(effect, unitEntity, targetS end end -function BattleBoardSkillEntity:addSkillAttackBeforeEffect(index, effect, unitEntity, targetSide) - local buffEntity = self.skillAttackBeforeEffectEntities[index] +function BattleBoardSkillEntity:addSkillAttackBeforeEffect(rogueSkill, index, effect, unitEntity, targetSide) + if not self.skillAttackBeforeEffectEntities[rogueSkill] then + self.skillAttackBeforeEffectEntities[rogueSkill] = {} + end + local buffEntity = self.skillAttackBeforeEffectEntities[rogueSkill][index] if not buffEntity then buffEntity = BattleBuffEntity:create() buffEntity:init(effect, unitEntity) - self.skillAttackBeforeEffectEntities[index] = buffEntity + self.skillAttackBeforeEffectEntities[rogueSkill][index] = buffEntity else buffEntity:init(effect, unitEntity) end buffEntity:setTargetSide(targetSide) end +function BattleBoardSkillEntity:removeSkillAttackBeforeEffect(rogueSkill) + self.skillAttackBeforeEffectEntities[rogueSkill] = nil +end + function BattleBoardSkillEntity:getSkillAttackBeforeEffects() return self.skillAttackBeforeEffectEntities end -function BattleBoardSkillEntity:addElementCountEffect(effect, unitEntity, targetSide) - local buffEntities = self.elementCountEffectEntities[effect.type] +function BattleBoardSkillEntity:addElementCountEffect(rogueSkill, index, effect, unitEntity, targetSide) + if not self.elementCountEffectEntities[rogueSkill] then + self.elementCountEffectEntities[rogueSkill] = {} + end + local buffEntities = self.elementCountEffectEntities[rogueSkill][index] if not buffEntities then - self.elementCountEffectEntities[effect.type] = {} - buffEntities = self.elementCountEffectEntities[effect.type] + self.elementCountEffectEntities[rogueSkill][index] = {} + buffEntities = self.elementCountEffectEntities[rogueSkill][index] + local originBuffEntity = BattleBuffEntity:create() originBuffEntity:init(effect, unitEntity) originBuffEntity:setTargetSide(targetSide) @@ -325,27 +337,14 @@ function BattleBoardSkillEntity:addElementCountEffect(effect, unitEntity, target end end +function BattleBoardSkillEntity:removeElementCountEffect(rogueSkill) + self.elementCountEffectEntities[rogueSkill] = nil +end + function BattleBoardSkillEntity:getElementCountEffect() return self.elementCountEffectEntities end -function BattleBoardSkillEntity:addBuffEffect(buff, unitEntity) - local buffEntity = self.cacheBuffEntities[buff.type] - if not buffEntity then - buffEntity = BattleBuffEntity:create() - buffEntity:init(buff, unitEntity) - self.cacheBuffEntities[buff.type] = buffEntity - else - local buffNum = buffEntity:getEffectNum() - buffEntity:init(buff, unitEntity) - buffEntity:setEffectNum(buffEntity:getEffectNum() + buffNum) - end -end - -function BattleBoardSkillEntity:getBuffEffects() - return self.cacheBuffEntities -end - function BattleBoardSkillEntity:getEliminateEffects(battleController) local unitEntity = battleController.battleData.atkTeam:getAllMembers()[self:getPosition()] if not unitEntity or not self.config.eliminate_effect then @@ -390,4 +389,61 @@ function BattleBoardSkillEntity:gotUpSKill(skillId) return true end +function BattleBoardSkillEntity:addLinkCountMoreEffects(rogueSkill, index, effect, unitEntity, targetSide, paramsCount) + if not self.linkCountMoreEffects[rogueSkill] then + self.linkCountMoreEffects[rogueSkill] = {} + end + local info = self.linkCountMoreEffects[rogueSkill][index] + if not info then + info = {paramsCount = paramsCount} + info.buffEntity = BattleBuffEntity:create() + info.buffEntity:init(effect, unitEntity) + self.linkCountMoreEffects[rogueSkill][index] = info + else + info.buffEntity:init(effect, unitEntity) + end + info.buffEntity:setTargetSide(targetSide) +end + +function BattleBoardSkillEntity:removeLinkCountMoreEffects(rogueSkill) + self.linkCountMoreEffects[rogueSkill] = nil +end + +function BattleBoardSkillEntity:getLinkCountMoreEffects() + return self.linkCountMoreEffects +end + +function BattleBoardSkillEntity:addLinkCountPowerEffects(rogueSkill, index, effect, unitEntity, targetSide, paramsCount) + if not self.linkCountPowerEffects[rogueSkill] then + self.linkCountPowerEffects[rogueSkill] = {} + end + local info = self.linkCountPowerEffects[rogueSkill][index] + if not info then + info = {paramsCount = paramsCount} + info.originBuffEntity = BattleBuffEntity:create() + info.originBuffEntity:init(effect, unitEntity) + info.originBuffEntity:setTargetSide(targetSide) + + info.useBuffEntity = BattleBuffEntity:create() + info.useBuffEntity:init(effect, unitEntity) + info.useBuffEntity:setTargetSide(targetSide) + + self.linkCountPowerEffects[rogueSkill][index] = info + else + info.originBuffEntity:init(effect, unitEntity) + info.originBuffEntity:setTargetSide(targetSide) + + info.useBuffEntity:init(effect, unitEntity) + info.useBuffEntity:setTargetSide(targetSide) + end +end + +function BattleBoardSkillEntity:removeLinkCountPowerEffects(rogueSkill) + self.linkCountPowerEffects[rogueSkill] = nil +end + +function BattleBoardSkillEntity:getLinkCountPowerEffects() + return self.linkCountPowerEffects +end + return BattleBoardSkillEntity \ No newline at end of file diff --git a/lua/app/userdata/battle/skill/battle_buff_entity.lua b/lua/app/userdata/battle/skill/battle_buff_entity.lua index 31a0cd1d..c3677090 100644 --- a/lua/app/userdata/battle/skill/battle_buff_entity.lua +++ b/lua/app/userdata/battle/skill/battle_buff_entity.lua @@ -78,7 +78,7 @@ function BattleBuffEntity:setRound(num) self.round = num end -function BattleBuffEntity:getTartgetSide() +function BattleBuffEntity:getTargetSide() return self.targetSide end diff --git a/lua/app/userdata/hero/hero_entity.lua b/lua/app/userdata/hero/hero_entity.lua index 98291d5a..92608019 100644 --- a/lua/app/userdata/hero/hero_entity.lua +++ b/lua/app/userdata/hero/hero_entity.lua @@ -240,13 +240,15 @@ end function HeroEntity:getRogueSkillList() if not self.rogueSkillList then self.rogueSkillList = {} - for i = 1, 3 do - local id = self.config["rouge_skill_" .. i] + local count = 1 + while true do + local id = self.config["rouge_skill_" .. count] if id then table.insert(self.rogueSkillList, id) else break end + count = count + 1 end end