419 lines
20 KiB
Lua
419 lines
20 KiB
Lua
local ____lualib = require("lualib_bundle")
|
|
local __TS__ArrayForEach = ____lualib.__TS__ArrayForEach
|
|
local __TS__ArrayMap = ____lualib.__TS__ArrayMap
|
|
local ____exports = {}
|
|
local ____QuestSystem = require("quests.QuestSystem")
|
|
local QuestType = ____QuestSystem.QuestType
|
|
local QuestState = ____QuestSystem.QuestState
|
|
local ____QuestSystem = require("quests.QuestSystem")
|
|
local QuestSystem = ____QuestSystem.QuestSystem
|
|
local ____QuestEventHandlers = require("quests.QuestEventHandlers")
|
|
local QuestEventHandlers = ____QuestEventHandlers.QuestEventHandlers
|
|
local ____quest_reward_scaling = require("quests.quest_reward_scaling")
|
|
local questTeamGold = ____quest_reward_scaling.questTeamGold
|
|
function ____exports.InitializeQuests(self)
|
|
local questSystem = QuestSystem:getInstance()
|
|
local npcQuestChains = {
|
|
{
|
|
npcName = "npc_quest_giver_kunkka",
|
|
quests = {
|
|
{
|
|
id = "kunkka_quest_give_claw",
|
|
title = "#quest_give_claw_title",
|
|
description = "#quest_give_claw_description",
|
|
objectives = {custom_objective = {type = QuestType.CUSTOM, target = "item_wolf_claw", required = 10, current = 0}},
|
|
rewards = {
|
|
gold = questTeamGold(nil, 600),
|
|
experience = 150,
|
|
crystals = 5
|
|
},
|
|
state = QuestState.AVAILABLE,
|
|
unlocksQuestIds = {"kunkka_quest_kill_lycan", "kunkka_quest_find_anchor"},
|
|
events = QuestEventHandlers.kunkka_quest_give_claw
|
|
},
|
|
{
|
|
id = "kunkka_quest_kill_lycan",
|
|
title = "#quest_kunkka_kill_lycan_title",
|
|
description = "#quest_kunkka_kill_lycan_description",
|
|
objectives = {kill_lycan = {type = QuestType.KILL_UNIT, target = "npc_boss_lycan", required = 1, current = 0}},
|
|
rewards = {
|
|
gold = questTeamGold(nil, 1200),
|
|
experience = 400,
|
|
crystals = 10
|
|
},
|
|
state = QuestState.LOCKED,
|
|
previousQuestId = "kunkka_quest_give_claw",
|
|
events = QuestEventHandlers.kunkka_quest_kill_lycan
|
|
},
|
|
{
|
|
id = "kunkka_quest_kill_satyr_demon",
|
|
title = "#quest_kunkka_kill_satyr_demon_title",
|
|
description = "#quest_kunkka_kill_satyr_demon_description",
|
|
objectives = {kill_satyr_demon = {type = QuestType.KILL_UNIT, target = "npc_demon_dragon_satyr", required = 1, current = 0}},
|
|
rewards = {
|
|
gold = questTeamGold(nil, 1400),
|
|
experience = 450,
|
|
crystals = 11
|
|
},
|
|
state = QuestState.LOCKED,
|
|
previousQuestId = "kunkka_quest_kill_lycan",
|
|
events = QuestEventHandlers.kunkka_quest_kill_satyr_demon
|
|
},
|
|
{
|
|
id = "kunkka_quest_clean_harbor",
|
|
title = "#quest_kunkka_clean_harbor_title",
|
|
description = "#quest_kunkka_clean_harbor_description",
|
|
objectives = {clean_harbor = {type = QuestType.CUSTOM, target = "#zone_skeletons_clean", required = 1, current = 0}},
|
|
rewards = {
|
|
gold = questTeamGold(nil, 800),
|
|
experience = 300,
|
|
crystals = 6
|
|
},
|
|
state = QuestState.LOCKED,
|
|
previousQuestId = "kunkka_quest_kill_satyr_demon",
|
|
events = QuestEventHandlers.kunkka_quest_clean_harbor
|
|
},
|
|
{
|
|
id = "kunkka_quest_find_rom",
|
|
title = "#quest_found_rom_title",
|
|
description = "#quest_found_rom_description",
|
|
objectives = {custom_objective = {type = QuestType.CUSTOM, target = "item_rom", required = 1, current = 0}},
|
|
rewards = {
|
|
gold = questTeamGold(nil, 400),
|
|
experience = 150,
|
|
crystals = 8
|
|
},
|
|
state = QuestState.AVAILABLE,
|
|
events = QuestEventHandlers.kunkka_quest_find_rom
|
|
},
|
|
{
|
|
id = "kunkka_quest_2",
|
|
title = "#quest_kunkka_skeletons_title",
|
|
description = "#quest_kunkka_skeletons_description",
|
|
objectives = {kill_skeletons0 = {type = QuestType.KILL_UNIT, target = "npc_skeleton_zombie_undead", required = 10, current = 0}, kill_skeletons1 = {type = QuestType.KILL_UNIT, target = "npc_dead_skeleton_archer_undead", required = 6, current = 0}, kill_skeletons2 = {type = QuestType.KILL_UNIT, target = "npc_skeleton_zombie_half_undead", required = 8, current = 0}, kill_skeletons3 = {type = QuestType.KILL_UNIT, target = "npc_dead_skeleton_undead", required = 5, current = 0}},
|
|
rewards = {
|
|
gold = questTeamGold(nil, 150),
|
|
experience = 100,
|
|
crystals = 3
|
|
},
|
|
state = QuestState.LOCKED,
|
|
previousQuestId = "kunkka_quest_find_rom",
|
|
events = QuestEventHandlers.kunkka_quest_2
|
|
},
|
|
{
|
|
id = "kunkka_quest_find_anchor",
|
|
title = "#quest_kunkka_find_anchor_title",
|
|
description = "#quest_kunkka_find_anchor_description",
|
|
objectives = {find_anchor = {type = QuestType.CUSTOM, target = "point_shovel", required = 1, current = 0}},
|
|
rewards = {
|
|
gold = questTeamGold(nil, 500),
|
|
experience = 200,
|
|
crystals = 6
|
|
},
|
|
state = QuestState.LOCKED,
|
|
previousQuestId = "kunkka_quest_give_claw",
|
|
events = QuestEventHandlers.kunkka_quest_find_anchor
|
|
}
|
|
}
|
|
},
|
|
{
|
|
npcName = "npc_quest_giver_denny",
|
|
quests = {
|
|
{
|
|
id = "denny_quest_1",
|
|
title = "#quest_denny_quest_kill_sheeps_title",
|
|
description = "#quest_denny_quest_kill_sheeps_description",
|
|
objectives = {kill_ranged = {type = QuestType.KILL_UNIT, target = "npc_sheep", required = 20, current = 0}},
|
|
rewards = {
|
|
gold = questTeamGold(nil, 400),
|
|
experience = 200,
|
|
crystals = 4
|
|
},
|
|
state = QuestState.AVAILABLE,
|
|
unlocksQuestIds = {"denny_quest_find_pet"},
|
|
events = QuestEventHandlers.denny_quest_kill_sheeps
|
|
},
|
|
{
|
|
id = "denny_quest_find_pet",
|
|
title = "#quest_denny_need_a_pet_title",
|
|
description = "#quest_denny_need_a_pet_description",
|
|
objectives = {find_a_pet = {type = QuestType.CUSTOM, target = "#denny_pet", required = 1, current = 0}},
|
|
rewards = {
|
|
gold = questTeamGold(nil, 500),
|
|
experience = 400,
|
|
crystals = 6
|
|
},
|
|
state = QuestState.LOCKED,
|
|
previousQuestId = "denny_quest_1",
|
|
unlocksQuestIds = {"denny_quest_kill_sheeps"},
|
|
events = QuestEventHandlers.denny_quest_find_a_pet
|
|
},
|
|
{
|
|
id = "denny_quest_kill_sheeps",
|
|
title = "#quest_denny_training_title",
|
|
description = "#quest_denny_training_description",
|
|
objectives = {training_farm = {type = QuestType.KILL_UNIT, target = "npc_sheep", required = 20, current = 0}},
|
|
rewards = {
|
|
gold = questTeamGold(nil, 600),
|
|
experience = 100,
|
|
crystals = 5
|
|
},
|
|
state = QuestState.LOCKED,
|
|
previousQuestId = "denny_quest_find_pet",
|
|
unlocksQuestIds = {"denny_quest_kill_thieves"},
|
|
events = QuestEventHandlers.denny_quest_1
|
|
},
|
|
{
|
|
id = "denny_quest_kill_thieves",
|
|
title = "#quest_denny_quest_kill_thieves_title",
|
|
description = "#quest_denny_quest_kill_thieves_description",
|
|
objectives = {kill_leader = {type = QuestType.KILL_UNIT, target = "npc_thief_leader", required = 1, current = 0}, kill_archer = {type = QuestType.KILL_UNIT, target = "npc_thief_archer", required = 2, current = 0}, kill_backer = {type = QuestType.KILL_UNIT, target = "npc_thief_backer", required = 2, current = 0}},
|
|
rewards = {
|
|
gold = questTeamGold(nil, 450),
|
|
experience = 250,
|
|
crystals = 5
|
|
},
|
|
state = QuestState.LOCKED,
|
|
previousQuestId = "denny_quest_kill_sheeps",
|
|
events = QuestEventHandlers.denny_quest_kill_thieves
|
|
}
|
|
}
|
|
},
|
|
{
|
|
npcName = "npc_quest_giver_firestar",
|
|
quests = {
|
|
{
|
|
id = "firestar_quest_1",
|
|
title = "#quest_kill_pigs_title",
|
|
description = "#quest_kill_pigs_description",
|
|
objectives = {custom_objective = {type = QuestType.CUSTOM, target = "item_meat", required = 10, current = 0}},
|
|
rewards = {gold = 0, experience = 350, crystals = 7},
|
|
state = QuestState.AVAILABLE,
|
|
events = QuestEventHandlers.firestar_quest_1
|
|
},
|
|
{
|
|
id = "firestar_quest_gourmet",
|
|
title = "#quest_firestar_gourmet_title",
|
|
description = "#quest_firestar_gourmet_description",
|
|
objectives = {cook_meat = {type = QuestType.CUSTOM, target = "item_grilled_meat", required = 5, current = 0}},
|
|
rewards = {
|
|
gold = questTeamGold(nil, 500),
|
|
experience = 350,
|
|
crystals = 6
|
|
},
|
|
state = QuestState.LOCKED,
|
|
previousQuestId = "firestar_quest_1",
|
|
events = QuestEventHandlers.firestar_quest_gourmet
|
|
},
|
|
{
|
|
id = "firestar_quest_leader_horn",
|
|
title = "#quest_firestar_leader_horn_title",
|
|
description = "#quest_firestar_leader_horn_description",
|
|
objectives = {bring_leader_horn = {type = QuestType.CUSTOM, target = "item_lycan_horn", required = 1, current = 0}},
|
|
rewards = {
|
|
gold = questTeamGold(nil, 900),
|
|
experience = 450,
|
|
crystals = 9
|
|
},
|
|
state = QuestState.LOCKED,
|
|
previousQuestId = "firestar_quest_gourmet",
|
|
events = QuestEventHandlers.firestar_quest_leader_horn
|
|
},
|
|
{
|
|
id = "firestar_quest_fishing",
|
|
title = "#quest_firestar_fishing_title",
|
|
description = "#quest_firestar_fishing_description",
|
|
objectives = {bring_fish = {type = QuestType.CUSTOM, target = "item_fish", required = 10, current = 0}},
|
|
rewards = {
|
|
gold = questTeamGold(nil, 1100),
|
|
experience = 500,
|
|
crystals = 10
|
|
},
|
|
state = QuestState.LOCKED,
|
|
previousQuestId = "firestar_quest_leader_horn",
|
|
events = QuestEventHandlers.firestar_quest_fishing
|
|
}
|
|
}
|
|
},
|
|
{
|
|
npcName = "npc_quest_giver_oldmen",
|
|
quests = {
|
|
{
|
|
id = "oldmen_quest_1",
|
|
title = "#quest_kill_sheep_title",
|
|
description = "#quest_kill_sheep_description",
|
|
objectives = {custom_objective = {type = QuestType.CUSTOM, target = "item_milk", required = 5, current = 0}},
|
|
rewards = {
|
|
gold = questTeamGold(nil, 25),
|
|
experience = 0,
|
|
crystals = 0
|
|
},
|
|
state = QuestState.AVAILABLE,
|
|
unlocksQuestIds = {"oldmen_quest_cheesemaker"},
|
|
events = QuestEventHandlers.oldmen_quest_1
|
|
},
|
|
{
|
|
id = "oldmen_quest_cheesemaker",
|
|
title = "#quest_oldmen_cheesemaker_title",
|
|
description = "#quest_oldmen_cheesemaker_description",
|
|
objectives = {bring_cheese = {type = QuestType.CUSTOM, target = "item_cheese", required = 3, current = 0}},
|
|
rewards = {
|
|
gold = questTeamGold(nil, 300),
|
|
experience = 150,
|
|
crystals = 3
|
|
},
|
|
state = QuestState.LOCKED,
|
|
previousQuestId = "oldmen_quest_1",
|
|
events = QuestEventHandlers.oldmen_quest_cheesemaker
|
|
}
|
|
}
|
|
},
|
|
{
|
|
npcName = "npc_quest_giver_lina",
|
|
quests = {
|
|
{
|
|
id = "lina_quest_ent_heart",
|
|
title = "#lina_quest_ent_heart_title",
|
|
description = "#lina_quest_ent_heart_description",
|
|
objectives = {custom_objective = {type = QuestType.CUSTOM, target = "item_ent_heart", required = 20, current = 0}},
|
|
rewards = {
|
|
gold = questTeamGold(nil, 250),
|
|
experience = 220,
|
|
crystals = 4
|
|
},
|
|
state = QuestState.AVAILABLE,
|
|
events = QuestEventHandlers.lina_quest_ent_heart
|
|
},
|
|
{
|
|
id = "lina_quest_bottle",
|
|
title = "#lina_quest_bottle_title",
|
|
description = "#lina_quest_bottle_description",
|
|
objectives = {custom_objective = {type = QuestType.CUSTOM, target = "item_pollen_keeper", required = 20, current = 0}},
|
|
rewards = {
|
|
gold = questTeamGold(nil, 300),
|
|
experience = 260,
|
|
crystals = 4
|
|
},
|
|
state = QuestState.LOCKED,
|
|
previousQuestId = "lina_quest_ent_heart",
|
|
events = QuestEventHandlers.lina_quest_bottle
|
|
}
|
|
}
|
|
},
|
|
{
|
|
npcName = "npc_quest_giver_largo",
|
|
quests = {
|
|
{
|
|
id = "largo_quest_kill_frogs",
|
|
title = "#largo_quest_kill_frogs_title",
|
|
description = "#largo_quest_kill_frogs_description",
|
|
objectives = {kill_mini_frog = {type = QuestType.KILL_UNIT, target = "npc_mini_frog", required = 8, current = 0}, kill_froglet = {type = QuestType.KILL_UNIT, target = "npc_small_frog_froglet", required = 6, current = 0}, kill_frog_magi = {type = QuestType.KILL_UNIT, target = "npc_frogman_magi", required = 6, current = 0}},
|
|
rewards = {
|
|
gold = questTeamGold(nil, 350),
|
|
experience = 260,
|
|
crystals = 4
|
|
},
|
|
state = QuestState.AVAILABLE,
|
|
events = QuestEventHandlers.largo_quest_kill_frogs
|
|
},
|
|
{
|
|
id = "largo_quest_spider_legs",
|
|
title = "#largo_quest_spider_legs_title",
|
|
description = "#largo_quest_spider_legs_description",
|
|
objectives = {custom_objective = {type = QuestType.CUSTOM, target = "item_spider_legs_custom", required = 20, current = 0}},
|
|
rewards = {
|
|
gold = questTeamGold(nil, 360),
|
|
experience = 260,
|
|
crystals = 5
|
|
},
|
|
state = QuestState.LOCKED,
|
|
previousQuestId = "largo_quest_kill_frogs",
|
|
events = QuestEventHandlers.largo_quest_spider_legs
|
|
}
|
|
}
|
|
},
|
|
{
|
|
npcName = "npc_quest_giver_maiden",
|
|
quests = {{
|
|
id = "maiden_quest_eggs",
|
|
title = "#maiden_quest_eggs_title",
|
|
description = "#maiden_quest_eggs_description",
|
|
objectives = {custom_objective = {type = QuestType.CUSTOM, target = "item_egg", required = 20, current = 0}},
|
|
rewards = {
|
|
gold = questTeamGold(nil, 300),
|
|
experience = 220,
|
|
crystals = 4
|
|
},
|
|
state = QuestState.AVAILABLE,
|
|
events = QuestEventHandlers.maiden_quest_eggs
|
|
}}
|
|
},
|
|
{
|
|
npcName = "npc_quest_giver_doctor",
|
|
quests = {
|
|
{
|
|
id = "doctor_quest_frog_paws",
|
|
title = "#doctor_quest_frog_paws_title",
|
|
description = "#doctor_quest_frog_paws_description",
|
|
objectives = {custom_objective = {type = QuestType.CUSTOM, target = "item_frog_paw", required = 20, current = 0}},
|
|
rewards = {
|
|
gold = questTeamGold(nil, 320),
|
|
experience = 240,
|
|
crystals = 4
|
|
},
|
|
state = QuestState.AVAILABLE,
|
|
events = QuestEventHandlers.doctor_quest_frog_paws
|
|
},
|
|
{
|
|
id = "doctor_quest_poison",
|
|
title = "#doctor_quest_poison_title",
|
|
description = "#doctor_quest_poison_description",
|
|
objectives = {custom_objective = {type = QuestType.CUSTOM, target = "item_poison", required = 20, current = 0}},
|
|
rewards = {
|
|
gold = questTeamGold(nil, 380),
|
|
experience = 280,
|
|
crystals = 5
|
|
},
|
|
state = QuestState.LOCKED,
|
|
previousQuestId = "doctor_quest_frog_paws",
|
|
events = QuestEventHandlers.doctor_quest_poison
|
|
}
|
|
}
|
|
},
|
|
{
|
|
npcName = "npc_quest_giver_friend",
|
|
quests = {{
|
|
id = "friend_quest_pizza_prep",
|
|
title = "#friend_quest_pizza_prep_title",
|
|
description = "#friend_quest_pizza_prep_description",
|
|
objectives = {custom_objective = {type = QuestType.CUSTOM, target = "item_testo_pizza", required = 1, current = 0}},
|
|
rewards = {
|
|
gold = questTeamGold(nil, 180),
|
|
experience = 180,
|
|
crystals = 3
|
|
},
|
|
state = QuestState.AVAILABLE,
|
|
events = QuestEventHandlers.friend_quest_pizza_prep
|
|
}}
|
|
}
|
|
}
|
|
__TS__ArrayForEach(
|
|
npcQuestChains,
|
|
function(____, chain)
|
|
__TS__ArrayForEach(
|
|
chain.quests,
|
|
function(____, quest)
|
|
questSystem:registerQuest(quest)
|
|
end
|
|
)
|
|
local questIds = __TS__ArrayMap(
|
|
chain.quests,
|
|
function(____, quest) return quest.id end
|
|
)
|
|
questSystem:registerNpcQuests(chain.npcName, questIds)
|
|
end
|
|
)
|
|
questSystem:linkQuestChains()
|
|
end
|
|
return ____exports
|