Beispiel #1
0
    public override void Conquest(GameController got, TerritoryController source, TerritoryController target)
    {
        bool enemy = false;

        foreach (var n in target.neighborhood)
        {
            if (n.player != this.numTurn)
            {
                enemy = true;
            }
        }
        if (enemy)
        {
            if (got.MoveConquest(Math.Min(3, source.getTropas() - 1)))
            {
                got.AttackSubstate();
            }
        }
        else
        {
            if (got.MoveConquest(1))
            {
                got.AttackSubstate();
            }
        }
    }
Beispiel #2
0
    public bool Redistribute(TerritoryController source, TerritoryController target, int quantity)
    {
        var found = false;

        foreach (var n in source.neighborhood)
        {
            if (System.Object.ReferenceEquals(n, target))
            {
                found = true;
                break;
            }
        }
        if (!found)
        {
            return(false);
        }
        if (System.Object.ReferenceEquals(source, target))
        {
            return(false);
        }
        if (source.player != turn || target.player != turn)
        {
            return(false);
        }
        if (source.getTropas() <= quantity)
        {
            return(false);
        }
        if (source.getTropas() - redistributed[source] < quantity)
        {
            return(false);
        }
        for (var i = 0; i < quantity; i++)
        {
            target.CreateTroop(target.PointInArea());
            redistributed[target] += 1;
            source.DestroyTroop();
        }
        return(true);
    }
Beispiel #3
0
 public bool MoveConquest(int troops)
 {
     if (attackSource.getTropas() > troops && troops <= 3)
     {
         for (var i = 0; i < troops; i++)
         {
             attackTarget.CreateTroop(attackTarget.PointInArea());
             attackSource.DestroyTroop();
         }
         return(true);
     }
     return(false);
 }
Beispiel #4
0
    public override void Conquest(GameController got, TerritoryController source, TerritoryController target)
    {
        got.log.GetComponent <Text>().text = "Atacar - Conquistou";
        clickDistribution   = false;
        clickAttack         = false;
        clickRedistribution = false;
        showNext            = true;
        got.slider.SetActive(true);
        var slider = got.slider.GetComponent <Slider>();

        slider.minValue = 1;
        slider.maxValue = Math.Min(3, source.getTropas() - 1);
        got.log.GetComponent <Text>().text = "Mover " + slider.value;
    }
Beispiel #5
0
    public bool Attack(TerritoryController source, TerritoryController target)
    {
        if (source.player != turn || target.player == turn)
        {
            return(false);
        }
        bool isNeighborhood = false;

        foreach (var n in source.neighborhood)
        {
            if (System.Object.ReferenceEquals(n, target))
            {
                isNeighborhood = true;
                break;
            }
        }
        if (!isNeighborhood)
        {
            return(false);
        }
        var attack  = Math.Min(3, source.getTropas() - 1);
        var defense = Math.Min(3, target.getTropas());

        attackDice  = new List <int>();
        defenseDice = new List <int>();
        for (var i = 0; i < attack; i++)
        {
            attackDice.Add(UnityEngine.Random.Range(1, 7));
        }
        for (var i = 0; i < defense; i++)
        {
            defenseDice.Add(UnityEngine.Random.Range(1, 7));
        }
        attackDice.Sort();
        defenseDice.Sort();
        attackDice.Reverse();
        defenseDice.Reverse();
        for (var i = 0; i < Math.Min(attack, defense); i++)
        {
            if (attackDice[i] > defenseDice[i])
            {
                target.DestroyTroop();
            }
            else
            {
                source.DestroyTroop();
            }
        }
        this.attackSource = source;
        this.attackTarget = target;
        if (target.getTropas() == 0)
        {
            target.player = turn;
            substate      = 2;
        }
        else
        {
            substate = 1;
        }
        //this.GetComponent<MapController>().resetCamera();
        for (var i = 0; i < 3; i++)
        {
            var apos = AttackDiceObject[i].transform.position;
            var dpos = DefenseDiceObject[i].transform.position;
            AttackDiceObject[i].transform.position  = new Vector3(apos.x, apos.y, 700);
            DefenseDiceObject[i].transform.position = new Vector3(dpos.x, dpos.y, 700);
        }
        for (var i = 0; i < attack; i++)
        {
            var apos = AttackDiceObject[i].transform.position;
            AttackDiceObject[i].GetComponent <DiceController>().roll(attackDice[i]);
            AttackDiceObject[i].transform.position = new Vector3(apos.x, apos.y, 200);
        }
        for (var i = 0; i < defense; i++)
        {
            var dpos = DefenseDiceObject[i].transform.position;
            DefenseDiceObject[i].GetComponent <DiceController>().roll(defenseDice[i]);
            DefenseDiceObject[i].transform.position = new Vector3(dpos.x, dpos.y, 200);
        }
        return(true);
    }