| 554 | } |
| 555 | |
| 556 | LuaCallbacks Monster::makeMonsterCallbacks() { |
| 557 | LuaCallbacks callbacks; |
| 558 | |
| 559 | callbacks.registerCallback("type", [this]() { |
| 560 | return m_monsterVariant.type; |
| 561 | }); |
| 562 | |
| 563 | callbacks.registerCallback("seed", [this]() { |
| 564 | return toString(m_monsterVariant.seed); |
| 565 | }); |
| 566 | |
| 567 | callbacks.registerCallback("uniqueParameters", [this]() { |
| 568 | return m_monsterVariant.uniqueParameters; |
| 569 | }); |
| 570 | |
| 571 | callbacks.registerCallback("level", [this]() { |
| 572 | return *m_monsterLevel; |
| 573 | }); |
| 574 | |
| 575 | callbacks.registerCallback("setDamageOnTouch", [this](bool arg1) { |
| 576 | m_damageOnTouch = arg1; |
| 577 | }); |
| 578 | |
| 579 | callbacks.registerCallback("setDamageSources", [this](Maybe<JsonArray> const& damageSources) { |
| 580 | m_damageSources.set(damageSources.value().transformed(construct<DamageSource>())); |
| 581 | }); |
| 582 | |
| 583 | callbacks.registerCallback("setDamageParts", [this](StringSet const& parts) { |
| 584 | m_animationDamageParts.set(parts); |
| 585 | }); |
| 586 | |
| 587 | callbacks.registerCallback("setAggressive", [this](bool arg1) { |
| 588 | m_aggressive = arg1; |
| 589 | }); |
| 590 | |
| 591 | callbacks.registerCallback("setActiveSkillName", [this](Maybe<String> const& activeSkillName) { |
| 592 | m_activeSkillName = activeSkillName.value(); |
| 593 | }); |
| 594 | |
| 595 | callbacks.registerCallback("setDropPool", [this](Json dropPool) { |
| 596 | m_dropPool = std::move(dropPool); |
| 597 | }); |
| 598 | |
| 599 | callbacks.registerCallback("toAbsolutePosition", [this](Vec2F const& p) { |
| 600 | return getAbsolutePosition(p); |
| 601 | }); |
| 602 | |
| 603 | callbacks.registerCallback("mouthPosition", [this]() { |
| 604 | return mouthPosition(); |
| 605 | }); |
| 606 | |
| 607 | // This callback is registered here rather than in |
| 608 | // makeActorMovementControllerCallbacks |
| 609 | // because it requires access to world |
| 610 | callbacks.registerCallback("flyTo", [this](Vec2F const& arg1) { |
| 611 | m_movementController->controlFly(world()->geometry().diff(arg1, position())); |
| 612 | }); |
| 613 |
nothing calls this directly
no test coverage detected