player.lua
local player = {}
function player:new(hp,def)
local self = {}
setmetatable(self,{__index = player})
self.hp = hp
self.def = def
return self
end
function player:talk()
print("hiahiahia")
end
function player:commentSkill()
self.atk = 3 ------普通攻击
end
function player:changeDef()
self.def = 25
end
return player
magician.lua
local magician = {}
local player = require("player")
magician.__index = player
function magician:new(hp,def)
--local b = player:new(hp, def)
--setmetatable(b, {__index = magician})
--return b
setmetatable(magician, {__index = player})
local self = {}
setmetatable(self,{__index = magician})
self.hp = hp
self.def = def
return self
end
function magician:skill_1(enemy)
if(enemy.def == 0) then
enemy.hp = enemy.hp-5
else
enemy.hp = enemy.hp-(5*50*0.01)
end
if(enemy.hp<25) then
enemy.def = 50
end
--self.talk()
end
function magician:talk()
print("magician talk")
end
function magician:skill_2(enemy)
if(enemy.def == 0) then
enemy.hp = enemy.hp-15
else
enemy.hp = enemy.hp-(15*50*0.01)
end
if(enemy.hp<25) then
enemy:changeDef()
end
--self.talk()
end
return magician
soldier.lua
local soldier = {}
local player = require("player")
soldier.__index = player
function soldier:new(hp,def)
--local b = player:new(hp, def)
--setmetatable(b, {__index = soldier})
--return b
setmetatable(soldier, {__index = player})
local o = {}
setmetatable(self,{__index = soldier})
self.hp = hp
self.def = def
return self
end
function soldier:skill_1(enemy)
if(enemy.def == 0) then
enemy.hp = enemy.hp-5
else
enemy.hp = enemy.hp-(5*50*0.01)
end
if(enemy.hp<25) then
enemy.def = 50
end
--self.talk()
end
function soldier:talk()
print("soldier")
end
function soldier:skill_2(enemy)
if(enemy.def == 0) then
enemy.hp = enemy.hp-15
else
enemy.hp = enemy.hp-(15*50*0.01)
end
if(enemy.hp<25) then
enemy:changeDef()
end
--self.talk()
end
return soldier
main.lua
magician = require("magician")
soldier = require("soldier")
math.randomseed(os.time())
local n = math.random(100)
mag = magician:new(n, 0)
n = math.random(25,100)
sol = soldier:new(n,0)
n = math.random(100)
print(n)
if(n%2 == 0) then
while(mag.hp>0 and sol.hp >0)
do
mag:skill_1(sol)
sol:skill_1(mag)
mag:skill_2(sol)
sol:talk()
mag:talk()
print("法师血量:"..mag.hp.." ".."法师防御:"..mag.def.." ".."战士血量:"..sol.hp.." ".."战士防御:"..sol.def)
end
if(mag.hp>sol.hp) then
print("法师的胜利!!!!!!!!!!!")
end
else
while(mag.hp>0 and sol.hp >0)
do
sol:skill_1(mag)
mag:skill_1(sol)
sol:skill_2(mag)
sol:talk()
mag:talk()
print("法师血量:"..mag.hp.." ".."法师防御:"..mag.def.." ".."战士血量:"..sol.hp.." ".."战士防御:"..sol.def)
end
if(sol.hp>mag.hp) then
print("战士的胜利!!!!!!!!!!!")
end
end
![](https://img.haomeiwen.com/i11319096/3b04ab30cbfb5d53.png)
网友评论