| 223 | } |
| 224 | |
| 225 | List<Drawable> MonsterDatabase::monsterPortrait(MonsterVariant const& variant) const { |
| 226 | NetworkedAnimator animator(variant.animatorConfig); |
| 227 | for (auto const& pair : variant.animatorPartTags) |
| 228 | animator.setPartTag(pair.first, "partImage", pair.second); |
| 229 | animator.setZoom(variant.animatorZoom); |
| 230 | auto colorSwap = variant.colorSwap.value(this->colorSwap(variant.parameters.getString("colors", "default"), variant.seed)); |
| 231 | if (!colorSwap.empty()) |
| 232 | animator.setProcessingDirectives(imageOperationToString(ColorReplaceImageOperation{colorSwap})); |
| 233 | auto drawables = animator.drawables(); |
| 234 | Drawable::scaleAll(drawables, TilePixels); |
| 235 | return drawables; |
| 236 | } |
| 237 | |
| 238 | std::pair<String, String> MonsterDatabase::skillInfo(String const& skillName) const { |
| 239 | if (m_skills.contains(skillName)) { |
nothing calls this directly
no test coverage detected