Lua 伤害统计百分比

我正在使用 Lua 制作一张战斗表,但我对 Lua 还很陌生。输出结果应该像这样:

上次战斗结果:

造成伤害:
1 >>>> Alice 200 (CRITICAL)
2 Bob 60
3 Alice 30
4 Alice 30
5 >>>> Alice 45 (CRITICAL)
6 >>>> Bob 120 (CRITICAL)
7 Bob 300
8 Alice 100
9 Bob 50

总伤害百分比:

1 Bob 57%
1 重击 (1) 57%
2 熔岩鞭 (2) 34%
3 轻击 (1) 9%
2 Alice 43%
1 水晶碎片 (2) 74%
2 闪电溅射 (3) 26%

你的伤害统计:

平均伤害:81
最小伤害:30
最大伤害:200

治疗统计:

1 >>>> Carol 400 (CRITICAL)
2 Carol 200
3 Alice 200

总治疗百分比:

1 Carol 75%
1 恢复 (2) 100%
2 Alice 25%
1 恢复 (1) 100%

你的治疗统计:

平均治疗:200
最小治疗:200
最大治疗:200

我已经编写了关键部分,现在我卡在计算总伤害百分比上了。任何帮助都将不胜感激。这是一段代码:

function CombatReport:OnEndCombat(combatEndTime)
combatDurationTime = combatEndTime - self.combatStartTime + 1
print("*****************************************")
print("** Combat Report".." ("..combatDurationTime.." seconds)")
print("*****************************************")
print("上次战斗结果:\n")

damageEvents = "造成伤害:\n"
count = 1
for i = 1, self.numCombatEvents do
    damage = self.combatEvents[i][3]
    sourceName = self.combatEvents[i][1]
    isCrit = self.combatEvents[i][5]

    if damage > 0 then
        damageEvents = damageEvents .. "#"
        damageEvents = damageEvents .. count
        if isCrit then
          damageEvents = damageEvents .. " >>>>"
        end
        damageEvents = damageEvents .. " "
        damageEvents = damageEvents .. sourceName
        damageEvents = damageEvents .. " "
        damageEvents = damageEvents .. damage
        if isCrit then
          damageEvents = damageEvents .. " (CRITICAL)"
        end
        damageEvents = damageEvents .. "\n"
        count = count + 1
    end
end

print(damageEvents)

这是我编辑以添加临界部分的部分。

这是我的战斗事件:

local COMBAT_EVENTS =
{
{ "Alice",      "Molag Bal",    200,    0,      true,   1,  "Crystal Shard"         },
{ "Bob",        "Molag Bal",    60,     0,      false,  2,  "Lava Whip" },
{ "Alice",      "Molag Bal",    30,     0,      false,  3,  "Lightning Splash" },
{ "Carol",      "Alice",        0,      400,    true,   4,  "Regeneration" },
{ "Alice",      "Molag Bal",    30,     0,      false,  5,  "Lightning Splash" },
{ "Alice",      "Molag Bal",    45,     0,      true,   6,  "Lightning Splash" },
{ "Bob",        "Molag Bal",    120,    0,      true,   7,  "Lava Whip" },
{ "Bob",        "Molag Bal",    300,    0,      false,  8,  "Heavy Attack" },
{ "Carol",      "Bob",          0,      200,    false,  9,  "Regeneration" },
{ "Alice",      "Molag Bal",    100,    0,      false,  10, "Crystal Shard" },
{ "Bob",        "Molag Bal",    50,     0,      false,  11, "Light Attack" },
{ "Alice",      "Alice",        0,      200,    false,  12, "Regeneration" }
}
点赞