public MapPokemonViewModel(MapPokemon pokemon, SessionViewModel session, Settings settings, PlayerViewModel player, MapViewModel map)
            : base(pokemon.PokemonId, pokemon.EncounterId, settings)
        {
            this.session = session;
            this.player  = player;
            this.map     = map;

            EncounterId           = pokemon.EncounterId;
            ExpirationTimestampMs = pokemon.ExpirationTimestampMs;
            SpawnPointId          = pokemon.SpawnPointId;
            Position = new Position2DViewModel(pokemon.Latitude, pokemon.Longitude);
        }
        public CaughtPokemonViewModel(PokemonData pokemon, SessionViewModel session, InventoryViewModel inventory, Settings settings) : base(pokemon, settings)
        {
            if (Id == 0)
            {
                throw new ArgumentException("This is not a caught pokemon.", nameof(pokemon));
            }

            this.session   = session;
            this.inventory = inventory;

            Candy = inventory.GetCandyForFamily(FamilyId);
            CalculateLevel();
        }
示例#3
0
        public InventoryViewModel(SessionViewModel session, TransferPokemonAlgorithmFactory transferPokemonAlgorithmFactory, Settings settings)
        {
            Pokemon       = new ObservableCollection <CaughtPokemonViewModel>();
            Eggs          = new ObservableCollection <EggViewModel>();
            EggIncubators = new ObservableCollection <EggIncubatorViewModel>();
            Items         = new ObservableCollection <ItemViewModel>();

            this.settings = settings;
            this.transferPokemonAlgorithmFactory = transferPokemonAlgorithmFactory;
            TransferPokemonAlgorithm             = transferPokemonAlgorithmFactory.GetDefaultFromSettings();
            this.session = session;
            UpdateCount();
            settings.PropertyChanged += Settings_PropertyChanged;
        }
示例#4
0
        public MainViewModel()
        {
            Settings = Settings.LoadFromFile(settingsFile);
            Session  = new SessionViewModel(this);
            var transferPokemonAlgorithmFactory = new TransferPokemonAlgorithmFactory(Settings);
            var inventory = new InventoryViewModel(Session, transferPokemonAlgorithmFactory, Settings);

            Map              = new MapViewModel(Session, Settings);
            Player           = new PlayerViewModel(inventory, Map, Settings, Session);
            Map.Player       = Player;
            inventory.Player = Player;
            Bot              = new BotViewModel(Player, Map);
            Console          = new ConsoleViewModel();
            Players          = new[] { Player };
        }
        public MapPokemonViewModel(FortData fort, SessionViewModel session, Settings settings, PlayerViewModel player, MapViewModel map)
            : base(fort.LureInfo.ActivePokemonId, fort.LureInfo.EncounterId, settings)
        {
            this.session = session;
            this.player  = player;
            this.map     = map;

            isPokemonFromLure = true;
            this.fort         = fort;
            var lureInfo = fort.LureInfo;

            EncounterId           = lureInfo.EncounterId;
            ExpirationTimestampMs = lureInfo.LureExpiresTimestampMs;
            SpawnPointId          = lureInfo.FortId;
            Position = new Position2DViewModel(fort.Latitude, fort.Longitude);
        }
示例#6
0
        public PlayerViewModel(InventoryViewModel inventory, MapViewModel map, Settings settings, SessionViewModel session)
        {
            this.map      = map;
            this.settings = settings;
            this.session  = session;
            Inventory     = inventory;
            minSpeedInmetersPerMillisecond = settings.MinTravelSpeedInKmH / 3600.0;
            maxSpeedInmetersPerMillisecond = settings.MaxTravelSpeedInKmH / 3600.0;

            Position = new Position3DViewModel(settings.DefaultLatitude, settings.DefaultLongitude, settings.DefaultAltitude);

            var xpTimer = new DispatcherTimer();

            xpTimer.Tick    += XpTimer_Tick;
            xpTimer.Interval = TimeSpan.FromSeconds(10);
            xpTimer.Start();
        }
示例#7
0
 public ItemViewModel(ItemAward item, SessionViewModel session)
     : this(item.ItemCount, (Enums.ItemType)item.ItemId, session)
 {
 }
示例#8
0
 public GymViewModel(FortData fort, SessionViewModel session)
     : base(fort, session)
 {
     Team = Enum.GetName(typeof(TeamColor), fort.OwnedByTeam);
 }
示例#9
0
 public FortViewModel(FortData fort, SessionViewModel session)
 {
     Position     = new Position2DViewModel(fort.Latitude, fort.Longitude);
     Id           = fort.Id;
     this.session = session;
 }