## 체력, 마력 색깔 설정 ##
hp_colour = 100:green, 99:lightgrey, 75:yellow, 50:lightred, 25:red
mp_colour = 100:green, 99:lightgrey, 75:yellow, 50:lightred, 25:red
stat_colour = 3:red, 7:lightred
## 체력, 마력 추가 경고 ##
menu := menu_colour
# Variables (Worst to Best)
$evil := red
$negative := brown
$danger := lightred
$warning := yellow
$boring := darkgrey
$decent := white
$good := lightblue
$positive := green
$verypositive := lightgreen
$awesome := lightmagenta
# Unusual Variables
$mp := lightcyan
$equipped := cyan
$mutation := magenta
# Damage Calc
{
local previous_hp = 0
local previous_mp = 0
local previous_form = ""
local was_berserk_last_turn = false
function AnnounceDamage()
local current_hp, max_hp = you.hp()
local current_mp, max_mp = you.mp()
--Things that increase hp/mp temporarily really mess with this
local current_form = you.transform()
local you_are_berserk = you.berserk()
local max_hp_increased = false
local max_hp_decreased = false
if (current_form ~= previous_form) then
if (previous_form:find("dragon") or
previous_form:find("statue") or
previous_form:find("tree") or
previous_form:find("ice")) then
max_hp_decreased = true
elseif (current_form:find("dragon") or
current_form:find("statue") or
current_form:find("tree") or
current_form:find("ice")) then
max_hp_increased = true
end
end
if (was_berserk_last_turn and not you_are_berserk) then
max_hp_decreased = true
elseif (you_are_berserk and not was_berserk_last_turn) then
max_hp_increased = true
end
--crawl.mpr(string.format("previous_form is: %s", previous_form))
--crawl.mpr(string.format("current_form is: %s", current_form))
--crawl.mpr(string.format("max_hp_increased is: %s", max_hp_increased and "True" or "False"))
--crawl.mpr(string.format("max_hp_decreased is: %s", max_hp_decreased and "True" or "False"))
--crawl.mpr(string:format("you_are_berserk is: %s", you_are_berserk and "True" or "False"))
--crawl.mpr(string:format("was_berserk_last_turn is: %s", was_berserk_last_turn and "True" or "False"))
--Skips message on initializing game
if previous_hp > 0 then
local hp_difference = previous_hp - current_hp
local mp_difference = previous_mp - current_mp
if max_hp_increased or max_hp_decreased then
if max_hp_increased then
crawl.mpr("이제 [" .. current_hp .. "/" .. max_hp .. "]의 체력을 가지게 되었습니다.")
else
crawl.mpr("이제 [" .. current_hp .. "/" .. max_hp .. "]의 체력을 가지게 되었습니다.")
end
else
--On losing health
if (current_hp < previous_hp) then
if current_hp <= (max_hp * 0.30) then
crawl.mpr("" .. hp_difference .. "의 피해를 받았습니다. 현재 남은 체력은 [" .. current_hp .. "/" .. max_hp .. "] 입니다.")
elseif current_hp <= (max_hp * 0.50) then
crawl.mpr("" .. hp_difference .. "의 피해를 받았습니다. 현재 남은 체력은 [" .. current_hp .. "/" .. max_hp .. "] 입니다.")
elseif current_hp <= (max_hp * 0.70) then
crawl.mpr("" .. hp_difference .. "의 피해를 받았습니다. 현재 남은 체력은 [" .. current_hp .. "/" .. max_hp .. "] 입니다.")
elseif current_hp <= (max_hp * 0.90) then
crawl.mpr("" .. hp_difference .. "의 피해를 받았습니다. 현재 남은 체력은 [" .. current_hp .. "/" .. max_hp .. "] 입니다.")
else
crawl.mpr("" .. hp_difference .. "의 피해를 받았습니다. 현재 남은 체력은 [" .. current_hp .. "/" .. max_hp .. "] 입니다.")
end
if hp_difference > (max_hp * 0.20) then
crawl.mpr("악! 이건 정말로 아프다!")
end
end
--On gaining more than 1 health
if (current_hp > previous_hp) then
--Removes the negative sign
local health_inturn = (0 - hp_difference)
if (health_inturn > 1) and not (current_hp == max_hp) then
if current_hp <= (max_hp * 0.30) then
crawl.mpr("" .. health_inturn .. "의 체력을 얻었습니다. 현재 체력은 [" .. current_hp .. "/" .. max_hp .. "] 입니다.")
elseif current_hp <= (max_hp * 0.50) then
crawl.mpr("" .. health_inturn .. "의 체력을 얻었습니다. 현재 체력은 [" .. current_hp .. "/" .. max_hp .. "] 입니다.")
elseif current_hp <= (max_hp * 0.70) then
crawl.mpr("" .. health_inturn .. "의 체력을 얻었습니다. 현재 체력은 [" .. current_hp .. "/" .. max_hp .. "] 입니다.")
elseif current_hp <= (max_hp * 0.90) then
crawl.mpr("" .. health_inturn .. "의 체력을 얻었습니다. 현재 체력은 [" .. current_hp .. "/" .. max_hp .. "] 입니다.")
else
crawl.mpr("" .. health_inturn .. "의 체력을 얻었습니다. 현재 체력은 [" .. current_hp .. "/" .. max_hp .. "] 입니다.")
end
end
if (current_hp == max_hp) then
crawl.mpr("체력이 전부 회복되었습니다. (" .. current_hp .. ")")
end
end
--On gaining more than 1 magic
if (current_mp > previous_mp) then
--Removes the negative sign
local mp_inturn = (0 - mp_difference)
if (mp_inturn > 1) and not (current_mp == max_mp) then
if current_mp < (max_mp * 0.25) then
crawl.mpr("" .. mp_inturn .. "의 마력를 얻었습니다. 현재 마력은 [" .. current_mp .. "/" .. max_mp .. "] 입니다.")
elseif current_mp < (max_mp * 0.50) then
crawl.mpr("" .. mp_inturn .. "의 마력을 얻었습니다. 현재 마력은 [" .. current_mp .. "/" .. max_mp .. "] 입니다.")
else
crawl.mpr("" .. mp_inturn .. "의 마력을 얻었습니다. 현재 마력은 [" .. current_mp .. "/" .. max_mp .. "] 입니다.")
end
end
if (current_mp == max_mp) then
crawl.mpr("마력이 전부 회복되었습니다. (" .. current_mp .. ")")
end
end
--On losing magic
if current_mp < previous_mp then
if current_mp <= (max_mp / 5) then
crawl.mpr("현재 남은 마력은 [" .. current_mp .. "/" ..max_mp .."] 입니다.")
elseif current_mp <= (max_mp / 2) then
crawl.mpr("현재 남은 마력은 [" .. current_mp .. "/" ..max_mp .."] 입니다.")
else
crawl.mpr("현재 남은 마력은 [" .. current_mp .. "/" ..max_mp .."] 입니다.")
end
end
end
end
--Set previous hp/mp and form at end of turn
previous_hp = current_hp
previous_mp = current_mp
previous_form = current_form
was_berserk_last_turn = you_are_berserk
end
}
## 스킬 메뉴 열기 ##
{
local need_skills_opened = true
function OpenSkills()
if you.turns() == 0 and need_skills_opened then
need_skills_opened = false
crawl.sendkeys("m")
end
end
}
## Logs chat messages into the notes ##
note_chat_messages = true
## 게임 시작시 실행하는 함수 목록 ##
{
function ready()
AnnounceDamage()
--SpoilerAlert()
OpenSkills()
end
}
## 스킬 수련 기본 설정값 메뉴얼 ##
default_manual_training = true