129 lines
4.1 KiB
C#
129 lines
4.1 KiB
C#
|
//////////////////////////////////////////////////////////////////////////
|
|||
|
// 修改历史:
|
|||
|
// 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);
|
|||
|
//}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|