This commit is contained in:
Axel Cocat
2021-10-06 10:21:28 +02:00
2 changed files with 60 additions and 65 deletions

View File

@@ -2522,49 +2522,47 @@ namespace LuaPlayer
}
/**
* Repairs [Item] at specified position. Returns total repair cost
* Repairs [Item] at specified position.
*
* @param uint16 position
* @param bool cost = true
* @param float discountMod
* @param bool guildBank = false
* @return uint32 totalCost
* @param float discountMod = 1.0
*/
int DurabilityRepair(lua_State* L, Player* player)
{
uint16 position = Eluna::CHECKVAL<uint16>(L, 2);
bool cost = Eluna::CHECKVAL<bool>(L, 3, true);
float discountMod = Eluna::CHECKVAL<float>(L, 4);
bool guildBank = Eluna::CHECKVAL<bool>(L, 5, false);
bool takeCost = Eluna::CHECKVAL<bool>(L, 3, true);
float discountMod = Eluna::CHECKVAL<float>(L, 4, 1.0f);
#ifdef CLASSIC
Eluna::Push(L, player->DurabilityRepair(position, cost, discountMod));
player->DurabilityRepair(position, takeCost, discountMod);
#elif defined(TRINITY)
player->DurabilityRepair(position, takeCost, discountMod);
#else
Eluna::Push(L, player->DurabilityRepair(position, cost, discountMod, guildBank));
player->DurabilityRepair(position, takeCost, discountMod, false);
#endif
return 1;
return 0;
}
/**
* Repairs all [Item]s. Returns total repair cost
* Repairs all [Item]s.
*
* @param bool cost = true
* @param float discountMod = 1
* @param bool takeCost = true
* @param float discountMod = 1.0
* @param bool guidBank = false
* @return uint32 totalCost
*/
int DurabilityRepairAll(lua_State* L, Player* player)
{
bool cost = Eluna::CHECKVAL<bool>(L, 2, true);
bool takeCost = Eluna::CHECKVAL<bool>(L, 2, true);
float discountMod = Eluna::CHECKVAL<float>(L, 3, 1.0f);
bool guildBank = Eluna::CHECKVAL<bool>(L, 4, false);
#ifdef CLASSIC
Eluna::Push(L, player->DurabilityRepairAll(cost, discountMod));
player->DurabilityRepairAll(takeCost, discountMod);
#else
Eluna::Push(L, player->DurabilityRepairAll(cost, discountMod, guildBank));
player->DurabilityRepairAll(takeCost, discountMod, guildBank);
#endif
return 1;
return 0;
}
/**

View File

@@ -436,7 +436,7 @@ namespace LuaUnit
return 1;
}
#endif
/**
* Returns true if the [Unit] is in combat.
*
@@ -451,7 +451,7 @@ namespace LuaUnit
#endif
return 1;
}
/**
* Returns true if the [Unit] is under water.
*
@@ -462,7 +462,7 @@ namespace LuaUnit
Eluna::Push(L, unit->IsUnderWater());
return 1;
}
/**
* Returns true if the [Unit] is in water.
*
@@ -473,7 +473,7 @@ namespace LuaUnit
Eluna::Push(L, unit->IsInWater());
return 1;
}
/**
* Returns true if the [Unit] is not moving.
*
@@ -484,7 +484,7 @@ namespace LuaUnit
Eluna::Push(L, unit->IsStopped());
return 1;
}
/**
* Returns true if the [Unit] is a quest giver.
*
@@ -499,7 +499,7 @@ namespace LuaUnit
#endif
return 1;
}
/**
* Returns true if the [Unit]'s health is below the given percentage.
*
@@ -511,7 +511,7 @@ namespace LuaUnit
Eluna::Push(L, unit->HealthBelowPct(Eluna::CHECKVAL<int32>(L, 2)));
return 1;
}
/**
* Returns true if the [Unit]'s health is above the given percentage.
*
@@ -523,7 +523,7 @@ namespace LuaUnit
Eluna::Push(L, unit->HealthAbovePct(Eluna::CHECKVAL<int32>(L, 2)));
return 1;
}
/**
* Returns true if the [Unit] has an aura from the given spell entry.
*
@@ -587,7 +587,7 @@ namespace LuaUnit
Eluna::Push(L, unit->IsFlying());
return 1;
}*/
/**
* Returns the [Unit]'s owner.
*
@@ -598,7 +598,7 @@ namespace LuaUnit
Eluna::Push(L, unit->GetOwner());
return 1;
}
/**
* Returns the [Unit]'s owner's GUID.
*
@@ -613,7 +613,7 @@ namespace LuaUnit
#endif
return 1;
}
/**
* Returns the [Unit]'s mount's modelID.
*
@@ -624,7 +624,7 @@ namespace LuaUnit
Eluna::Push(L, unit->GetMountID());
return 1;
}
/**
* Returns the [Unit]'s creator's GUID.
*
@@ -639,7 +639,7 @@ namespace LuaUnit
#endif
return 1;
}
/**
* Returns the [Unit]'s charmer's GUID.
*
@@ -654,7 +654,7 @@ namespace LuaUnit
#endif
return 1;
}
/**
* Returns the GUID of the [Unit]'s charmed entity.
*
@@ -671,7 +671,7 @@ namespace LuaUnit
#endif
return 1;
}
/**
* Returns the GUID of the [Unit]'s pet.
*
@@ -686,7 +686,7 @@ namespace LuaUnit
#endif
return 1;
}
/**
* Returns the GUID of the [Unit]'s charmer or owner.
*
@@ -701,7 +701,7 @@ namespace LuaUnit
#endif
return 1;
}
/**
* Returns the GUID of the [Unit]'s charmer or owner or its own GUID.
*
@@ -750,7 +750,7 @@ namespace LuaUnit
Eluna::Push(L, unit->GetUInt32Value(PLAYER_FIELD_MOD_DAMAGE_DONE_POS + spellschool));
return 1;
}
/**
* Returns the [Unit]'s current victim target or nil.
*
@@ -791,7 +791,7 @@ namespace LuaUnit
Eluna::Push(L, unit->GetCurrentSpell(type));
return 1;
}
/**
* Returns the [Unit]'s current stand state.
*
@@ -806,7 +806,7 @@ namespace LuaUnit
#endif
return 1;
}
/**
* Returns the [Unit]'s current display ID.
*
@@ -817,7 +817,7 @@ namespace LuaUnit
Eluna::Push(L, unit->GetDisplayId());
return 1;
}
/**
* Returns the [Unit]'s native/original display ID.
*
@@ -828,7 +828,7 @@ namespace LuaUnit
Eluna::Push(L, unit->GetNativeDisplayId());
return 1;
}
/**
* Returns the [Unit]'s level.
*
@@ -843,7 +843,7 @@ namespace LuaUnit
#endif
return 1;
}
/**
* Returns the [Unit]'s health amount.
*
@@ -1115,7 +1115,7 @@ namespace LuaUnit
* CREATURE_TYPE_MECHANICAL = 9,
* CREATURE_TYPE_NOT_SPECIFIED = 10,
* CREATURE_TYPE_TOTEM = 11,
* CREATURE_TYPE_NON_COMBAT_PET = 12, // This and below is TBC+
* CREATURE_TYPE_NON_COMBAT_PET = 12, // This and below is TBC+
* CREATURE_TYPE_GAS_CLOUD = 13
* };
* </pre>
@@ -1414,7 +1414,7 @@ namespace LuaUnit
* WAYPOINT_MOTION_TYPE = 2,
* MAX_DB_MOTION_TYPE = 3,
* ANIMAL_RANDOM_MOTION_TYPE = 3, // TC
*
*
* CONFUSED_MOTION_TYPE = 4,
* CHASE_MOTION_TYPE = 5,
* HOME_MOTION_TYPE = 6,
@@ -1423,7 +1423,7 @@ namespace LuaUnit
* FLEEING_MOTION_TYPE = 9,
* DISTRACT_MOTION_TYPE = 10,
* ASSISTANCE_MOTION_TYPE = 11,
* ASSISTANCE_DISTRACT_MOTION_TYPE = 12,
* ASSISTANCE_DISTRACT_MOTION_TYPE = 12,
* TIMED_FLEEING_MOTION_TYPE = 13,
* FOLLOW_MOTION_TYPE = 14,
* EFFECT_MOTION_TYPE = 15, // mangos
@@ -2012,7 +2012,7 @@ namespace LuaUnit
#endif
return 0;
}
/**
* Mounts the [Unit] on the given displayID/modelID.
*
@@ -2025,7 +2025,7 @@ namespace LuaUnit
unit->Mount(displayId);
return 0;
}
/**
* Dismounts the [Unit].
*/
@@ -2044,7 +2044,7 @@ namespace LuaUnit
return 0;
}
/**
* Makes the [Unit] perform the given emote.
*
@@ -2492,7 +2492,7 @@ namespace LuaUnit
#endif
return 0;
}
/**
* Makes the [Unit] cast the spell to the given coordinates, used for area effect spells.
*
@@ -2581,7 +2581,7 @@ namespace LuaUnit
unit->InterruptSpell((CurrentSpellTypes)spellType, delayed);
return 0;
}
/**
* Adds the [Aura] of the given spell entry on the given target from the [Unit].
*
@@ -2633,7 +2633,7 @@ namespace LuaUnit
#endif
return 1;
}
/**
* Removes [Aura] of the given spell entry from the [Unit].
*
@@ -2645,7 +2645,7 @@ namespace LuaUnit
unit->RemoveAurasDueToSpell(spellId);
return 0;
}
/**
* Removes all [Aura]'s from the [Unit].
*
@@ -2684,7 +2684,7 @@ namespace LuaUnit
#endif
return 0;
}
/**
* Removes the given unit state from the [Unit].
*
@@ -2701,7 +2701,7 @@ namespace LuaUnit
#endif
return 0;
}
/**
* Makes the [Unit] teleport to given coordinates within same map.
*
@@ -2824,14 +2824,16 @@ namespace LuaUnit
#elif AZEROTHCORE
if (!spell)
{
uint32 absorb = 0;
uint32 resist = 0;
unit->CalcAbsorbResist(unit, target, schoolmask, SPELL_DIRECT_DAMAGE, damage, &absorb, &resist);
if (damage <= absorb + resist)
DamageInfo dmgInfo(unit, target, damage, nullptr, schoolmask, SPELL_DIRECT_DAMAGE);
unit->CalcAbsorbResist(dmgInfo);
if (!dmgInfo.GetDamage())
damage = 0;
else
damage -= absorb + resist;
damage = dmgInfo.GetDamage();
uint32 absorb = dmgInfo.GetAbsorb();
uint32 resist = dmgInfo.GetResist();
unit->DealDamageMods(target, damage, &absorb);
Unit::DealDamage(unit, target, damage, NULL, DIRECT_DAMAGE, schoolmask, NULL, false);
unit->SendAttackStateUpdate(HITINFO_AFFECTS_VICTIM, target, 0, schoolmask, damage, absorb, resist, VICTIMSTATE_HIT, 0);
@@ -2845,7 +2847,7 @@ namespace LuaUnit
if (!spellInfo)
return 0;
SpellNonMeleeDamage dmgInfo(unit, target, spell, spellInfo->GetSchoolMask());
SpellNonMeleeDamage dmgInfo(unit, target, spellInfo, spellInfo->GetSchoolMask());
Unit::DealDamageMods(dmgInfo.target, dmgInfo.damage, &dmgInfo.absorb);
unit->SendSpellNonMeleeDamageLog(&dmgInfo);
unit->DealSpellDamage(&dmgInfo, true);
@@ -2890,17 +2892,12 @@ namespace LuaUnit
uint32 amount = Eluna::CHECKVAL<uint32>(L, 4);
bool critical = Eluna::CHECKVAL<bool>(L, 5, false);
#ifdef TRINITY
#if defined TRINITY || AZEROTHCORE
if (const SpellInfo* info = sSpellMgr->GetSpellInfo(spell))
{
HealInfo healInfo(unit, target, amount, info, info->GetSchoolMask());
unit->HealBySpell(healInfo, critical);
}
#elif AZEROTHCORE
if (const SpellInfo* info = sSpellMgr->GetSpellInfo(spell))
{
unit->HealBySpell(target, info, amount, critical);
}
#else
#ifdef CMANGOS
SpellEntry const* spellEntry = GetSpellStore()->LookupEntry<SpellEntry>(spell);