/// <summary> /// Destructs this instance. /// </summary> public void Destruct() { this._data = null; this._level = null; this._progress = 0; this._requireProgress = 0; }
/// <summary> /// Refreshes all open missions. /// </summary> public void RefreshOpenMissions() { if (this._level.GetState() != 4) { LogicClientAvatar playerAvatar = this._level.GetPlayerAvatar(); LogicDataTable missionTable = LogicDataTables.GetTable(20); for (int i = 0; i < missionTable.GetItemCount(); i++) { LogicMissionData missionData = (LogicMissionData)missionTable.GetItemAt(i); if (missionData.IsOpenForAvatar(playerAvatar)) { int index = -1; for (int j = 0; j < this._openMissions.Count; j++) { if (this._openMissions[j].GetMissionData() == missionData) { index = j; break; } } if (index == -1) { LogicMission mission = new LogicMission(missionData, this._level); mission.RefreshProgress(); this._openMissions.Add(mission); } } } } }
public void DebugCompleteAllTutorials(bool onlyHomeMissions, bool completeNameMission, bool completeWarMissions) { LogicClientAvatar playerAvatar = this.m_level.GetPlayerAvatar(); LogicDataTable table = LogicDataTables.GetTable(LogicDataType.MISSION); bool restartMission = false; for (int i = 0; i < table.GetItemCount(); i++) { LogicMissionData data = (LogicMissionData)table.GetItemAt(i); if (!completeWarMissions && data.GetMissionCategory() == 1) { continue; } if (onlyHomeMissions) { if (data.GetMissionCategory() != 0) { continue; } } else if (data.GetMissionCategory() == 2 && this.m_level.GetGameObjectManagerAt(0).GetShipyard().GetUpgradeLevel() == 0 && this.m_level.GetVillageType() == 0) { continue; } if (restartMission) { playerAvatar.SetMissionCompleted(data, false); playerAvatar.GetChangeListener().CommodityCountChanged(0, data, 0); } if (!completeNameMission) { if (data.GetMissionType() == 6) { restartMission = true; continue; } } playerAvatar.SetMissionCompleted(data, true); playerAvatar.GetChangeListener().CommodityCountChanged(0, data, 1); } this.RefreshOpenMissions(); }
/// <summary> /// Gets the mission by data. /// </summary> public LogicMission GetMissionByData(LogicMissionData data) { for (int i = 0; i < this._openMissions.Count; i++) { LogicMission mission = this._openMissions[i]; if (mission.GetMissionData() == data) { return(mission); } } return(null); }
/// <summary> /// Gets if the player has travel. /// </summary> public bool HasTravel(LogicAvatar playerAvatar) { LogicDataTable missionTable = LogicDataTables.GetTable(20); for (int i = 0; i < missionTable.GetItemCount(); i++) { LogicMissionData missionData = (LogicMissionData)missionTable.GetItemAt(i); if (missionData.GetMissionType() == 23) { if (playerAvatar.IsMissionCompleted(missionData)) { return(true); } } } return(false); }
public void DebugResetAllTutorials() { LogicClientAvatar playerAvatar = this.m_level.GetPlayerAvatar(); LogicDataTable table = LogicDataTables.GetTable(LogicDataType.MISSION); for (int i = 0; i < table.GetItemCount(); i++) { LogicMissionData data = (LogicMissionData)table.GetItemAt(i); playerAvatar.SetMissionCompleted(data, false); playerAvatar.GetChangeListener().CommodityCountChanged(0, data, 0); } while (this.m_missions.Size() > 0) { this.m_missions[0].Destruct(); this.m_missions.Remove(0); } this.RefreshOpenMissions(); }
public void RefreshOpenMissions() { if (this.m_level.GetState() != 4) { LogicClientAvatar playerAvatar = this.m_level.GetPlayerAvatar(); LogicDataTable missionTable = LogicDataTables.GetTable(LogicDataType.MISSION); for (int i = 0; i < missionTable.GetItemCount(); i++) { LogicMissionData missionData = (LogicMissionData)missionTable.GetItemAt(i); if (missionData.IsOpenForAvatar(playerAvatar)) { if (this.GetMissionByData(missionData) == null) { LogicMission mission = new LogicMission(missionData, this.m_level); mission.RefreshProgress(); this.m_missions.Add(mission); } } } } }
/// <summary> /// Initializes a new instance of the <see cref="LogicMission"/> class. /// </summary> public LogicMission(LogicMissionData data, LogicLevel level) { if (data == null) { Debugger.Error("LogicMission::constructor - pData is NULL!"); } this._data = data; this._level = level; this._requireProgress = 1; switch (data.GetMissionType()) { case 1: this._requireProgress = 2; break; case 0: case 5: this._requireProgress = data.GetBuildBuildingCount(); break; case 4: this._requireProgress = data.GetTrainTroopCount(); break; case 18: this._requireProgress = 2; break; } if (data.GetMissionCategory() == 1) { // MMh. } }
/// <summary> /// Destructs this instance. /// </summary> public override void Destruct() { base.Destruct(); this._missionData = null; }
/// <summary> /// Decodes this instnace. /// </summary> public override void Decode(ByteStream stream) { this._missionData = (LogicMissionData)stream.ReadDataReference(20); base.Decode(stream); }
/// <summary> /// Initializes a new instance of the <see cref="LogicMissionProgressCommand" /> class. /// </summary> public LogicMissionProgressCommand(LogicMissionData missionData) { this._missionData = missionData; }
public override void Decode(ByteStream stream) { this.m_missionData = (LogicMissionData)ByteStreamHelper.ReadDataReference(stream, LogicDataType.MISSION); base.Decode(stream); }