using System.Collections.Generic; namespace ET { [FriendClass(typeof(People))] [FriendClass(typeof(Cabin))] [FriendClass(typeof(Farmland))] public static class CabinOperate { public static void CabinUpdateFarmlands(Unit unit,Cabin cabin, List farmlandIds) { foreach (var v in cabin.FarmlandIds) { var farmland = unit.GetGrandChild(v); if (farmland != null) { farmland.SetCabinId(0); } } foreach (var v in farmlandIds) { var farmland = unit.GetGrandChild(v); if (farmland != null) { farmland.SetCabinId(cabin.Id); } } cabin.FarmlandIds = farmlandIds; } public static int CabinSeed(Unit unit, Farmland farmland, int CropCfgId) { var cropCfg = CropConfigCategory.Instance.Get(CropCfgId); var sc = unit.GetComponent(); if (sc.Remove(cropCfg.SeedNeed, cropCfg.SeedNum)) { farmland.Seed(cropCfg.Id); farmland.Plant(); return ErrorCode.ERR_Success; } return ErrorCode.ERR_OperateFail; } public static int CabinHarvest(Unit unit, Farmland farmland) { if (farmland.FarmlandState == FarmlandState.FARMLAND_STATE_RIPE) { var storeNc = unit.GetComponent(); storeNc.Add(farmland.Config.ProductID, farmland.Config.BasicProduction); if (farmland.Config.ByProduct > 0) { storeNc.Add(farmland.Config.ByProduct, farmland.Config.ByProductNum); } storeNc.Add(farmland.CropCfgId, farmland.Config.SeedProduce); farmland.Harvest(); return ErrorCode.ERR_Success; } return ErrorCode.ERR_FarmlandNotRipe; } } }