Files
JJBB/Assets/Project/Script/Player/UserData/DailyMissionData.cs

129 lines
4.1 KiB
C#
Raw Normal View History

2024-08-23 15:49:34 +08:00
//////////////////////////////////////////////////////////////////////////
// 修改历史:
// 2014-5-28 Lijia: 客户端效率优化把DailyMission从class改为struct
//////////////////////////////////////////////////////////////////////////
using UnityEngine;
using System.Collections;
using Games.GlobeDefine;
using Games.Mission;
using Module.Log;
namespace Games.DailyMissionData
{
public struct DailyMission
{
private int m_nMissionID; // 日常任务ID
public int MissionID
{
get { return m_nMissionID; }
set { m_nMissionID = value; }
}
private byte m_yQuality; // 品质
public byte Quality
{
get { return m_yQuality; }
set { m_yQuality = value; }
}
public void CleanUp()
{
m_nMissionID = GlobeVar.INVALID_ID;
m_yQuality = 0;
}
}
public class DailyMissionData
{
public const int MAX_DAILYMISSION_KINDS = 10; // 最大种类数
private DailyMission[] m_DailyMissionList; // 日常任务
private int m_nDailyMissionDoneCount; // 每天所做日常任务数
public int DailyMissionDoneCount
{
get { return m_nDailyMissionDoneCount; }
set {
m_nDailyMissionDoneCount = value;
//if (ActivityController.Instance())
//{
// //ActivityController.Instance().UpDateDoneCount(m_nDailyMissionDoneCount);
//}
}
}
public DailyMissionData()
{
m_DailyMissionList = new DailyMission[MAX_DAILYMISSION_KINDS];
m_nDailyMissionDoneCount = 0;
}
void CleanUp()
{
for (int nIndex = 0; nIndex < MAX_DAILYMISSION_KINDS; nIndex++)
{
m_DailyMissionList[nIndex].CleanUp();
}
m_nDailyMissionDoneCount = 0;
}
public DailyMission GetDailyMissionByKind(int nKind)
{
if (nKind >= 0 && nKind < MAX_DAILYMISSION_KINDS)
{
return m_DailyMissionList[nKind];
}
DailyMission mission = new DailyMission();
mission.CleanUp();
return mission;
}
public void AskUpdateDailyMission(int nKind)
{
if (nKind < 0 || nKind > MAX_DAILYMISSION_KINDS)
{
return;
}
CG_DAILYMISSION_UPDATE askPacket = (CG_DAILYMISSION_UPDATE)PacketDistributed.CreatePacket(MessageID.PACKET_CG_DAILYMISSION_UPDATE);
askPacket.SetType(nKind);
askPacket.SendPacket();
}
public void HandlePacket(GC_DAILYMISSION_UPDATE_RET packet)
{
DailyMissionDoneCount = packet.Donecount;
int nKind = packet.Type;
if (nKind == MAX_DAILYMISSION_KINDS)
{
for (int i = 0; i < packet.missionIDCount; i++)
{
DailyMission data = new DailyMission();
data.CleanUp();
data.MissionID = packet.GetMissionID(i);
data.Quality = (byte)packet.GetQualityType(i);
if (i < m_DailyMissionList.Length)
m_DailyMissionList[i] = data;
}
//if (ActivityController.Instance())
//{
// ActivityController.Instance().UpdateDailyMissionList();
//}
}
else if (nKind > GlobeVar.INVALID_ID && nKind < MAX_DAILYMISSION_KINDS)
{
DailyMission data = new DailyMission();
data.CleanUp();
data.MissionID = packet.GetMissionID(0);
data.Quality = (byte)packet.GetQualityType(0);
m_DailyMissionList[nKind] = data;
//if (ActivityController.Instance())
//{
// ActivityController.Instance().UpdateMissionItemByKind(nKind);
//}
}
}
}
}