Esempio n. 1
0
 /// <summary>
 ///     Destructs this instance.
 /// </summary>
 public void Destruct()
 {
     this._data            = null;
     this._level           = null;
     this._progress        = 0;
     this._requireProgress = 0;
 }
Esempio n. 2
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);
                        }
                    }
                }
            }
        }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
        /// <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);
        }
Esempio n. 5
0
        /// <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);
        }
Esempio n. 6
0
        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();
        }
Esempio n. 7
0
        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);
                        }
                    }
                }
            }
        }
Esempio n. 8
0
        /// <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);
 }