/// <summary> /// Constructor for entity with droplist. /// Must be used only in InitEntityRelationships phase. /// </summary> /// <param name="entityViewModel">View Model of entity with droplist.</param> /// <param name="droplist">Droplist</param> public DroplistRecipeViewModel([NotNull] ProtoEntityViewModel entityViewModel, [NotNull] IEnumerable <IProtoItem> droplist) : base(entityViewModel.ProtoEntity) { if (!EntityViewModelsManager.EntityDictionaryCreated) { throw new Exception("CNEI: Droplist constructor used before all entity VMs sets."); } InputItemsList.Add(entityViewModel); TargetEntity = entityViewModel; HashSet <IProtoItem> uniqueDroplist = new HashSet <IProtoItem>(droplist); OutputItemsList = uniqueDroplist.Select(EntityViewModelsManager.GetEntityViewModel).ToList(); OutputItemsVMList = uniqueDroplist .Select(item => new ViewModelEntityWithCount(EntityViewModelsManager.GetEntityViewModel(item))) .ToList().AsReadOnly(); if (entityViewModel is ProtoCharacterMobViewModel protoCharacterMobViewModel) { icon = protoCharacterMobViewModel.Icon; } }
private bool SearchFilter(ProtoEntityViewModel entityViewModel) { var searchTextLowCase = searchText.ToLower(); return(entityViewModel.TypeLower.Contains(searchTextLowCase) || entityViewModel.TitleLower.Contains(searchTextLowCase)); }
/// <summary> /// Information with single entity "Header: entity" /// </summary> /// <param name="header">header</param> /// <param name="protoEntityViewModel">entity</param> public ViewModelEntityInformation(string header, ProtoEntityViewModel protoEntityViewModel) { Header = header; Collection = new ObservableCollection <ProtoEntityViewModel>() { protoEntityViewModel }; CollectionVisibility = Visibility.Visible; }
public void AddConsumable([NotNull] ProtoEntityViewModel conumableViewModel, double intensity) { ConsumableList.Add(new ConsumableInfo() { ConsumableViewModel = conumableViewModel, Name = conumableViewModel.Title, Intensity = intensity, }); ConsumableList = ConsumableList.OrderByDescending(c => c.Intensity).ThenBy(c => c.Name).ToList(); InputItemsList.Add(conumableViewModel); }
public void AddRelatedFish([NotNull] ProtoEntityViewModel fishViewModel, double chance) { if (RelatedFish.Count == 0) { BaitUsage = new FishingViewModel(this, fishViewModel, chance); EntityViewModelsManager.AddRecipe(BaitUsage); } else { BaitUsage.AddBaitUsage(fishViewModel, chance); } RelatedFish.Add(fishViewModel); }
public void AddCompatibleGun([NotNull] ProtoEntityViewModel gunViewModel) { if (CompatibleGuns.Count == 0) { AmmoUsage = new AmmoUsageViewModel(this, gunViewModel); EntityViewModelsManager.AddRecipe(AmmoUsage); } else { AmmoUsage.AddAmmoUsage(gunViewModel); } CompatibleGuns.Add(gunViewModel); }
public void AddConsumable([NotNull] ProtoEntityViewModel consumableViewModel, double intensity) { if (Consumables.Count == 0) { ConsumableEffect = new ConsumableEffectViewModel(this, consumableViewModel, intensity); EntityViewModelsManager.AddRecipe(ConsumableEffect); } else { ConsumableEffect.AddConsumable(consumableViewModel, intensity); } Consumables.Add(consumableViewModel); }
/// <summary> /// Information with status effect "Header: effect icon with intensity" /// </summary> /// <param name="header">header</param> /// <param name="protoEntityViewModel">effect entity</param> /// <param name="intensity">intensity</param> public ViewModelEntityInformation(string header, ProtoEntityViewModel protoEntityViewModel, double intensity) { if (protoEntityViewModel is ProtoStatusEffectViewModel protoStatusEffectViewModel) { Header = header; StatusEffect = protoStatusEffectViewModel; StatusEffectVisibility = Visibility.Visible; ToolTipIntensityPercent = intensity * 100; //StatusEffectBackground = protoStatusEffectViewModel.GetBackgroundBrush(intensity); } else { Api.Logger.Error("CNEI: Wrong status effect in entity information " + protoEntityViewModel.ProtoEntity); } }
/// <summary> /// Constructor for various consumable providing specific status effect. /// Must be used only in InitEntityRelationships phase. /// </summary> /// <param name="statusEffectViewModel">View Model of status effect.</param> /// <param name="conumableViewModel">View Model of consumable.</param> /// <param name="intensity">Status effect intensity inflicted by this consumable.</param> public ConsumableEffectViewModel([NotNull] ProtoEntityViewModel statusEffectViewModel, [NotNull] ProtoEntityViewModel conumableViewModel, double intensity) : base(statusEffectViewModel.ProtoEntity) { if (!EntityViewModelsManager.EntityDictionaryCreated) { throw new Exception("CNEI: Consumable effect constructor used before all entity VMs sets."); } StatusEffectEntity = statusEffectViewModel; OutputItemsList.Add(statusEffectViewModel); AddConsumable(conumableViewModel, intensity); }
/// <summary> /// Constructor for entity with droplist. /// Must be used only in InitEntityRelationships phase. /// </summary> /// <param name="ammoViewModel">View Model of ammo.</param> /// <param name="gunViewModel">View Model of gun that uses that ammo.</param> public AmmoUsageViewModel([NotNull] ProtoEntityViewModel ammoViewModel, [NotNull] ProtoEntityViewModel gunViewModel) : base(ammoViewModel.ProtoEntity) { if (!EntityViewModelsManager.EntityDictonaryCreated) { throw new Exception("CNEI: Droplist constructor used before all entity VMs sets."); } AmmoEntity = ammoViewModel; InputItemsList.Add(ammoViewModel); //GunsVMList.Add(gunViewModel); GunsInformationList.Add(new ViewModelEntityWithCount(gunViewModel)); }
public ViewModelEntityWithCount(ProtoEntityViewModel entityViewModel, int count, int countRandom, double probability) : this(entityViewModel, count) { if (countRandom > 0) { CountString = "(" + count + "-" + (count + countRandom) + ") x"; } if (0 < probability && probability <= 1) { CountString += " " + (probability * 100) + "%"; } else { Api.Logger.Warning("CNEI: Wrong probability (" + probability + ") for " + entityViewModel); } }
public void AddBaitUsage([NotNull] ProtoEntityViewModel fishViewModel, double weight) { if (fishViewModel.ProtoEntity is ProtoItemFish fish) { FishDetailsList.Add(new FishDetails() { FishViewModel = fishViewModel, Name = fishViewModel.Title, RequiredFishingKnowledgeLevel = fish.RequiredFishingKnowledgeLevel, IsSaltwaterFish = fish.IsSaltwaterFish ? "Yes" : "No", Weight = weight }); FishDetailsList.SortByDesc(e => e.Weight); } OutputItemsList.Add(fishViewModel); }
/// <summary> /// Constructor for entity with droplist. /// Must be used only in InitEntityRelationships phase. /// </summary> /// <param name="seedEntityViewModel">View Model of seed entity.</param> /// <param name="plantEntityViewModel">View Model of grown plant entity.</param> public PlantRecipeViewModel([NotNull] ProtoEntityViewModel seedEntityViewModel, [NotNull] ProtoEntityViewModel plantEntityViewModel) : base(seedEntityViewModel.ProtoEntity) { if (!EntityViewModelsManager.EntityDictionaryCreated) { throw new Exception("CNEI: Droplist constructor used before all entity VMs sets."); } InputItemsList.Add(seedEntityViewModel); SeedEntity = seedEntityViewModel; OutputItemsList.Add(plantEntityViewModel); PlantEntity = plantEntityViewModel; }
/// <summary> /// Constructor for fishing recipe. /// Must be used only in InitEntityRelationships phase. /// </summary> /// <param name="baitViewModel">View Model of fishing bait entity.</param> /// <param name="fishViewModel">View Model of fish entity.</param> /// <param name="chance">Chance for catching this fish with this bait.</param> public FishingViewModel([NotNull] ProtoEntityViewModel baitViewModel, [NotNull] ProtoEntityViewModel fishViewModel, double weight) : base(baitViewModel.ProtoEntity) { if (!EntityViewModelsManager.EntityDictionaryCreated) { throw new Exception("CNEI: Droplist constructor used before all entity VMs sets."); } BaitEntity = baitViewModel; InputItemsList.Add(baitViewModel); AddBaitUsage(fishViewModel, weight); StationsList = EntityViewModelsManager.GetAllEntityViewModelsByType <IProtoItemToolFishing>() .ToList().AsReadOnly(); }
public void Add(Type type, ProtoEntityViewModel entityViewModel) { if (GetNameWithoutGenericArity(type.ToString()) == FullName) { return; } var localNode = this; var tempType = type.BaseType; while (GetNameWithoutGenericArity(type.BaseType?.ToString()) != localNode.FullName) { while (GetNameWithoutGenericArity(tempType?.BaseType?.ToString()) != localNode.FullName) { tempType = tempType?.BaseType; } var tempNode = localNode.Derivatives .FirstOrDefault(n => n.FullName == GetNameWithoutGenericArity(tempType?.ToString())); if (tempNode == null) { tempNode = new TypeHierarchy(tempType, localNode); localNode.Derivatives.Add(tempNode); localNode.IsChild = false; } localNode = tempNode; tempType = type.BaseType; } var newNode = new TypeHierarchy(type, localNode, entityViewModel); localNode.Derivatives.Add(newNode); localNode.IsChild = false; localNode.EntityViewModelsList.Add(entityViewModel); do { localNode.EntityViewModelsFullList.Add(entityViewModel); localNode = localNode.Parent; } while (localNode != null); }
public TypeHierarchy(Type type, TypeHierarchy parent, ProtoEntityViewModel entityViewModel) : this(type, parent) { EntityViewModel = entityViewModel; }
public ViewModelEntityWithCount(ProtoEntityViewModel entityViewModel) { EntityViewModel = entityViewModel; CountString = ""; }
public ViewModelEntityWithCount(ProtoEntityViewModel entityViewModel, int count) : this(entityViewModel) { CountString += count + " x"; }
public ViewModelEntityWithCount(ProtoEntityViewModel entityViewModel, string text) : this(entityViewModel) { CountString = text; }
public void AddAmmoUsage([NotNull] ProtoEntityViewModel gunViewModel) { //GunsVMList.Add(gunViewModel); GunsInformationList.Add(new ViewModelEntityWithCount(gunViewModel)); }