CombatUnit Methods - MemeMayhem/ModExamples GitHub Wiki

In our Mod Examples, you often see something like this:

combat_unit.Attack:RegisterOnMissileImpactCallback(name, function(level, attack_data, caster, target)
    if attack_data.missile_id == "my_power_rock" then
        for i = 1, level do
            combat_unit.Attack:NewMissileAttack(target, "attack_rock")
        end
    end
end)

In above example, both caster and target in the callback function parameters are CombatUnit type instance, which provides bunch of useful methods. Besides, each CombatUnit also has a AttackManager instance, which also provides useful methods. Assuming you have a CombatUnit called caster, you can access its AttackManager like this:

local attack_manager = caster:Attack

Below is the method list of CombatUnit.

CombatUnit:IsAlive()
CombatUnit:GetMainOpponent()

---@param name string
---@param apply_event: string
---@param skip_animations: boolean
---@param is_temp: boolean
CombatUnit:ApplyPerk(name, apply_event, skip_animations, is_temp)

---@param name string
CombatUnit:RemoveRelic(name)

---@param name string
---@param apply_event string
---@param skip_animations boolean
CombatUnit:ApplyRelic(name, apply_event, skip_animations)

CombatUnit:GetPerks()

---@param name string
CombatUnit:GetPerkLevel(name)

---@param name string
CombatUnit:HasPerk(name)

---@param name string
CombatUnit:GetRelics()

CombatUnit:GetRelicLevel(name)

---@param name string
CombatUnit:HasRelic(name)

---@param key string
CombatUnit:GetRawAttribute(key)

---@param key string
CombatUnit:GetBoundedAttribute(key)

---@param key string
---@param value number
CombatUnit:SetAttribute(key, value)

---@param key string
---@param value number
---@param use_animation boolean
---@param skip_buffer boolean
CombatUnit:ModifyAttribute(key, value, use_animation, skip_buffer)

CombatUnit:GetMaximumHealth()

CombatUnit:GetCurrentHealth()

---@param value number
CombatUnit:SetCurrentHealth(value)

---@param value number
CombatUnit:ModifyCurrentHealth(value)

---@param value number
CombatUnit:GetMaximumEnergy()

CombatUnit:GetCurrentEnergy()

CombatUnit:SetCurrentEnergy(value)

---@param value number
CombatUnit:ModifyCurrentEnergy(value)

---@param value number
CombatUnit:IsEnergyFull()

---@param behavior_name string
CombatUnit:HasBehavior(behavior_name)

CombatUnit:GetAttackSpeed()

CombatUnit:GetHealthRegen()

CombatUnit:GetCritChance()

CombatUnit:GetDodgeChance()

CombatUnit:GetUltimateDamage()

---@param amount number
---@param digit_type table
CombatUnit:Heal(amount, digit_type)

---@param amount number
---@param caster CombatUnit
---@param display_args table
CombatUnit:Damage(amount, caster, display_args)

---@param direction number (0 or 1)
---@param is_big_shake boolean
CombatUnit:Shake(direction, is_big_shake)

CombatUnit:Kill()

CombatUnit:UpdateEmojiMagazineUi()

CombatUnit:IsMob()

CombatUnit:IsHero()

CombatUnit:IsBoss()

CombatUnit:IsFinalBoss()

---@param callback fun(level)
CombatUnit:RegisterOnUnitCreateCallback(perk_or_relic_name, callback)

---@param callback fun(level)
CombatUnit:RegisterOnBeforeCombatStartCallback(perk_or_relic_name, callback)

---@param callback fun(level, target)
CombatUnit:RegisterOnCombatStartCallback(perk_or_relic_name, callback)

---@param callback fun(level)
CombatUnit:RegisterOnCombatEndCallback(perk_or_relic_name, callback)

---@param callback fun(level, time)
CombatUnit:RegisterOnCombatPeriodicCallback(perk_or_relic_name, callback)

---@param callback fun(level, time)
CombatUnit:RegisterOnCombatDelayedCallback(perk_or_relic_name, callback)

---@param callback fun(level, damage_amount, attacker, defender)
CombatUnit:RegisterOnDamageTakenCallback(perk_or_relic_name, callback)

---@param callback fun(level, damage_amount, attacker, defender)
CombatUnit:RegisterOnDamageDealCallback(perk_or_relic_name, callback)

---@param callback fun(level, heal_amount, healer)
CombatUnit:RegisterOnHealCallback(perk_or_relic_name, callback)

---@param callback fun(level, consume_amount)
CombatUnit:RegisterOnGoldConsumeCallback(perk_or_relic_name, callback)

---@param callback fun(level, current_gold)
CombatUnit:RegisterOnPlayerGoldChangeCallback(perk_or_relic_name, callback)

---@param callback fun(level, perk_id)
CombatUnit:RegisterOnBuyPerkCallback(perk_or_relic_name, callback)

---@param callback fun(level, relic_id)
CombatUnit:RegisterOnBuyRelicCallback(perk_or_relic_name, callback)

---@param callback fun(level, caster, target)
CombatUnit:RegisterOnStunnedCallback(perk_or_relic_name, callback)

---@param callback fun(level, caster, target)
CombatUnit:RegisterOnEnemyStunnedCallback(perk_or_relic_name, callback)

---@param callback fun(level, caster, target)
CombatUnit:RegisterOnStunnedEndCallback(perk_or_relic_name, callback)

---@param callback fun(level, caster, target)
CombatUnit:RegisterOnEnemyStunnedEndCallback(perk_or_relic_name, callback)

---@param callback fun(level, caster, target)
CombatUnit:RegisterOnPoolymorphedCallback(perk_or_relic_name, callback)

---@param callback fun(level, caster, target)
CombatUnit:RegisterOnEnemyPoolymorphedCallback(perk_or_relic_name, callback)

---@param callback fun(level, attribute, old_value, new_value)
CombatUnit:RegisterOnSetAttributeCallback(perk_or_relic_name, callback)

---@param callback fun(level, attack_data, caster)
CombatUnit:RegisterOnOpponentMissileLaunchCallback(perk_or_relic_name, callback)
⚠️ **GitHub.com Fallback** ⚠️