Esempio n. 1
0
    public void Initialize(int _index, int _level)
    {
        m_index = _index;
        if (_level > 0)
        {
            m_level = new OfficerLevel(xpRequirements_level[_level - 1], _level);
        }
        else
        {
            m_level = new OfficerLevel(0.0f, 0);
        }

        // add all possible keys to dictionaries
        foreach (Neighborhood neighborhood in GameObject.Find("City").GetComponent <City>().GetNeighborhoods())
        {
            m_level_neighborhoods.Add(neighborhood, new OfficerLevel(0.0f, 0));
        }
        foreach (types.CrimeType type in System.Enum.GetValues(typeof(types.CrimeType)))
        {
            m_level_crimeTypes.Add(type, new OfficerLevel(0.0f, 0));
        }

        // head sprite
        m_sprite = headImages[m_index % (headImages.Length)];
    }
Esempio n. 2
0
    void GainExperience(float _experience)
    {
        // add experience points
        m_level.xp += Clock.GetDeltaTime();
        // add experience points toward neighborhood
        if (m_level_neighborhoods.ContainsKey(GetCurrentCrime().GetNeighborhood()))
        {
            m_level_neighborhoods[GetCurrentCrime().GetNeighborhood()].xp += Clock.GetDeltaTime();
        }
        else
        {
            m_level_neighborhoods.Add(GetCurrentCrime().GetNeighborhood(), new OfficerLevel(Clock.GetDeltaTime(), 0));
        }
        // add experience points toward crime type
        if (m_level_crimeTypes.ContainsKey(GetCurrentCrime().GetCrimeType()))
        {
            m_level_crimeTypes[GetCurrentCrime().GetCrimeType()].xp += Clock.GetDeltaTime();
        }
        else
        {
            m_level_crimeTypes.Add(GetCurrentCrime().GetCrimeType(), new OfficerLevel(Clock.GetDeltaTime(), 0));
        }

        // check if level up
        for (int i = 0; i < xpRequirements_level.Length; i++)
        {
            // level up
            if (i > m_level.level)
            {
                if (m_level.xp >= xpRequirements_level[i])
                {
                    LevelUp(m_level);
                }
            }
            // level up crime type
            if (i < xpRequirements_crime.Length)
            {
                OfficerLevel ol = m_level_crimeTypes[GetCurrentCrime().GetCrimeType()];
                if (i > ol.level)
                {
                    if (ol.xp >= xpRequirements_crime[i])
                    {
                        LevelUpCrime(ol);
                    }
                }
            }
            // level up neighborhood
            if (i < xpRequirements_neighborhood.Length)
            {
                OfficerLevel ol = m_level_neighborhoods[GetCurrentCrime().GetNeighborhood()];
                if (i > ol.level)
                {
                    if (ol.xp >= xpRequirements_neighborhood[i])
                    {
                        LevelUpNeighborhood(ol);
                    }
                }
            }
        }
    }
Esempio n. 3
0
 void LevelUpNeighborhood(OfficerLevel _level)
 {
     LevelUpGeneral(_level);
     MonoBehaviour.print("Officer " + m_index + " levels up a neighborhood to level " + (_level.level + 1));
 }
Esempio n. 4
0
 void LevelUpCrime(OfficerLevel _level)
 {
     LevelUpGeneral(_level);
     MonoBehaviour.print("Officer " + m_index + " levels up a crime to level " + (_level.level + 1));
 }
Esempio n. 5
0
 void LevelUpGeneral(OfficerLevel _level)
 {
     _level.level++;
 }