public override void Draw()
    {
        Random.InitState((int)DateTime.Now.Ticks);

        var placeholderList = new List <Placeholder>()
        {
            Placeholder.EAST, Placeholder.NORTH, Placeholder.SOUTH, Placeholder.WEST
        };
        Placeholder actualPlaceholder;

        int rand;
        int positionIndex = 0;
        EnvironmentPosition actualPos;
        EnvironmentVirus    actualVirus;

        while (placeholderList.Count > 0)
        {
            rand = Random.Range(0, placeholderList.Count - 1);
            actualPlaceholder = placeholderList[rand];
            placeholderList.RemoveAt(rand);

            actualVirus = _viruses[positionIndex];
            actualPos   = new EnvironmentPosition(actualPlaceholder, _positionHelper.GetPosition(actualPlaceholder), _rotationHelper.GetRotation(actualPlaceholder));

            actualVirus.InitPosition(actualPos);
            //Debug.Log(actualVirus.type + " at " + actualPlaceholder + " place");
            actualVirus.Instance = Instantiate(actualVirus.Prefab, actualPos.Position, actualPos.Rotation);

            _virusesInstances.Add(actualVirus.Instance);
            positionIndex++;
        }
    }
    public void SwapVirusPlace(EnvironmentVirus.Type type)
    {
        EnvironmentVirus    virus     = GetVirus(type);
        EnvironmentVirus    installer = GetVirus(EnvironmentVirus.Type.INSTALLER);
        EnvironmentPosition savedPos  = virus.Pos;

        virus.Move(installer.Pos);
        installer.Move(savedPos);
    }
 public void Move(EnvironmentPosition pos)
 {
     Pos = pos;
     Instance.GetComponent <Transform>().SetPositionAndRotation(pos.Position, pos.Rotation);
 }
 public void InitPosition(EnvironmentPosition pos)
 {
     Pos = pos;
 }