package fish_protocols;

import "fish_def.proto"; 
import "msg_type_def.proto";

message BaojiRankInfo
{
	optional int32 playerId = 1;

	optional string nickName = 2;

	// 最高得分
	optional int32 maxScore = 3;

	// 头像
	optional string iconCustom = 4;

	// 捕鱼等级
	optional int32 fishLevel = 5;

	// vip等级
	optional int32 vipLevel = 6;
}

// 爆金场大厅界面信息获取
message packetc2l_get_baojin_match_info
{
	optional e_server_msg_type packet_id = 1 [default = e_mst_c2l_get_baojin_match_info ];
}

// 爆金场大厅界面信息获取结果
message packetl2c_get_baojin_match_info_result
{
	optional e_server_msg_type packet_id = 1 [default = e_mst_l2c_get_baojin_match_info_result ];

	// 今日最高积分
	optional int32 maxScore = 2; 

	// 本周最高积分
	optional int32 weekMaxScore = 3;

	// 历史最高排名
	optional int32 historyMaxRank = 4;

	// 冠军
	optional BaojiRankInfo champion = 5;

	// 排行榜列表
	repeated BaojiRankInfo rankList = 6;

	// 是否参加了比赛
	optional bool isJoinMatch = 7;

	// 进入钻石价格(0免费)
	optional int32 enterGem = 8;

	// 我的今日排名
	optional int32 curRank = 9;
}

// 复活，再次挑战
message packetc2l_baojin_revive
{
	optional e_server_msg_type packet_id = 1 [default = e_mst_c2l_baojin_revive ];
}

// 复活，再次挑战结果
message packetl2c_baojin_revive_result
{
	optional e_server_msg_type packet_id = 1 [default = e_mst_l2c_baojin_revive_result ];

	optional int32 result = 2;

	// 所兑积分
	optional int32 exchangeScore = 3;
}

// 广播再次挑战
message packetl2c_bc_baojin_revive
{
	optional e_server_msg_type packet_id = 1 [ default = e_mst_l2c_bc_baojin_revive ];

	// 玩家ID
	optional int32 playerId = 2;

	// 剩余鱼币
	optional int32 remainGold = 3;

	// 当前得分
	optional int32 curScore = 4;   
}

// 获取爆金排行榜
message packetc2l_get_baojin_rank
{
	optional e_server_msg_type packet_id = 1 [default = e_mst_c2l_get_baojin_rank ];

	// 排行榜类型 0 今日排行榜  1 每周排行
	optional int32 rankType = 2;

	// 取多少名
	optional int32 rankCount = 3;
}

// 获取爆金排行榜结果
message packetl2c_get_baojin_rank_result
{
	optional e_server_msg_type packet_id = 1 [default = e_mst_l2c_get_baojin_rank_result ];

	optional int32 rankType = 2;

	// 排行榜列表
	repeated BaojiRankInfo rankList = 3;

	// 是否参加了比赛
	optional bool isJoinMatch = 4;
}

// 领取积分档位奖励
message packetc2l_recv_score_reward
{
	optional e_server_msg_type packet_id = 1 [default = e_mst_c2l_recv_score_reward ];

	// 奖励id
	optional int32 scoreLevel = 2;
}

// 领取积分档位奖励结果
message packetl2c_recv_score_reward_result
{
	optional e_server_msg_type packet_id = 1 [default = e_mst_l2c_recv_score_reward_result ];

	optional int32 result = 2;
}

// 获取个人信息
message packetc2l_get_self_info
{
	optional e_server_msg_type packet_id = 1 [default = e_mst_c2l_get_self_info ];
}

// 获取个人信息结果
message packetl2c_get_self_info_result
{
	optional e_server_msg_type packet_id = 1 [default = e_mst_l2c_get_self_info_result ];

	// 今日最高积分
	optional int32 maxScore = 2; 

	// 本次获得积分
	optional int32 curScore = 3;

	// 当前排名 -1表示还没有上榜
	optional int32 curRank = 4;
}

// 得分通知，每5秒通知一次
message packetl2c_score_notify
{
	optional e_server_msg_type packet_id = 1 [default = e_mst_l2c_score_notify ];

	// 当前得分
	optional int32 curScore = 2;

	// 玩家id
	optional int32 playerId = 3;

	// 剩余鱼币
	optional int32 remainGold = 4;

	// 当前作务剩余子弹数量
	optional int32 questRemainBullet = 5; 
}

// 爆金场比赛结束通知
message packetl2c_baojin_matchend_notify
{
	optional e_server_msg_type packet_id = 1 [default = e_mst_l2c_baojin_matchend_notify ];

	// 0 鱼币用光了
	optional int32 reason = 2;

	// 今日最高积分
	optional int32 maxScore = 3; 

	// 本次获得积分(总分)
	optional int32 curScore = 4;

	// 当前排名 -1表示还没有上榜
	optional int32 curRank = 5;

	// 炮台加成积分
	optional int32 turrentAddScore = 6;

	// 倍率加成积分
	optional int32 rateAddScore = 7;
}

// 触发一个竞技场任务
message packetl2c_open_baojin_quest_notify
{
	optional e_server_msg_type packet_id = 1 [default = e_mst_l2c_open_baojin_quest_notify];
	
	optional int32 questId = 2;

	// 当前任务剩余子弹数量
	optional int32 remainBullet = 3;
}

// 竞技场任务进度通知
message packetl2c_baojin_quest_progress_notify
{
	optional e_server_msg_type packet_id = 1 [default = e_mst_l2c_baojin_quest_progress_notify];
	
	optional int32 questId = 2;

	// 当前进度
	optional int32 progress = 3;

	// 是否完成
	optional bool isFinish = 4;
}

// 获取竞技场任务信息
message packetc2l_get_baojin_quest_info
{
	optional e_server_msg_type packet_id = 1 [default = e_mst_c2l_get_baojin_quest_info ];
}

message MatchBaojinQuestInfo
{
	optional int32 questId = 1;

	optional int32 progress = 2;

	optional bool isFinish = 3;
}

// 获取竞技场任务信息结果
message packetl2c_get_baojin_quest_info_result
{
	optional e_server_msg_type packet_id = 1 [default = e_mst_l2c_get_baojin_quest_info_result ];

	repeated MatchBaojinQuestInfo questList = 2;
}

// 积分超出指定值
message packetl2c_baojin_score_beyond_value_notify
{
	optional e_server_msg_type packet_id = 1 [default = e_mst_l2c_baojin_score_beyond_value_notify];
}

// 放弃竞技场挑战
message packetl2c_abandon_baojin_match
{
	optional e_server_msg_type packet_id = 1 [default = e_mst_l2c_abandon_baojin_match ];
}

// 放弃竞技场挑战结果
message packetl2c_abandon_baojin_match_result
{
	optional e_server_msg_type packet_id = 1 [default = e_mst_l2c_abandon_baojin_match_result];
}
