Files @ 4755c7b34e4c
Branch filter:

Location: games/Awakening/startup.lua

Silverwing
Navjiarr book corrections
global {
    warehouse18_found = false;
    warehouse32_found = false;
    warehouse32_visited = false;
    dock_found = false;
    leviathan_discovered = false;

    atlantis_found = false;
    temple_found = false;

    iraaphaanotrr_found = false;
    iraaphaanotrr_temple_found = false;

    dypatreanotrr_found = false;
    dypatreanotrr_night_found = false;
    dypatreanotrr_temple_found = false;

    venaedanotrr_found = false;
    venaedanotrr_ravine_found = false;
    venaedanotrr_temple_found = false;

    nleyyslanotrr_found = false;

    deep_temple_found = false;
    lseryanotrr_found = false;

    rel_phaetlarr = 0;
    rel_walter = 0;
    rel_learr = 0;
    rel_anna = 0;
    rel_jack = 0;
    language_known = false;
    cart_known = false;
    
    dt_code = {};
    dt_buttons = {};

    raybox_task = false;
    raybox_task_finished = false;

    --Глобальные состояния(для концовок)
    mtr_outcome = 0; -- 1 - leroy accused, 2 - jones accused, 3 - failed to prove

    conflict_resolved = false; -- Решен ли конфликт между навьярами
    artifacts_returned = false; -- Вернили ли артефакты из храма навьярам?
    wright_state = 0; -- был взят Райт на борт или нет
    goldman_state = 0; -- 0 - Голдман не раскрыт, 1 - Голдман казнен, 2 - Голдман задержан, 3 - Голдман изгнан
    leroy_state = 0; -- 0 - Леруа не раскрыт, 1 - Леруа казнен, 2 - Леруа задержан, 3 - Леруа изгнан
    iraa_wand = false; -- был ли возвращен скипетр в Ираафаанотр
    iraa_map = false; -- был ли возвращен оригинал карты в Ираафаанотр
    dyp_map = false; -- Передана ли карта(оригинал или копия в Дипатреанотр)
    svetlova_help = 0; -- Дополнительная помощь, оказанная Светловой в исследовании навьяров --увеличивается, если показать ей КНО и скипетр
};

game.enable_save = function ()
    if here().nosave then
        return false;
    end;
    return true;
end;

game.enable_autosave = function ()
    if here().noautosave then
        return false;
    end;
    return true;
end;


player_drake = player {
    var {
        hp = 10;
        has_light = false;
        party = {};
        companion = nil;
        money = 200;
    };
    nam = "player";
    disp = "Дэвид Дрейк";
    disp2 = "Дрейка";
    disp3 = "Дрейку";
    where = 'port';
    
    obj = {'hp_indicator', 'item_charts', 'item_note_1', 'item_money'};
    
    pay = function(s, c)
        if (s.money >= c) then
            s.money = s.money - c;
            return true;
        else
            return false;
        end;
    end;
};

intro = room {
    nam = "intro";
    hideinv = true;
    disp = "Вступление";
    dsc = [[Пароход "Северное сияние" причаливает в порту Лондона. Всего неделю назад вы нашли в доме, где жили вместе со своей матерью тайник, оставленный бесследно исчезнувшим отцом -- Уильямом Дрейком, владельцем транспортной компании "Вестхейвен Трансоушен". ^Сейчас у вас на руках есть лишь небольшая сумма, заблаговременно снятая со счета, да кипа старых бумаг, которая, быть может, позволит выяснить, что случилось с пропавшим Уильямом.
    ]];
    way = {
        kh_vroom("Начать игру", 'aurora_borealis');
    }
};

game.nam = "Пробуждение";
game.dsc = [[
    Действие игры происходит в конце 19-го века. Вы играете за Дэвида Дрейка, сына владельца крупной транспортной компании "Вестхейвен Трансоушен". Несколько лет назад Уильям Дрейк, отец главного героя бесследно пропадает. Компания вскоре разваливается. Поиски ни к чему не приводят. Когда казалось бы уже все потеряно, в доме Дрейков находят тайник с документами Уильяма. Несколько схем строений, принадлежащих компании и клочок бумаги с адресом некоего Майкла Райта в Лондоне. Естественно, Дэвид как можно скорее отправляется в Великобританию...
    Вам предстоит отыскать подводную лодку, посетить подводную станцию, построенную Уильямом, встретить древнюю расу подводных жителей, поучаствовать в событиях, описанных древними легендами этой расы и узнать, что стало с Уильямом Дрейком.
]];

game_act_phrases = {
    "Вы не знаете, что с этим делать. ";
    "Вам нет смысла это трогать. ";
    "Вам это ничем не поможет. ";
    "Это бессмысленно. ";
    "Незачем это трогать. ";
};

game_use_phrases = {
    "Вам это ничем не поможет. ";
    "Это бессмысленно. ";
    "Вы не знаете, как это сделать. "
};

game.act = function(s)
    return game_act_phrases[rnd(#game_act_phrases)];
end;

game.use = function(s)
    return game_use_phrases[rnd(#game_use_phrases)];
end;
game.inv = "INV: Если вы видите это сообщение -- это баг. ";

--[[
-- This function gathers all game info and returns room name for proper ending
 ]]
function prepare_ending(nstate)
    if atl_mtr_finished_jones then
        atlantis_state = 4;
    elseif atl_iyh_shockfish_dead then
        atlantis_state = 5;
    elseif iraa_wand then
        atlantis_state = 1;
    elseif iraa_map then
        atlantis_state = 2;
    elseif dyp_map then
        atlantis_state = 3;
    end;

    naethvjirr_state = nstate;

    if nstate == 1 then
        return "ending_naethvjirr_prevails_david";
    elseif nstate == 2 then
        return "ending_naethvjirr_prevails_william";
    elseif nstate == 3 or nstate == 4 then
        return "ending_naethvjirr_destroyed";
    elseif nstate == 5 then
        return "ending_naethvjirr_prevails";
    end;
end

function init()
    ---modules init
    pl = player_drake;
    --putf("debug_tool", stead.me())
    atlantis_init();
    leviathan_init();
    warehouse18_init();
    warehouse32_init();

    if prefs.language then
        language = prefs.language;
    else
        prefs.language = language;
    end;
    
    local nums = {1,2,3,4,5,6};
    if #dt_code == 0 then
        for i = 1, 4 do
            local index = rnd(#nums);
            table.insert(dt_code, nums[index]);
        end;
    end;
    nums = {1,2,3,4,5,6};
    for i = 1, 3 do 
        local index = rnd(#nums);
        table.insert(dt_buttons, nums[index]);
        table.remove(nums, index);
    end;
    ---game init
    pl.where = intro;
    ---debug
    --take(item_book_on_navjiarr);
    --pl.party = {'wright', 'radcliffe', 'learr', 'phaetlarr'};
    --char_learr:accompany(true);
    --char_radcliffe:accompany(true);
    --char_learr:accompany(true);
    --char_phaetlarr:accompany(true);
    --pl.where = dyp_crab_fight_intro;
    -- pl.where = lse_prison_fight_intro;
    -- pl.where = lse_final_battle;

    --take(item_colt);
    --take(item_harpoon);
    --[[put(char_learr, 'aurora_borealis');
    atl_iyh_state = 7;
    ven_quest_status = 8;
    atl_ctt_iraa_refusal = true;
    aurora_borealis.underwater = true;]]
    --[[pl.where = "lse_final_battle";
    lse_pylon1.hp = 0;
    pl.obj[2] = item_harpoon;
    pl.obj[3] = item_colt;]]
end;