public void AddWorker(Settler.Settler worker) { if (IsFull) { return; //Can't add worker if full } Workers.Add(worker); worker.Workplace = this; ; }
public override int CalculatePrestige(Settler.Settler settler) { //TODO var sum = 0; if (settler.Traits[Trait.Charm] >= TraitLevel.High) { sum += 1; } else if (settler.Traits[Trait.Charm] <= TraitLevel.Low) { sum -= 1; } return(sum); }
public override void HostWork(Settler.Settler worker, Settlement.Settlement settlement) { var harvest = new Bundle(); foreach (var(resource, rate) in BaseRates) { var amount = GetHarvest(settlement, resource, rate, worker); if (amount > 0) { harvest.Contents.Add(resource, amount); } } //TODO Transactions settlement.Stockpile.Add(harvest); worker.GainXp(settlement, Skill, 1); }
public double WorkerEfficiency(Settler.Settler worker) { var level = worker.SkillLevel(Skill); if (level == SkillLevel.Unskilled) { return(0.7); } if (level == SkillLevel.Novice) { return(0.85); } if (level == SkillLevel.Apprentice) { return(1); } if (level == SkillLevel.Journeyman) { return(1.15); } if (level == SkillLevel.Expert) { return(1.3); } if (level == SkillLevel.Master) { return(1.5); } return(1); }
private int GetHarvest(Settlement.Settlement settlement, Resource.Resource resource, double rate, Settler.Settler worker) { var efficiency = BuildingEfficiency(settlement, resource, worker) * WorkerEfficiency(worker); var guaranteedHarvest = (int)(rate * efficiency); var uncertainHarvest = guaranteedHarvest - rate * efficiency; return(guaranteedHarvest + (new Random().NextDouble() < uncertainHarvest ? 1 : 0)); }
public virtual double BuildingEfficiency(Settlement.Settlement settlement, Resource.Resource resource, Settler.Settler worker) { return(1.0); }
public override double BuildingEfficiency(Settlement.Settlement settlement, Resource.Resource resource, Settler.Settler worker) { return(1); }
public abstract void HostWork(Settler.Settler worker, Settlement.Settlement settlement);