1
0
Fork 0
mirror of https://gitlab.com/Oreolek/duel.git synced 2024-06-28 04:45:09 +03:00

Параметры персонажа, лист персонажа

This commit is contained in:
Alexander Yakovlev 2017-03-15 17:31:30 +07:00
parent df7bc9725c
commit 134181ed73
3 changed files with 61 additions and 4 deletions

View file

@ -63,7 +63,7 @@ dlg {
'Кто вы?', 'Кто вы?',
function() function()
char.knows_kef = true char.knows_kef = true
return 'Я — программируемый секретарь КЕ-2167Ф. Можно Кеф для краткости.' return 'Я — программируемый секретарь КЕ-2469Ф. Можно Кеф для краткости.'
end, end,
}; };
{ {
@ -80,6 +80,7 @@ dlg {
end, end,
'Что означает надпись «добро»? Чем вы занимаетесь как группа?', 'Что означает надпись «добро»? Чем вы занимаетесь как группа?',
function() function()
changeop('reputation', 1)
char.knows_robots = true char.knows_robots = true
return [[Мы занимаемся добром. Мы действуем на пользу общества.]] return [[Мы занимаемся добром. Мы действуем на пользу общества.]]
end end

View file

@ -8,6 +8,15 @@ init = function ()
return false return false
end end
char.quests = {} char.quests = {}
char.wounds = 0
char.actions = 50
char.reputation = 50
place(menu {
nam = "Персонаж",
menu = function()
walk('character')
end
}, me())
place(menu { place(menu {
nam = "Карта", nam = "Карта",
menu = function() menu = function()
@ -123,6 +132,18 @@ rndalt = function(yes, no)
end end
return no return no
end end
gendered = function(he, she, it, they)
if char.gender == 'she' then
return she
end
if char.gender == 'he' then
return he
end
if char.gender == 'they' then
return they
end
return it
end
official = function() official = function()
if char.gender == 'she' then if char.gender == 'she' then
return 'уважаемая' return 'уважаемая'
@ -135,3 +156,20 @@ official = function()
end end
return 'уважаемые' return 'уважаемые'
end end
opposed = function(value)
local retval = '['
for i=1,10,1 do
retval = retval .. '='
if math.floor(value/10) == i then
retval = retval .. '*'
end
end
retval = retval ..']'
return retval
end
changeop = function(name, delta)
rawset(char, name, fairadd(rawget(char, name), delta))
end
fairadd = function(value, add)
return Math.floor(value + (100-value)*(add/100))
end

24
ui.lua
View file

@ -1,5 +1,6 @@
obj { obj {
nam = 'back', nam = 'back',
dsc = function() return fmt.c("{Назад}") end,
act = function() act = function()
return walkout() return walkout()
end end
@ -32,9 +33,7 @@ room {
return map return map
end, end,
decor = [[ decor = [[
Вы сверяетесь с картой.^^ Вы сверяетесь с картой.
{back|Назад}
]], ]],
obj = {'back'} obj = {'back'}
} }
@ -122,3 +121,22 @@ dlg {
}; };
}} }}
} }
room {
nam = 'character',
disp = 'Персонаж',
hideinv = true,
decor = function()
return [[Обращение: ]]..fmt.tab('20%')..pronoun_3()..
[[^Действия: ]]..fmt.tab('20%')..
'Оригинальность'..fmt.tab('40%')..opposed(char.actions)..' Традиционность'..
fmt.tab('80%')..char.actions..'%'..
[[^Репутация: ]]..fmt.tab('20%')..
gendered('Нечестивец', 'Нечестивая', 'Нечестивое', 'Нечестивые')
..fmt.tab('40%')..opposed(char.reputation)..' '..
gendered('Святой', 'Святая', 'Святое', 'Святые')..
fmt.tab('80%')..char.reputation..'%'..
[[^Раны: ]]..fmt.tab('20%')..char.wounds..[[ (при трёх ранах ]]..plural('персонаж умрёт', 'персонажи умрут')..')^'
end,
obj = {'back'}
}