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)