public bool positionExists(BattlefieldPosition pos)
    {
        if (pos.teamNumber != 1 && pos.teamNumber != 2)
        {
            return(false);
        }

        switch (pos.positionType)
        {
        case BattlefieldPosition.PositionType.PRIMARY:
            if (pos.positionNumber < 0 || pos.positionNumber >= primarySize)
            {
                return(false);
            }
            return(true);

            break;

        case BattlefieldPosition.PositionType.SUPPORT:
            if (pos.positionNumber < 0 || pos.positionNumber >= supportSize)
            {
                return(false);
            }
            return(true);

            break;

        default:
            return(false);

            break;
        }
    }
 public bool place(BattleCreature creature, BattlefieldPosition position)
 {
     if (!positionExists(position))
     {
         return(false);
     }
     positions[position] = creature;
     return(false);
 }
    public override bool Equals(object obj)
    {
        if (!(obj is BattlefieldPosition))
        {
            return(false);
        }
        BattlefieldPosition other = (BattlefieldPosition)obj;

        return(teamNumber == other.teamNumber && positionType == other.positionType && positionNumber == other.positionNumber);
    }
    public BattleCreature removeOccupant(BattlefieldPosition position)
    {
        if (!isOccupied(position))
        {
            return(null);
        }

        BattleCreature oldOccupant = positions[position];

        positions[position] = null;
        return(oldOccupant);
    }
    private void placeCreatureUI(GameObject creatureUI, BattlefieldPosition bp)
    {
        Vector3 position = new Vector3();

        //TODO make more flexible
        if (bp.Equals(new BattlefieldPosition(0, BattlefieldPosition.PositionType.PRIMARY, 0)))
        {
            position = new Vector3(-150f, -110f, 0f);
        }
        else if (bp.Equals(new BattlefieldPosition(1, BattlefieldPosition.PositionType.PRIMARY, 0)))
        {
            position = new Vector3(150f, 110f, 0f);
        }

        ((RectTransform)creatureUI.transform).localPosition = position;
    }
 public bool isOccupied(BattlefieldPosition position)
 {
     return(positionExists(position) && positions[position] != null);
 }
 public BattleCreature getOccupant(BattlefieldPosition position)
 {
     return(positions[position]);
 }