public override IEnumerator Deposit(Human human, object target) { Granary granary = (Granary)target; yield return(human.MoveTo(granary.front.position)); Destroy(this.gameObject); }
protected void BuildingGranary() { if (Channeling(ItemList.Granary, PlayerActions.BuildGranary) == PlayerActions.BuildGranary) { Granary ai = (Granary)(this.GetPlayerData().GetInventory()[Global.ItemNames[ItemList.Granary]]); ai.BuildStructure(ItemList.Granary, this.GetPlayerData()); } }
public void FoodConsumptionParameterTest() { Granary granary = new Granary(); Should.Throw <ArgumentNullException>(() => { granary.FoodConsumption(null, null); }).Message.ShouldContain("calendar"); Should.Throw <ArgumentNullException>(() => { granary.FoodConsumption(new Calendar(), null); }).Message.ShouldContain("province"); }
public bool CanDoAction(Human human, ref Granary granary) { granary = human.FindGranary(true); if (granary != null) { return(true); } return(false); }
public override bool CanDoAction(Human human) { Granary granary = human.FindGranary(true); if (granary != null) { return(true); } return(false); }
public bool CanDoAction(Human human, ref Granary granary, ref Food food) { granary = human.FindGranary(false); food = human.FindFood(); if (granary != null && food != null) { return(true); } return(false); }
public VillageItem() { initWood(); initClay(); initIron(); initCrop(); initVillageBuildings(); warehouse = buildings.Find(item => item is Warehouse) as Warehouse; granary = buildings.Find(item => item is Granary) as Granary; }
public void FoodConsumptionTest() { Granary granary = new Granary(); Calendar calendar = new Calendar(); Province province = new Province(); Population startPopulation = new Population().Add(1000); Food foodStock = new Food(); foodStock = foodStock.Add(500); Food foodConsumption = granary.FoodConsumption(calendar, province); foodConsumption.Rice.ShouldBe(0); province = province.Add(startPopulation); province = province.Add(foodStock); calendar.Month.ShouldBe(1); foodConsumption = granary.FoodConsumption(calendar, province); foodConsumption.Rice.ShouldNotBe(0); foodConsumption.Rice.ShouldBeLessThanOrEqualTo(province.Food.Rice); calendar.Add(4); foodConsumption = granary.FoodConsumption(calendar, province); foodConsumption.Rice.ShouldBeGreaterThan(0); foodConsumption.Rice.ShouldBeLessThanOrEqualTo(province.Food.Rice); calendar = new Calendar(); calendar.Month.ShouldBe(1); foodConsumption = new Food(); foodConsumption.Rice.ShouldBe(0); foodStock = foodStock.Add(50000); province = province.Add(foodStock); for (int month = 0; month < 12; month++) { foodConsumption = foodConsumption.Add(granary.FoodConsumption(calendar, province)); calendar.Add(1); } foodConsumption.Rice.ShouldBeGreaterThan(12 * province.Population.Adults); foodConsumption.Rice.ShouldBeLessThanOrEqualTo(province.Food.Rice); }
public Granary FindGranary(bool requireFood) { Granary granary = null; float dist = float.MaxValue; Coords coords = Util.Vector3ToCoords(transform.position); foreach (GranaryData sd in gameController.data.granaryData) { if (gameController.granaryDict.ContainsKey(sd) && (!requireFood || (sd.food > 0 && sd.pendingFood > 0))) { Granary s = gameController.granaryDict[sd]; float d = (new Vector2(coords.x, coords.y) - new Vector2(sd.buildingData.loc.coords.x, sd.buildingData.loc.coords.y)).sqrMagnitude; if (d < dist && CanReach(s.front.transform.position)) { dist = d; granary = s; } } } return(granary); }
void Start() { //Initialise health = healthMax; //Add appropriate building script switch (type) { case Type.Barracks: barracks = gameObject.AddComponent <Barracks>(); break; case Type.Granary: granary = gameObject.AddComponent <Granary>(); break; case Type.Workshop: workshop = gameObject.AddComponent <Workshop>(); break; } }
internal static void CityProduction(City city) { if (city == null || city.Size == 0 || city.Tile == null) { return; } Player player = Game.GetPlayer(city.Owner); IProduction production = null; // Create 2 defensive units per city if (player.HasAdvance <LaborUnion>()) { if (city.Tile.Units.Count(x => x is MechInf) < 2) { production = new MechInf(); } } else if (player.HasAdvance <Conscription>()) { if (city.Tile.Units.Count(x => x is Riflemen) < 2) { production = new Riflemen(); } } else if (player.HasAdvance <Gunpowder>()) { if (city.Tile.Units.Count(x => x is Musketeers) < 2) { production = new Musketeers(); } } else if (player.HasAdvance <BronzeWorking>()) { if (city.Tile.Units.Count(x => x is Phalanx) < 2) { production = new Phalanx(); } } else { if (city.Tile.Units.Count(x => x is Militia) < 2) { production = new Militia(); } } // Create city improvements if (production == null) { if (!city.HasBuilding <Barracks>()) { production = new Barracks(); } else if (player.HasAdvance <Pottery>() && !city.HasBuilding <Granary>()) { production = new Granary(); } else if (player.HasAdvance <CeremonialBurial>() && !city.HasBuilding <Temple>()) { production = new Temple(); } else if (player.HasAdvance <Masonry>() && !city.HasBuilding <CityWalls>()) { production = new CityWalls(); } } // Create Settlers if (production == null) { if (city.Size > 3 && !city.Units.Any(x => x is Settlers) && player.Cities.Length < 10) { production = new Settlers(); } } // Create some other unit if (production == null) { if (city.Units.Length < 4) { if (player.Government is Republic || player.Government is Democratic) { if (player.HasAdvance <Writing>()) { production = new Diplomat(); } } else { if (player.HasAdvance <Automobile>()) { production = new Armor(); } else if (player.HasAdvance <Metallurgy>()) { production = new Cannon(); } else if (player.HasAdvance <Chivalry>()) { production = new Knights(); } else if (player.HasAdvance <TheWheel>()) { production = new Chariot(); } else if (player.HasAdvance <HorsebackRiding>()) { production = new Cavalry(); } else if (player.HasAdvance <IronWorking>()) { production = new Legion(); } } } else { if (player.HasAdvance <Trade>()) { production = new Caravan(); } } } // Set random production if (production == null) { IProduction[] items = city.AvailableProduction.ToArray(); production = items[Common.Random.Next(items.Length)]; } city.SetProduction(production); }
public Granary(Granary t) : base(t) { prefab = Resources.Load("Prefabs/Granary"); }
public override void Initialize(object storehouse) { this.granary = (Granary)storehouse; title.text = this.granary.name; StartCoroutine(Show()); }