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);
|
||
//}
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|