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; } 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); } } }