public int Test(PlayerView view, ref WorldBase world)
        {
            if (_cityIndex < 0)
            {
                return(-1);
            }

            var city            = world.citySet.GetActiveCity(_cityIndex, out _masterIndex);
            var placeAtPosition = city.position;

            for (int i = 0; i < world.unitSet.numberOfUnits; ++i)
            {
                if (world.unitSet.GetUnit(i).position == placeAtPosition)
                {
                    _cityIndex = -1;
                    return(-1);
                }
            }

            world =
                new WorldCitySetChange(
                    world,
                    new CitySetCityChange(
                        world.citySet,
                        _masterIndex,
                        new CityNewOrder(
                            city,
                            new CityOrderBuildUnit()
                            )
                        )
                    );

            return(10);
        }
Esempio n. 2
0
        public int Test(PlayerView view, ref WorldBase world)
        {
            if (_unitIndex < 0)
            {
                return(-1);
            }

            UnitBase unit            = world.unitSet.GetActiveUnit(_unitIndex, out int masterListIndex);
            var      placeAtPosition = unit.position;

            for (int i = 0; i < world.citySet.numberOfCities; ++i)
            {
                if (Vector2Int.Distance(world.citySet.GetCity(i).position, placeAtPosition) <= 4.0F)
                {
                    _unitIndex = -1;
                    return(-1);
                }
            }

            world =
                new WorldUnitSetChange(
                    world,
                    new UnitSetUnitChange(
                        world.unitSet,
                        masterListIndex,
                        new UnitNewOrder(
                            unit,
                            new UnitOrderBuildCity()
                            )
                        )
                    );

            world =
                new WorldCitySetChange(
                    world,
                    new CitySetNewCityChange(
                        world.citySet,
                        new City(placeAtPosition, 1)
                        // new City(new Vector2Int(60, 30))
                        )
                    );

            return(10);
        }