72 lines
3.6 KiB
Zig
72 lines
3.6 KiB
Zig
const std = @import("std");
|
|
const protocol = @import("protocol");
|
|
const Session = @import("../Session.zig");
|
|
const Packet = @import("../Packet.zig");
|
|
const Data = @import("../data.zig");
|
|
const Config = @import("config.zig");
|
|
|
|
const ArrayList = std.ArrayList;
|
|
const Allocator = std.mem.Allocator;
|
|
const CmdID = protocol.CmdID;
|
|
|
|
pub fn onGetMissionStatus(session: *Session, packet: *const Packet, allocator: Allocator) !void {
|
|
const req = try packet.getProto(protocol.GetMissionStatusCsReq, allocator);
|
|
var rsp = protocol.GetMissionStatusScRsp.init(allocator);
|
|
const main_mission_config = try Config.loadMainMissionConfig(allocator, "resources/MainMission.json");
|
|
rsp.retcode = 0;
|
|
for (req.sub_mission_id_list.items) |id| {
|
|
try rsp.sub_mission_status_list.append(protocol.Mission{ .id = id, .status = protocol.MissionStatus.MISSION_FINISH, .progress = 1 });
|
|
}
|
|
for (main_mission_config.main_mission_config.items) |main_missionConf| {
|
|
try rsp.finished_main_mission_id_list.append(main_missionConf.main_mission_id);
|
|
try rsp.curversion_finished_main_mission_id_list.append(main_missionConf.main_mission_id);
|
|
}
|
|
try session.send(CmdID.CmdGetMissionStatusScRsp, rsp);
|
|
}
|
|
|
|
pub fn onGetTutorialGuideStatus(session: *Session, _: *const Packet, allocator: Allocator) !void {
|
|
var rsp = protocol.GetTutorialGuideScRsp.init(allocator);
|
|
const tutorial_guide_config = try Config.loadTutorialGuideConfig(allocator, "resources/TutorialGuideGroup.json");
|
|
|
|
rsp.retcode = 0;
|
|
for (tutorial_guide_config.tutorial_guide_config.items) |guideConf| {
|
|
try rsp.tutorial_guide_list.append(protocol.TutorialGuide{ .id = guideConf.guide_group_id, .status = protocol.TutorialStatus.TUTORIAL_FINISH });
|
|
}
|
|
|
|
try session.send(CmdID.CmdGetTutorialGuideScRsp, rsp);
|
|
}
|
|
|
|
pub fn onGetTutorialStatus(session: *Session, _: *const Packet, allocator: Allocator) !void {
|
|
var rsp = protocol.GetTutorialScRsp.init(allocator);
|
|
const tutorial_guide_config = try Config.loadTutorialConfig(allocator, "resources/TutorialData.json");
|
|
rsp.retcode = 0;
|
|
for (tutorial_guide_config.tutorial_config.items) |tutorialConf| {
|
|
try rsp.tutorial_list.append(protocol.Tutorial{ .id = tutorialConf.tutorial_id, .status = protocol.TutorialStatus.TUTORIAL_FINISH });
|
|
}
|
|
try session.send(CmdID.CmdGetTutorialScRsp, rsp);
|
|
}
|
|
pub fn onFinishTalkMission(session: *Session, packet: *const Packet, allocator: Allocator) !void {
|
|
const req = try packet.getProto(protocol.FinishTalkMissionCsReq, allocator);
|
|
var rsp = protocol.FinishTalkMissionScRsp.init(allocator);
|
|
rsp.sub_mission_id = req.sub_mission_id;
|
|
rsp.custom_value_list = req.custom_value_list;
|
|
rsp.talk_str = req.talk_str;
|
|
rsp.retcode = 0;
|
|
try session.send(CmdID.CmdFinishTalkMissionScRsp, rsp);
|
|
}
|
|
// added this to auto detect new tutorial guide id
|
|
pub fn onUnlockTutorialGuide(session: *Session, packet: *const Packet, allocator: Allocator) !void {
|
|
const req = try packet.getProto(protocol.UnlockTutorialGuideCsReq, allocator);
|
|
var rsp = protocol.UnlockTutorialGuideScRsp.init(allocator);
|
|
rsp.retcode = 0;
|
|
std.debug.print("UNLOCK TUTORIAL GUIDE ID: {}\n", .{req.group_id});
|
|
try session.send(CmdID.CmdUnlockTutorialGuideScRsp, rsp);
|
|
}
|
|
// added this to auto detect new tutorial id
|
|
pub fn onUnlockTutorial(session: *Session, packet: *const Packet, allocator: Allocator) !void {
|
|
const req = try packet.getProto(protocol.UnlockTutorialCsReq, allocator);
|
|
var rsp = protocol.UnlockTutorialScRsp.init(allocator);
|
|
rsp.retcode = 0;
|
|
std.debug.print("UNLOCK TUTORIAL ID: {}\n", .{req.tutorial_id});
|
|
try session.send(CmdID.CmdUnlockTutorialScRsp, rsp);
|
|
}
|