Exemplo n.º 1
0
        public void OnNewTroopMovementDialogReturn(int numTroops)
        {
            Destroy(ActiveTroopDialog.gameObject);
            ActiveTroopDialog = null;

            if (numTroops == 0)
            {
                Destroy(DragArrow);
            }
            else
            {
                Vector2 midPos = Vector2.Lerp(DragArrowStart, DragArrowEnd, 0.5f);

                GameObject rectangle = MeshGenerator.DrawRectangle(midPos, PolygonMapGenerator.LAYER_OVERLAY2, 0.13f, 0.13f, Color.gray);
                rectangle.AddComponent <MeshCollider>();
                rectangle.transform.SetParent(DragArrow.transform);

                TextMesh movementLabel = MeshGenerator.DrawTextMesh(midPos, PolygonMapGenerator.LAYER_OVERLAY3, numTroops.ToString(), 60);
                movementLabel.transform.SetParent(DragArrow.transform);

                Army newMovement = Game.AddArmy(DragSourceTerritory, DragTargetTerritory, numTroops);

                ArmyArrow movementArrow = DragArrow.AddComponent <ArmyArrow>();
                movementArrow.Init(newMovement, movementLabel, midPos);
                Game.ArmyArrows.Add(movementArrow);
            }

            State = InputState.Idle;
        }
Exemplo n.º 2
0
        public void DoNpcTroopsMovements()
        {
            foreach (Territory t in Territories)
            {
                int remainingTroops = t.Troops;
                List <Territory> neighbourTerritories = t.Region.Neighbours.Select(x => Game.Territories[x]).ToList();

                while (remainingTroops > 0 && neighbourTerritories.Count > 0)
                {
                    Territory moveTerritory = neighbourTerritories[Random.Range(0, neighbourTerritories.Count)];
                    int       moveTroops    = Random.Range(0, remainingTroops + 1);
                    neighbourTerritories.Remove(moveTerritory);
                    if (moveTroops > 0)
                    {
                        Game.AddArmy(t, moveTerritory, moveTroops);
                        remainingTroops -= moveTroops;
                    }
                }
            }
        }