You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

50 lines
1.7 KiB

namespace ET
{
[FriendClass(typeof(Unit))]
[FriendClass(typeof(Farmland))]
public static class FarmlandOperate
{
public static int Plant(Unit unit,long farmlandId, int cropId)
{
if (!unit.FarmlandDic.ContainsKey(farmlandId))
{
return ErrorCode.ERR_FarmlandNotFound;
}
var farmland = unit.FarmlandDic[farmlandId];
if (farmland.FarmlandState != FarmlandState.FARMLAND_STATE_FREE)
{
return ErrorCode.ERR_FarmlandNotFree;
}
//检查种子数量
var cropConfig = CropConfigCategory.Instance.Get(cropId);
if (cropConfig == null)
{
return ErrorCode.ERR_CropConfigNotFound;
}
if (!unit.GetComponent<StoreComponent>().Remove(cropConfig.SeedNeed, cropConfig.SeedNum))
{
return ErrorCode.ERR_SeedNotEnough;
}
farmland.Plant(cropId,cropConfig.SeedNeed);
return ErrorCode.ERR_Success;
}
public static int Harvest(Unit unit, long farmlandId)
{
var farmland = unit.FarmlandDic[farmlandId];
var storeNc = unit.GetComponent<StoreComponent>();
storeNc.Add(farmland.Config.ProductID, farmland.Config.BasicProduction);
if (farmland.Config.ByProduct > 0)
{
storeNc.Add(farmland.Config.ByProduct,farmland.Config.ByProductNum);
}
storeNc.Add(farmland.SeedCfgId,farmland.Config.SeedProduce);
farmland.Harvest();
return ErrorCode.ERR_Success;
}
}
}