Example #1
0
 /// <summary>
 /// Transfere o índice da rede para a lista especificada.
 /// </summary>
 /// <param name="idx">índice a transferir.</param>
 /// <param name="state">região da rede.</param>
 private void MoveIndexTo(int idx, Being.HealthStatus state)
 {
     MoveIndexTo(new List <int>()
     {
         idx
     }, state);
 }
Example #2
0
    public void SetSprite(Being.HealthStatus state)
    {
        switch (state)
        {
        case Being.HealthStatus.HEALTHY:
            SetSpriteImpl(healthy);
            break;

        case Being.HealthStatus.IMUNE:
            SetSpriteImpl(imune);
            break;

        case Being.HealthStatus.INFECTED:
            SetSpriteImpl(infected);
            break;

        case Being.HealthStatus.PSEUDOIMUNE:
            SetSpriteImpl(pseudoImunes);
            break;

        case Being.HealthStatus.DEAD:
            SetSpriteImpl(deadByAccident);
            break;
        }
    }
Example #3
0
 /// <summary>
 /// Transfere a lista de índices da rede para a lista especificada.
 /// </summary>
 /// <param name="idxs">enumerável com os índices a transferir.</param>
 /// <param name="state">região da rede.</param>
 private void MoveIndexTo(IEnumerable <int> idxs, Being.HealthStatus state)
 {
     foreach (Being.HealthStatus stateIdx in indexes.Keys)
     {
         indexes[stateIdx].RemoveAll(i => idxs.Contains(i));
     }
     indexes[state].AddRange(idxs);
 }
Example #4
0
    /// <summary>
    /// Distribui seres com a saúde especificada pela rede.
    /// </summary>
    /// <param name="health">estado de saúde dos seres.</param>
    /// <param name="remaining">distribuir por todos os disponíveis remanescentes?</param>
    private IEnumerable <int> Distribute(Being.HealthStatus health, bool remaining = false)
    {
        List <int> distributed = new List <int>();
        int        qtd         = remaining ? canChoose.Count : UnityEngine.Random.Range(1, canChoose.Count);

        for (int i = 0; i < qtd; ++i)
        {
            int idx = RandomPosition();
            data[idx].Health = health;
            distributed.Add(idx);
        }
        indexes[health].AddRange(distributed);
        return(distributed);
    }