Оружие
У каждого оружия есть:
Основной урон - физический или энергетический
Дополнительный урон - Болевой шок, оглушение, ожог и т.д.
Дополнительный урон наносится при усиленном выстреле, т.е. выстреле Правой кнопкой мыши (ПКМ)
При усиленном выстреле идет двойной расход боеприпасов, т.е. вместо одного патрона расходуется два, вместо одной единицы энергии расходуется две. + усиленный выстрел имеет параметр «время перезарядки».
Время перезарядки усиленного выстрела отображаем на иконке оружия, так же как время перезарядки на иконке предмета инвентаря...
Классы оружия: Легкое-тяжелое:
Доспехи
Доспехи на персах пока постоянные, - не сменные. Доспехи не влияют на защиту перса, носят декоративный характер
Скилы
Живучесть, - Определяет количество жизней
Сила, – Определяет физическую защиту
На опыт дается 1 очко скилов.
1 единица живучести: -повышает уровень здоровья на 20
1 единица силы: -повышает защиту перса на 20
Классы:
Медик : Сила= 10; Живучесть=20
Стрелок : Сила= 15; Живучесть=15
Разрушитель : Сила= 20; Живучесть=10
*Полный баланс классов смотрите дальше, в описании сейвов
Навыки:
Меткость – повышает общую точность попадания из любого оружия (1-10 шаг 5%)
Критический выстрел – знание анатомии способствует поиску уязвимых мест на теле врагов
и обеспечивает более частые критические попадания (1-10 шаг 5%)
Мастер бластер – изучение оптики и способностей лучевого оружия обеспечивает
максимальное поражение тела врага (1-10 шаг 5%)
Прочность - снижает урон от ожогов и время оглушения (1-10 шаг 5%)
Поглощение урона – ваше знание особенностей доспехов способствует улучшению защиты
от огнестрельного оружия (1-10 шаг 5%)
Отражение урона – ваше знание специальных приемов и средств,
способствует отражению повреждений от лучевого оружия (1-10 шаг 5%)
Лечение – повышает эффективность аптечек (1-10 шаг 5%)
Атлетика - повышает переносимый вес (1-10 шаг 5%)
Акробатика – повышает силу прыжков (1-10 шаг 5%)
Бег – повышает скорость бега (1-10 шаг 5%)
(1-10 шаг 5%) т.е. 10 ступеней навыка, шаг 5%, т.е. первая ступень.- параметр +5%, вторая ступень,
параметр + 10%... 10 ступень параметр +50%
Параметры перса: Скилы, уровень, дерево навыков, - будут на отдельном окне gui.
Надо назначить кнопку его вызова на экран, например «C».
ГУИ
Предметов инвентаря всего 10:
1. Аптечка (Жизни +50)
2. Броня ( Защита + 50)
3. Граната (Физический и лучевой урон +50 по площади)
4. Снайпер (Урон из выбранного оружия + 50% на 20 секунд)
5. Транквилизатор (Скорость + 50% на 20 секунд)
6. Мул (Переносимый вес + 50 на 20 секунд)
7. Батут (Прыжки + 50% на 20 секунд)
8. Фонарик (Луч света на 20 секунд, или Инфраочки: Тепловое зрение)
9. Бог (Неуязвимость на 20 секунд)
Предметы инвентаря используются по одному, пока не окончилось действие одного предмета, использовать аналогичный еще раз нельзя. Т.е. эффект не накапливается, скажем, взял супер прыжок, 20 секунд высоко прыгаешь, использовать второй такой же супер прыжок бесполезно, - прыгать еще выше все равно не будешь. Т.е., например, без навыка Акробатика, макс. Прыжок 150% (если использовал предмет Батут), с навыком Акробатика и предметом батут – до 200%, т.е. предметы инвентаря не заменяют навыки, а добавляют к ним, и учить навыки всегда есть смысл.
Релик – может дать любой эффект из вышеописанных но постоянно, на всю игру. Релики не сохраняются в сейве, т.е. вышел из миссии – снова зашел – его у тебя больше нет, ищи заново.
Можно носить тока 1 релик, чтоб взять другой надо выкинуть тот, что есть.
Релики генерятся в локации, так же как и остальные предметы инвентаря, но по внешнему виду релика лежащего в локации неизвестно его действие, - они все одинаковые, т.е. игрок не знает, что это за релик он берет, - пока не взял.
Релик имеет свойство одно из тех что у предметов, и при взятии игроком, падает в свою ячейку (фиолетовая ячейка на рисунке GUI), при этом, цифра означающая количество аналогичного предмета инвентаря, становится, скажем, красной, тогда как все остальные черные, и может только увеличиваться. Т.е. использование этого предмета инвентаря блокируется, т.к. этот эффект уже дает релик, но если наступил в локации на такой же предмет (или взял его), то он прибавляется к этой цифре, и так пока не выкинул релик.
Насчет релика №9, я уверен что его надо сделать ( для тестов), НО не уверен что его надо выкладывать в локации.
Некоторые предметы инвентаря имеют время использования (20 секунд по умолчанию).
Предлагаю графически отображать в окне данного предмета это время, типа заливки цветом, или индикатора. А не цифрой, в бою так удобнее будет для восприятия.
Как поднимать предметы в локации, просто "пробеганием" по нему или специальной кнопкой "Взять",- я не выбрал,- жду предложений.
Вес
Я ввел параметр вес инвентаря, не свойственный шуттерам.
Тут есть минус, - это параметр придется не только просчитывать ( что просто) но и учитывать, например, при перегрузке по весу, игрок получает пенальти к скорости бега и высоте прыжка, т.е. это дополнительные просчеты и кое кто сразу закричит – му-у-у-у.
НО
Это я думаю может стать плюсом нашего шуттера, так что этот наворот может оказаться полезным…
Но если все таки против – согласен уступить и выкинуть понятие вес из геймплея.
По весу поправки:
Предметы инвентаря, для простоты веса не имеют, - вес считаем пока только у оружия и боеприпасов.
Это для того, чтоб не хватали 10 видов оружия просто так, из жадности.
Сейвы, классы, код
Тут не надо ни каких наворотов пока.
Во-первых потому что некогда.
Во-вторых, потому что это минимальная версия и все это еще будет переделываться и не раз.
По этому, Что имеем?
Сохранять то нам нужно всего лишь несколько параметров:
Pers_Name: String: Имя перса
Pers_Class : Byte; Класс перса
Pers_Exp: Integer; Опыт перса
Pers_LP : Byte; Не распределенные очки обучения
// Изученные навыки
Pers_Str : Byte;
Pers_Hit : Byte;
Pers_Metk : Byte;
Pers_Critic : Byte;
Pers_Blast : Byte;
Pers_Prochn : Byte;
Pers_Pogl : Byte;
Pers_Otraj : Byte;
Pers_Life : Byte;
Pers_Atlet : Byte;
Pers_Acrobat : Byte;
Pers_Speed : Byte;
… И ВСЕ…!!..
// базовые параметры классов, пропишем для правильности, все классы раздельно,
// их нужно прописать в коде константами, чтоб потом удобнее было балансировать классы
// смысла тащить эти параметры в сейв я не вижу:
// Для класса 1 (Медик):
Base_Pers_Str_1 := 10; (10 единиц сила перса)
Base_Pers_Hit_1 := 20; (20 единиц живучесть перса)
Base_Pers_Metk_1 := 40; ( 40% процентов вероятность попадания по врагу из любого оружия)
Base_Pers_Critic_1 := 0; (0% процентов вероятность критического огнестрельного урона)
Base_Pers_Blast_1 := 0; (0% процентов вероятность критического лучевого урона)
Base_Pers_Prochn_1 := 10; (10% процентов снижение урона от ожогов/шока и времени оглушения)
Base_Pers_Pogl_1 := 10; (10% процентов поглощение огнестрельного урона)
Base_Pers_Otraj_1 := 10; (10% процентов отражение лучевого урона)
Base_Pers_Life_1 := 150; (150% процентов эффективность аптечки)
Base_Pers_Atlet_1 := 100; (100 единиц переносимый вес)
Base_Pers_Acrobat_1 := 120; (120 единиц сила прыжка)
Base_Pers_Speed_1 := 120; (120 единиц скорость)
// Для класса 2(Стрелок):
Base_Pers_Str_2 := 15; (15 единиц сила перса)
Base_Pers_Hit_2 := 15; (15 единиц живучесть перса)
Base_Pers_Metk_2 := 50; ( 50% процентов вероятность попадания по врагу из любого оружия)
Base_Pers_Critic_2 := 10; (10% процентов вероятность критического огнестрельного урона)
Base_Pers_Blast_2 := 10; (10% процентов вероятность критического лучевого урона)
Base_Pers_Prochn_2 := 0; (0% процентов снижение урона от ожогов/шока и времени оглушения)
Base_Pers_Pogl_2 := 0; (0% процентов поглощение огнестрельного урона)
Base_Pers_Otraj_2 := 0; (0% процентов отражение лучевого урона)
Base_Pers_Life_2 := 100; (100% процентов эффективность аптечки)
Base_Pers_Atlet_2 := 150; (150 единиц переносимый вес)
Base_Pers_Acrobat_2 := 110; (110 единиц сила прыжка)
Base_Pers_Speed_2 := 110; (110 единиц скорость)
// Для класса 3 (Разрушитель):
Base_Pers_Str_3 := 20; (20 единиц сила перса)
Base_Pers_Hit_3 := 20; (20 единиц живучесть перса)
Base_Pers_Metk_3 := 50; ( 50% процентов вероятность попадания по врагу из любого оружия)
Base_Pers_Critic_3 := 10; (10% процентов вероятность критического огнестрельного урона)
Base_Pers_Blast_3 := 10; (10% процентов вероятность критического лучевого урона)
Base_Pers_Prochn_3 := 0; (0% процентов снижение урона от ожогов/шока и времени оглушения)
Base_Pers_Pogl_3 := 0; (0% процентов поглощение огнестрельного урона)
Base_Pers_Otraj_3 := 0; (0% процентов отражение лучевого урона)
Base_Pers_Life_3 := 100; (100% процентов эффективность аптечки)
Base_Pers_Atlet_3 := 200; (200 единиц переносимый вес)
Base_Pers_Acrobat_3 := 100; (100 единиц сила прыжка)
Base_Pers_Speed_3 := 100; (100 единиц скорость)
Procedure FormCreate();
// Текущие параметры:
Pers_Str := 0;
Pers_Hit := 0;
Pers_Metk := 0;
Pers_Critic := 0;
Pers_Blast := 0;
Pers_Prochn := 0;
Pers_Pogl := 0;
Pers_Otraj := 0;
Pers_Life := 0;
Pers_Atlet := 0;
Pers_Acrobat := 0;
Pers_Speed := 0;
// Грузим сейв с ини файла:
Try
File_Load;
Except
End;
// При загрузке INI, присваиваем текущим параметрам - параметры из сохранения.
// Это прописываем в GUI и забываем о нем:
Pers_Name: String: Имя перса
Pers_Exp: Integer; Опыт перса
Pers_LP : Byte; Не распределенные очки обучения
// Если игру только начинают и сейва нет, то в зависимости от созданного класса приваиваем
// этим переменным базовые значения из констант:
// Например. Если класс в сейве стрелок, то:
if Pers_Class = 1 then begin
Pers_Str := Base_Pers_Str_1;
Pers_Str := Base_Pers_Str_1;
…
end;
// Расчитываем рабочие параметры для игры:
// Текущее значение защиты перса:
Work_Pers_Vin := Pers_Str * 20;
// Текущее значение жизней перса:
Work_Pers_Hit := Pers_ Hit * 20;
… ВСЕ – мы готовы к бою)
Все эти переменные в сейве можно объявить как один массив и работать в коде с ним, но как сохранить массив в INI файл не переводя его в строку я не знаю) Как удобнее, но :
1) код геймплея пока не пишем,- не до него счас
2) код геймплея. в отличие от кода двига, буду курировать я сам...
Запасные идеи : =====================================================================
Классы:
Разведчик
Техник
Диверсант
Скилы:
Сила, – Определяет переносимый вес, позволяет использовать тяжелое оружие
Ловкость, - Определяет выносливость, повышает физическую защиту
Сила, – Определяет физическую защиту, повышает переносимый вес
Живучесть, - Определяет количество жизней, облегчает переносимость ран
Энергия, - Определяет запас энергии, усиливает энерго щит
Разум, - позволяет работать с
Запасные предметя инвентаря:
Месть (отражение урона на врага на 20 секунд)
Снайпер (Критический выстрел + 50 т.е. физический урон + 50 на 20 секунд, работает только с огнестрельным оружием)
Что то (Мастер бластер + 50 т.е. лучевой урон + 50 на 20 секунд, работает только с лучевым оружием)
Что то (Поглощение урона + 50, т.е. защита от огнестрельного оружия)
Что то (Отражение урона + 50, т.е. защита от лучевого оружия)
Хамелеон (Невидимость на 20 секунд)
Граната (Осколочная граната: Физический урон +50 по площади)
Бомба (Ионная бомба : Лучевой урон +50 по площади)
Хамелеон (Невидимость на 20 секунд)
Разное:
Ионная пушка
Можно сделать медали –релики??
Ср-разу говорю:
1) Геймплей обсуждаем а не локации и т.д.
2) Обсуждаем, - значит предлагаем, а не тупо критикуем
3) Геймплей написан мной. предварительно обдуман, т.е. в обсуждении нуждаются лишь некоторые его компоненты:
названия и количество скилов-навыков, предметы интерфейса, GUI... а не концепция в целом.
4) Решающий голос, в данном вопросе, как геймдиз проекта оставляю за собой.