List <Production> GetPlayerProductionsByCategory(ProductionCategory category) { Player localPlayer = GameController.instance.playersController.playersIngame[Player.localPlayerId]; List <Production> playerProductions = localPlayer.GetProductionBuildingsByCategory(category); return(playerProductions); }
void Redraw(ProductionCategory newCategory) { List <Production> playerProductions = GetPlayerProductionsByCategory(newCategory); for (int i = 0; i < buildNumberIcons.Count; i++) { var buildingNumberButton = buildNumberIcons[i]; buildingNumberButton.SetupBuildingId(i); buildingNumberButton.SetupWithController(this); if (i < playerProductions.Count) { buildingNumberButton.SetEnabled(); } else { buildingNumberButton.SetDisabled(); } if (i == selectedBuildingNumber) { buildingNumberButton.SetActive(); } else { buildingNumberButton.SetUnactive(); } } }
public void SetupWithProductionCategory(ProductionCategory category) { productionCategory = category; selfImage.sprite = category.icon; Redraw(); }
public void OnSelectButtonClick(ProductionCategory productionType) { selectedProductionCategory = productionType; if (productionCategoryChanged != null) { productionCategoryChanged(selectedProductionCategory); } Redraw(); }
public ProductionData[] Find(ProductionCategory category, int productId) { return(this.Entries.Where(a => a.Category == category && a.Id == productId).ToArray()); }
/// <summary> /// Calculates and returns general production skill success chance. /// </summary> /// <remarks> /// Unofficial, but seems to work fine in most cases. /// Dex bonus: http://mabination.com/threads/57123-Chaos-Life-Skill-Guide-Refining /// </remarks> /// <returns></returns> public float GetProductionSuccessChance(Skill skill, ProductionCategory category, int baseChance, int rainBonus) { // Base float result = baseChance; if (skill.Info.Id != SkillId.PotionMaking && skill.Info.Id != SkillId.Milling) result += (this.Dex - 60) * (baseChance / 300f); // Production Mastery bonus var pm = this.Skills.Get(SkillId.ProductionMastery); if (pm != null) result += (byte)pm.Info.Rank; // Weather bonus if (ChannelServer.Instance.Weather.GetWeatherType(this.RegionId) == WeatherType.Rain) { if (category == ProductionCategory.Weaving) result += rainBonus * 2; else result *= 1 + (rainBonus / 100f); } // Party bonus result += this.GetProductionPartyBonus(skill); return Math2.Clamp(0, 99, result); }
/// <summary> /// Checks if category can be handled by this skill, returns false if not. /// </summary> /// <param name="creature"></param> /// <param name="category"></param> /// <returns></returns> protected abstract bool CheckCategory(Creature creature, ProductionCategory category);
protected override bool CheckCategory(Creature creature, ProductionCategory category) { return(category == ProductionCategory.Handicraft); }
protected override bool CheckCategory(Creature creature, ProductionCategory category) { return(category == ProductionCategory.Spinning || category == ProductionCategory.Weaving); }
/// <summary> /// Calculates and returns general production skill success chance. /// </summary> /// <remarks> /// Unofficial, but seems to work fine in most cases. /// Dex bonus: http://mabination.com/threads/57123-Chaos-Life-Skill-Guide-Refining /// </remarks> /// <returns></returns> public float GetProductionSuccessChance(Skill skill, ProductionCategory category, int baseChance, int rainBonus) { // Base float result = baseChance; if (skill.Info.Id != SkillId.PotionMaking && skill.Info.Id != SkillId.Milling) result += (this.Dex - 60) * (baseChance / 300f); // Production Mastery bonus var pm = this.Skills.Get(SkillId.ProductionMastery); if (pm != null) result += (byte)pm.Info.Rank; // Weather bonus if (ChannelServer.Instance.Weather.GetWeatherType(this.RegionId) == WeatherType.Rain) { if (category == ProductionCategory.Weaving) result += rainBonus * 2; else result *= 1 + (rainBonus / 100f); } // Party bonus result += this.GetProductionPartyBonus(skill); // Monday: Increase in success rate for production skills. // +10%, bonus is unofficial. if (ErinnTime.Now.Month == ErinnMonth.AlbanEiler) result += 5; return Math2.Clamp(0, 99, result); }
void OnProductionCategoryChanged(ProductionCategory newCategory) { SelectBuildingWithNumber(0); }
protected override bool CheckCategory(Creature creature, ProductionCategory category) { return (category == ProductionCategory.Handicraft); }
Production GetPlayerProductionByTypeAndNumber(ProductionCategory category, int number) { List <Production> playerProductions = GetPlayerProductionsByCategory(category); return(playerProductions.Count > 0 ? playerProductions[number] : null); }
protected override bool CheckCategory(Creature creature, ProductionCategory category) { return (category == ProductionCategory.Spinning || category == ProductionCategory.Weaving); }
protected override bool CheckCategory(Creature creature, ProductionCategory category) { return(category == ProductionCategory.Milling); }
protected override bool CheckCategory(Creature creature, ProductionCategory category) { return (category == ProductionCategory.Milling); }