58 lines
1.9 KiB
C#
58 lines
1.9 KiB
C#
using cfg.SummonCfg;
|
|
using Framework;
|
|
using Gameplay.Unit;
|
|
namespace Gameplay.Summon
|
|
{
|
|
public static class SummonFactory
|
|
{
|
|
|
|
public static BaseSummon CreateSummon(int summonId, GameUnit creator)
|
|
{
|
|
var configData = GetConfigById(summonId);
|
|
if (configData == null)
|
|
{
|
|
return null;
|
|
}
|
|
|
|
var guid = GUIDManager.GenGuid();
|
|
BaseSummon createSummon = null;
|
|
switch (configData.LogicType)
|
|
{
|
|
case ESummonType.Tent:
|
|
createSummon = new SummonTent(configData, guid, creator);
|
|
break;
|
|
case ESummonType.Mine:
|
|
createSummon = new SummonMine(configData, guid, creator);
|
|
break;
|
|
case ESummonType.Tent2:
|
|
createSummon = new SummonTent2(configData, guid, creator);
|
|
break;
|
|
case ESummonType.BulletBox:
|
|
createSummon = new SummonBulletBox(configData, guid, creator);
|
|
break;
|
|
case ESummonType.FireBase:
|
|
createSummon = new SummonEmitBulletToLocal(configData, guid, creator);
|
|
break;
|
|
case ESummonType.Totem1:
|
|
createSummon = new SummonTotem1(configData, guid, creator);
|
|
break;
|
|
case ESummonType.Totem2:
|
|
createSummon = new SummonTotem2(configData, guid, creator);
|
|
break;
|
|
}
|
|
if (createSummon == null)
|
|
{
|
|
DebugUtil.LogError("暂未处理的召唤物logicId:{0}", configData.LogicType);
|
|
return null;
|
|
}
|
|
return createSummon;
|
|
}
|
|
|
|
public static DataSummon GetConfigById(int summonId)
|
|
{
|
|
return TableManager.Instance.Tables.SummonConfig.Get(summonId);
|
|
}
|
|
|
|
}
|
|
}
|