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.
83 lines
2.9 KiB
83 lines
2.9 KiB
3 years ago
|
using System;
|
||
|
using System.Linq;
|
||
|
|
||
|
namespace ET
|
||
|
{
|
||
|
public static class CuisineHelper
|
||
|
{
|
||
|
public static async ETTask<int> StartCuisine(Unit unit, int configId, long maxAmount)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
C2M_StartCuisine msg = new C2M_StartCuisine() { Id = configId, MaxAmount = maxAmount };
|
||
|
M2C_StartCuisine resp = await unit.ZoneScene().GetComponent<SessionComponent>().Session.Call(msg) as M2C_StartCuisine;
|
||
|
if (resp.Error == ErrorCode.ERR_Success)
|
||
|
{
|
||
|
var err = CuisineOperate.StartCuisine(unit, configId, maxAmount);
|
||
|
//Game.EventSystem.Publish(new EventType.AfterCreateConstruct(){Unit = unit, Cuisine = cuisine, IsNew = true});
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
Log.Error(resp.Error.ToString());
|
||
|
}
|
||
|
|
||
|
return resp.Error;
|
||
|
}
|
||
|
catch (Exception e)
|
||
|
{
|
||
|
Log.Error(e.ToString());
|
||
|
throw;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public static async ETTask<int> DevelopRecipes(Unit unit, int[] ids)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
C2M_DevelopRecipe msg = new C2M_DevelopRecipe() { Ids = ids.ToList() };
|
||
|
M2C_DevelopRecipe resp = await unit.ZoneScene().GetComponent<SessionComponent>().Session.Call(msg) as M2C_DevelopRecipe;
|
||
|
if (resp.Error == ErrorCode.ERR_Success)
|
||
|
{
|
||
|
var err = CuisineOperate.DevelopRecipes(unit, ids.ToList());
|
||
|
Game.EventSystem.Publish(new EventType.CookingGameStart() { Unit = unit, SynthesisID = resp.Id });
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
Log.Error(resp.Error.ToString());
|
||
|
}
|
||
|
|
||
|
return resp.Error;
|
||
|
}
|
||
|
catch (Exception e)
|
||
|
{
|
||
|
Log.Error(e.ToString());
|
||
|
throw;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public static async ETTask<int> EndCuisine(Unit unit, int result, int selectedCuisine)
|
||
|
{
|
||
|
try
|
||
|
{
|
||
|
C2M_StopRecipeGame msg = new C2M_StopRecipeGame() { Result = result };
|
||
|
M2C_StopRecipeGame resp = await unit.ZoneScene().GetComponent<SessionComponent>().Session.Call(msg) as M2C_StopRecipeGame;
|
||
|
if (resp.Error == ErrorCode.ERR_Success)
|
||
|
{
|
||
|
CuisineOperate.EndCuisine(unit, result);
|
||
|
Game.EventSystem.Publish(new EventType.CookingFinish(){Unit = unit, MixtureID = resp.MixtureId, SelectedCuisine = selectedCuisine});
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
Log.Error(resp.Error.ToString());
|
||
|
}
|
||
|
|
||
|
return resp.Error;
|
||
|
}
|
||
|
catch (Exception e)
|
||
|
{
|
||
|
Log.Error(e.ToString());
|
||
|
throw;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|