public virtual void RemoveAnimal(InGameRootViewModel viewModel, AnimalProp arg)
 {
 }
    public override void RemoveAnimal(InGameRootViewModel viewModel, AnimalProp arg)
    {
        base.RemoveAnimal (viewModel, arg);

        AnimalViewModel vm = this.GetAnimalAtLoc (viewModel, arg.Loc);
        viewModel.AnimalCollections.Remove (vm);

        viewModel.CalcAnimalsCount.OnNext (new CalcAnimalsCountCommand ());
    }
 public virtual void ExecuteRemoveAnimal(AnimalProp arg)
 {
     InGameRoot.RemoveAnimal.OnNext(new RemoveAnimalCommand() { Sender = InGameRoot, Argument = arg });
 }
    public override void CreateAnimal(InGameRootViewModel viewModel, AnimalProp arg)
    {
        base.CreateAnimal (viewModel, arg);

        AnimalViewModel animalVM = this.CreateViewModel<AnimalViewModel> ();
        animalVM.SameCount = 0;
        animalVM.AnimalType = arg.AnimalType;
        animalVM.Loc = arg.Loc;

        viewModel.AnimalCollections.Add (animalVM);

        viewModel.CalcAnimalsCount.OnNext (new CalcAnimalsCountCommand ());
    }