コード例 #1
0
    public void SetLocationCompletion(Location location, int iWave)
    {
        bool bFound = false;

        foreach (LocationCompletion data in locationsCompleted)
        {
            if (data.location == location)
            {
                bFound = true;
                if (iWave > data.iNumWaves)
                {
                    data.iNumWaves = iWave;
                }
            }
        }

        if (!bFound)
        {
            LocationCompletion data = new LocationCompletion();
            data.location  = location;
            data.iNumWaves = iWave;
            locationsCompleted.Add(data);
        }

        MapNode.RefreshAllNodes();
        CheckForAchievements();
    }
コード例 #2
0
    public void ReadFrom(SerializationInfo data, string prefix)
    {
        locationsCompleted.Clear();

        int count = data.GetInt32(prefix + "NumComplete");

        for (int i = 0; i < count; i++)
        {
            LocationCompletion completionData = new LocationCompletion();
            int hashCode = data.GetInt32(prefix + "Complete" + i + ".Hash");
            foreach (Location location in locations)
            {
                if (location.GetHashCode() == hashCode)
                {
                    completionData.location = location;
                    break;
                }
            }
            completionData.iNumWaves = data.GetByte(prefix + "Complete" + i + ".NumWaves");
            if (completionData.iNumWaves > completionData.location.numWaves)
            {
                completionData.iNumWaves = -1;
            }

            locationsCompleted.Add(completionData);
        }

        MapNode.RefreshAllNodes();
        CheckForAchievements();
    }