Exemplo n.º 1
0
    public static global::Units.UnitInfo CreateUnitInfo(
        global::HexTiling.HexCoords coords_hexCoords, float health_f,
        int t, bool isDocked, int fuel, Units.BomberTransport bt,
        Units.CarriedAircraft[] aircrafts, Units.TransportedUnit[] tu)
    {
        global::Units.UnitInfo unitInfo
            = new global::Units.UnitInfo(coords_hexCoords, health_f, (Units.UnitTypes)CreateUnitTypes(t, isDocked, fuel, bt, aircrafts, tu));
        return(unitInfo);

        // TODO: Edit factory method of UnitInfo
        // This method should be able to configure the object in all possible ways.
        // Add as many parameters as needed,
        // and assign their values to each field by using the API.
    }
Exemplo n.º 2
0
    public static object CreateUnitTypes(int t, bool isDocked, int fuel, Units.BomberTransport bt,
                                         Units.CarriedAircraft[] aircrafts, Units.TransportedUnit[] tu)
    {
        switch (t)
        {
        case 0: return(Units.UnitTypes.Infantry);

        case 1: return(Units.UnitTypes.AntiAircraft);

        case 2: return(Units.UnitTypes.Artillery);

        case 3: return(Units.UnitTypes.Tank);

        case 4: return(Units.UnitTypes.NewBattleship(isDocked ? Units.Docked.Docked : Units.Docked.NotDocked));

        case 5:
            PexAssume.IsNotNull(bt);
            return(Units.UnitTypes.NewBomber(isDocked ? Units.Landed.Landed : Units.Landed.Airborne,
                                             Units.Fuel.NewFuel(fuel), bt));

        case 6:
            PexAssume.IsNotNull(aircrafts);
            PexAssume.AreElementsNotNull(aircrafts);
            return(Units.UnitTypes.NewCarrier(isDocked ? Units.Docked.Docked : Units.Docked.NotDocked,
                                              aircrafts));

        case 7:
            return(Units.UnitTypes.NewDestroyer(isDocked ? Units.Docked.Docked : Units.Docked.NotDocked));

        case 8:
            return(Units.UnitTypes.NewFighter(isDocked ? Units.Landed.Landed : Units.Landed.Airborne,
                                              Units.Fuel.NewFuel(fuel)));

        case 9:
            return(Units.UnitTypes.NewSubmarine(isDocked ? Units.Docked.Docked : Units.Docked.NotDocked, Units.Stealthy.NotStealthy));

        case 10:
            return(Units.UnitTypes.NewSubmarine(isDocked ? Units.Docked.Docked : Units.Docked.NotDocked, Units.Stealthy.Stealthy));

        default:
            PexAssume.IsNotNull(tu);
            PexAssume.AreElementsNotNull(tu);
            return(Units.UnitTypes.NewTransport(isDocked ? Units.Docked.Docked : Units.Docked.NotDocked, tu));
        }
    }