private bool Prompted(IJunimoAbility ability) { if (ability.AbilityName() == "ClearDeadCrops") { return(ProgData.ClearDeadCropsPrompted); } if (ability.AbilityName() == "Fertilize") { return(ProgData.FertilizePrompted); } if (ability.AbilityName() == "HarvestBushes") { return(ProgData.HarvestBushesPrompted); } if (ability.AbilityName() == "HarvestForageCrops") { return(ProgData.HarvestForageCropsPrompted); } if (ability.AbilityName() == "PlantCrops") { return(ProgData.PlantCropsPrompted); } if (ability.AbilityName() == "Water") { return(ProgData.WaterPrompted); } if (ability.AbilityName() == "HarvestCrops") { return(true); } Monitor.Log($"Prompted: progression checked for {ability.AbilityName()} but not implemented", LogLevel.Debug); return(true); }
/* * Add an IJunimoAbility to the list of possible actions if allowed */ public void RegisterJunimoAbility(IJunimoAbility junimoAbility) { string name = junimoAbility.AbilityName(); if (!EnabledAbilities.ContainsKey(name)) { EnabledAbilities.Add(name, true); } if (EnabledAbilities[name]) { JunimoCapabilities.Add(junimoAbility); } }
public void PromptForAbility(IJunimoAbility ability) { if (Unlocked(ability) || Prompted(ability)) { return; } string an = ability.AbilityName(); switch (an) { case "ClearDeadCrops": Util.SendMessage(GetPromptText(an, Config.Progression.ClearDeadCrops.Item, Config.Progression.ClearDeadCrops.Stack)); ProgData.ClearDeadCropsPrompted = true; break; case "Fertilize": Util.SendMessage(GetPromptText(an, Config.Progression.Fertilize.Item, Config.Progression.Fertilize.Stack)); ProgData.FertilizePrompted = true; break; case "HarvestBushes": Util.SendMessage(GetPromptText(an, Config.Progression.HarvestBushes.Item, Config.Progression.HarvestBushes.Stack)); ProgData.HarvestBushesPrompted = true; break; case "HarvestForageCrops": Util.SendMessage(GetPromptText(an, Config.Progression.HarvestForageCrops.Item, Config.Progression.HarvestForageCrops.Stack)); ProgData.HarvestForageCropsPrompted = true; break; case "PlantCrops": Util.SendMessage(GetPromptText(an, Config.Progression.PlantCrops.Item, Config.Progression.PlantCrops.Stack)); ProgData.PlantCropsPrompted = true; break; case "Water": Util.SendMessage(GetPromptText(an, Config.Progression.Water.Item, Config.Progression.Water.Stack)); ProgData.WaterPrompted = true; break; default: Monitor.Log($"PromptForAbility: progression prompt check needed for {an} but not implemented", LogLevel.Debug); break; } }
public bool CanUseAbility(IJunimoAbility ability) { if (!BetterJunimos.Config.Progression.Enabled) { return(true); } var an = ability.AbilityName(); if (Unlocked(an)) { return(true); } if (Prompted(an)) { return(false); } // _monitor.Log($"CanUseAbility: prompting for {an} due CanUseAbility request", LogLevel.Debug); DisplayPromptFor(an); return(false); }
public static bool Prefix(JunimoHarvester __instance, ref int ___harvestTimer, ref NetGuid ___netHome) { Guid id = ___netHome.Value; Vector2 pos = __instance.getTileLocation(); int time; IJunimoAbility junimoAbility = Util.Abilities.IdentifyJunimoAbility(pos, id); if (junimoAbility != null) { // Use the update() harvesting if (junimoAbility.AbilityName() == "HarvestCrops") { time = 2000; } else if (!Util.Abilities.PerformAction(junimoAbility, id, pos, __instance)) { // didn't succeed, move on time = 0; } else { // succeeded, shake time = Util.Config.JunimoImprovements.WorkFaster ? 300 : 998; } } else { // nothing to do, wait a moment time = Util.Config.JunimoImprovements.WorkFaster ? 5 : 200; __instance.pokeToHarvest(); } ___harvestTimer = time; return(false); }