Files
JJBB/Assets/Project/Script/Player/UserData/DailyMissionData.cs
2024-08-23 15:49:34 +08:00

129 lines
4.1 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//////////////////////////////////////////////////////////////////////////
// 修改历史:
// 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);
//}
}
}
}
}