From 40c23bbc3d7cdc34fb0db16ea253c88d5539415b Mon Sep 17 00:00:00 2001 From: Kayne Ruse Date: Sat, 12 Apr 2014 02:54:10 +1000 Subject: [PATCH] Added the test script and some blog posts --- design doc.docx | Bin 31624 -> 34436 bytes misc/combat damage.lua | 70 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 misc/combat damage.lua diff --git a/design doc.docx b/design doc.docx index d231638a019b558ba870dfbdd178bc0c41718cd1..31fb0e00604912f79d92851a637f0d436d20a28c 100644 GIT binary patch delta 26261 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�T}u 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 TKkXUy1Q|y?LDTbj*!8~v2HWfC diff --git a/misc/combat damage.lua b/misc/combat damage.lua new file mode 100644 index 0000000..aabc313 --- /dev/null +++ b/misc/combat damage.lua @@ -0,0 +1,70 @@ +--enumeration +hitType = { MISS = 1, HIT = 2, CRITICAL = 3 } +attackType = { PHYSICAL = 1, MAGICAL = 2 } + +function MakeChar() + local t = {} + t.MaxHP = 100 + t.HP = t.MaxHP + t.MaxMP = 100 + t.MP = t.MaxMP + t.attack = 10 + t.defence = 10 + t.intelligence = 10 + t.resistance = 10 + t.accuracy = 0.1 + t.evasion = 0.1 + t.luck = 0.1 + t.level = 1 + return t +end + +function CheckHit(A, D) + local RNG = math.random(100) + local hitRate = A.accuracy - A.accuracy * D.evasion + + if RNG <= hitRate * A.luck then + return hitType.CRITICAL + end + if RNG <= hitRate then + return hitType.HIT + end + return hitType.MISS +end + +function CalcDamage(A, D, t) +-- if t == attackType.PHYSICAL then + return math.max(1, ( A.attack*3 + A.attack*(math.random(A.luck*100)/10) ) - (D.defence + D.defence*D.evasion)) +-- end +-- if t == attackType.MAGICAL then +-- --?? +-- end +-- --wtf? +end + +A = MakeChar() +D = MakeChar() + +dump = io.open("dump.txt", "w") + +--top +dump:write("\t\t") +for i = 10, 100, 10 do + dump:write(i, "\t") +end +dump:write("\n\n") + +--lines +for j = 10, 100, 10 do + dump:write(j, "\t\t") + for i = 10, 100, 10 do + A.attack = i + D.defence = j + dump:write(CalcDamage(A, D, 0), "\t") + end + dump:write("\n") +end + +--bottom +dump:write("\n") +dump:close() \ No newline at end of file