private IHexCell BuildCell(bool hasRoads, IImprovement improvement, IResourceNode resourceNode) { var mockCell = new Mock <IHexCell>(); mockCell.Setup(cell => cell.HasRoads).Returns(hasRoads); mockCell.Setup(cell => cell.Index).Returns(AllCells.Count); var newCell = mockCell.Object; var improvements = improvement != null ? new List <IImprovement> () { improvement } : new List <IImprovement>(); var resourceNodes = resourceNode != null ? new List <IResourceNode>() { resourceNode } : new List <IResourceNode>(); MockImprovementLocationCanon.Setup(canon => canon.GetPossessionsOfOwner(newCell)).Returns(improvements); MockNodeLocationCanon.Setup(canon => canon.GetPossessionsOfOwner(newCell)).Returns(resourceNodes); AllCells.Add(newCell); return(newCell); }
public void CommonInstall() { AllTemplates.Clear(); LastImprovementCreated = null; MockImprovementValidityLogic = new Mock <IImprovementValidityLogic>(); MockUnitPositionCanon = new Mock <IUnitPositionCanon>(); MockImprovementFactory = new Mock <IImprovementFactory>(); MockImprovementLocationCanon = new Mock <IImprovementLocationCanon>(); MockImprovementWorkLogic = new Mock <IImprovementWorkLogic>(); MockImprovementLocationCanon.Setup(canon => canon.GetPossessionsOfOwner(It.IsAny <IHexCell>())) .Returns(new List <IImprovement>()); MockImprovementFactory .Setup(factory => factory.BuildImprovement(It.IsAny <IImprovementTemplate>(), It.IsAny <IHexCell>())) .Returns <IImprovementTemplate, IHexCell>((template, cell) => BuildImprovement(template, cell)); Container.Bind <IEnumerable <IImprovementTemplate> >().WithId("Available Improvement Templates").FromInstance(AllTemplates); Container.Bind <IImprovementValidityLogic>().FromInstance(MockImprovementValidityLogic.Object); Container.Bind <IUnitPositionCanon> ().FromInstance(MockUnitPositionCanon.Object); Container.Bind <IImprovementFactory> ().FromInstance(MockImprovementFactory.Object); Container.Bind <IImprovementLocationCanon>().FromInstance(MockImprovementLocationCanon.Object); Container.Bind <IImprovementWorkLogic> ().FromInstance(MockImprovementWorkLogic.Object); Container.Bind <BuildImprovementAbilityHandler>().AsSingle(); }
public YieldSummary GetYieldOfImprovement( IImprovement improvement, IResourceNode nodeAtLocation, IEnumerable <IResourceDefinition> visibleResources, IEnumerable <ITechDefinition> discoveredTechs, bool hasFreshWater ) { if (improvement.IsConstructed && !improvement.IsPillaged) { return(GetYieldOfImprovementTemplate( improvement.Template, nodeAtLocation, visibleResources, discoveredTechs, hasFreshWater )); } else { return(YieldSummary.Empty); } }
private void OnImprovementPillaged(IImprovement improvement) { var location = ImprovementLocationCanon.GetOwnerOfPossession(improvement); var nodeAtLocation = ResourceNodeLocationCanon.GetPossessionsOfOwner(location).FirstOrDefault(); if (nodeAtLocation == null) { return; } var civOwningCell = CivTerritoryLogic.GetCivClaimingCell(location); if (civOwningCell != null) { ResourceTransferCanon.SynchronizeResourceForCiv(nodeAtLocation.Resource, civOwningCell); } }
public YieldSummary GetYieldFromNode( IResourceNode node, IEnumerable <IResourceDefinition> visibleResources, IImprovement improvementAtLocation ) { var retval = YieldSummary.Empty; if (visibleResources.Contains(node.Resource)) { retval += node.Resource.BonusYieldBase; if (improvementAtLocation != null && node.Resource.Extractor == improvementAtLocation.Template && improvementAtLocation.IsConstructed && !improvementAtLocation.IsPillaged ) { retval += node.Resource.BonusYieldWhenImproved; } } return(retval); }
private IImprovement BuildImprovement( IImprovementTemplate template, IHexCell location, int workInvested = 0, bool isConstructed = false, bool isPillaged = false ) { var mockImprovement = new Mock <IImprovement>(); mockImprovement.SetupAllProperties(); mockImprovement.Setup(improvement => improvement.Template).Returns(template); mockImprovement.Setup(improvement => improvement.IsConstructed).Returns(isConstructed); mockImprovement.Setup(improvement => improvement.IsPillaged).Returns(isPillaged); var newImprovement = mockImprovement.Object; newImprovement.WorkInvested = workInvested; MockImprovementLocationCanon.Setup(canon => canon.GetOwnerOfPossession(newImprovement)) .Returns(location); LastImprovementCreated = newImprovement; return(newImprovement); }
public void AddImprovement(IImprovement improvement) => _improvements.Add(improvement);
private void AddImprovement(IImprovement improvement) { this.Improvements.Add(improvement); }
public float GetWorkOfUnitOnImprovement(IUnit unit, IImprovement improvement) { var unitOwner = UnitPossessionCanon.GetOwnerOfPossession(unit); return(1 * CivModifiers.ImprovementBuildSpeed.GetValueForCiv(unitOwner)); }
private void OnImprovementBeingDestroyed(IImprovement improvement) { allImprovements.Remove(improvement); }
public void AddImprovement(IImprovement improvement) { Invoke(improvement); }