Commit a41b9076edc3c510531286f00685898c8aec6736
1 parent
79d6af45
增加羁绊方法
Showing
2 changed files
with
29 additions
and
0 deletions
Show diff stats
src/adv/AdvBattle.lua
src/models/RolePlugin.lua
... | ... | @@ -517,6 +517,33 @@ function RolePlugin.bind(Role) |
517 | 517 | -- self:log("gmAction",{desc = "heartWarning", count = heartWarning}) |
518 | 518 | -- end |
519 | 519 | end |
520 | + | |
521 | + function Role:getHeroActiveRelation(heros) | |
522 | + local relations = {} | |
523 | + for _, id in pairs(heros or {}) do | |
524 | + local hero = self.heros[id] | |
525 | + if hero then | |
526 | + local job = csvdb["unitCsv"][hero:getProperty("type")].job | |
527 | + relations[job] = (relations[job] or 0) + 1 | |
528 | + end | |
529 | + end | |
530 | + if not next(relations) then return {} end | |
531 | + local result = {} | |
532 | + for _, data in ipairs(csvdb["unit_relationCsv"]) do | |
533 | + local ok = true | |
534 | + for typ, count in pairs(data.relation:toNumMap()) do | |
535 | + if (relations[typ] or 0) < count then | |
536 | + ok = false | |
537 | + end | |
538 | + end | |
539 | + if ok then | |
540 | + for attr, value in pairs(data.effect:toNumMap()) do | |
541 | + result[AttsEnumEx[attr]] = (result[AttsEnumEx[attr]] or 0) + value | |
542 | + end | |
543 | + end | |
544 | + end | |
545 | + return result | |
546 | + end | |
520 | 547 | end |
521 | 548 | |
522 | 549 | return RolePlugin |
523 | 550 | \ No newline at end of file | ... | ... |