// 如果使用此注释，则使用proto3; 否则使用proto2
syntax = "proto3";

// 生成包名（服务器用）
option java_package = "com.game.quest.proto";
// 生成类名（服务器用）
option java_outer_classname = "QuestProto";
// 引用apublicBean.proto
import "apublicBean.proto";

// -------------------------------------Bean-------------------------------------

// 活跃度奖励Bean
message QuestActiveInfo{
	int32 activeId = 1;// 活跃度奖励配置id
	int32 state = 2;// 活跃度奖励状态 0=未达成 1=可领取 2=已领取
}

// 单个日常任务Bean
message QuestEveryDayInfo{
	int32 questId = 1;// 日常任务配置id
	int32 targetValue = 2;// 当前目标进度
	int32 state = 3;// 任务状态 0=未达成 1=可领取 2=已领取
}
// -------------------------------------请求消息-------------------------------------

// 请求领取主线任务奖励 msgId=117101		-----返回消息  msgId=117202
message ReqQuestMainAward{
	
}

// 请求领取日常任务奖励 msgId=117102		-----返回消息  msgId=117205
message ReqQuestEveryDayAward{
	int32 questId = 1;// 日常任务配置id
}

// 请求领取日常任务活跃度奖励 msgId=117103		-----返回消息  msgId=117206
message ReqQuestEveryDayActiveAward{
	int32 activeId = 1;// 活跃度奖励配置id
}

// 请求日常任务信息 msgId=117104		-----返回消息  msgId=117203
message ReqQuestEveryDayInfo{
	
}

// -------------------------------------返回消息-------------------------------------

// 返回主线任务信息 msgId=117201(进入游戏 和 完成主线任务时，服务器主动返回)
message ResQuestMainInfo{
	int32 questId = 1;// 当前主线任务配置id（如果id=0，表示完成所有主线任务，不做任何处理）
	int32 targetValue = 2;// 当前目标进度
	bool isFinish = 3;// 是否已经完成
}

// 返回领取主线任务奖励 msgId=117202
message ResQuestMainAward{
	int32 questId = 1;// 当前领取主线任务配置id
	repeated Goods goodsList = 2;// 获得的奖励列表
	int32 nextQuestId = 3;// 新的主线任务配置id（如果id=0，表示完成所有主线任务，不做任何处理）
	int32 targetValue = 4;// 当前目标进度
	bool isFinish = 5;// 是否已经完成
}

// 返回日常任务信息 msgId=117203
message ResQuestEveryDayInfo{
	int32 active = 1;// 今日活跃度
	repeated QuestActiveInfo activeList = 2;// 活跃度奖励列表
	repeated QuestEveryDayInfo questList = 3;// 日常任务列表
}

// 返回日常任务是否有新消息 msgId=117204（进入游戏主动返回 或者 完成日常任务主动返回）
message ResQuestEveryDayNewMsg{
	bool isNewMsg = 1;// 日常任务是否有新消息 true=有
}

// 返回领取日常任务奖励 msgId=117205
message ResQuestEveryDayAward{
	int32 questId = 1;// 日常任务配置id
	int32 state = 2;// 任务状态 2=已领取
	int32 active = 3;// 奖励的活跃度（变化值，等于0表示没有）
	repeated Goods goodsList = 4;// 获得的奖励列表
	repeated QuestActiveInfo activeList = 5;// 活跃度奖励列表（包含全部）
}

// 返回领取日常任务活跃度奖励 msgId=117206
message ResQuestEveryDayActiveAward{
	QuestActiveInfo activeInfo = 1;// 更新本次领取的活跃度奖励信息
	repeated Goods goodsList = 2;// 获得的奖励列表
}