12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- using CommonAI.ZoneClient;
- using ET;
- using ET.Client;
- using UnitType = CommonAI.Zone.UnitInfo.UnitType;
- class BattleUnitFactory : Singleton<BattleUnitFactory>
- {
- public BattleObject Create(ZoneObject zo)
- {
- BattleObject unit = null;
- if(zo is ZoneActor)
- {
- unit = ObjectPool.Instance.Fetch<BattleActor>();
- }
- else if (zo is ZoneUnit)
- {
- ZoneUnit zu = zo as ZoneUnit;
- switch (zu.Info.UType)
- {
- case UnitType.TYPE_PLAYER:
- unit = ObjectPool.Instance.Fetch<BattlePlayer>();
- break;
- case UnitType.TYPE_MONSTER:
- case UnitType.TYPE_SUMMON:
- unit = ObjectPool.Instance.Fetch<BattleMonster>();
- break;
- case UnitType.TYPE_BUILDING:
- case UnitType.TYPE_NPC:
- case UnitType.TYPE_NEUTRALITY:
- case UnitType.TYPE_PET:
- case UnitType.TYPE_TRIGGER:
- default:
- Log.Error($"unknow object enter:{zu.Info.UType} ID:{zu.TemplateID}");
- break;
- }
- }
- else if (zo is ZoneSpell)
- {
- unit = ObjectPool.Instance.Fetch<BattleSpell>();
- }
- else if (zo is ZoneItem)
- {
- Log.Error($"items mode not implements now.");
- }
- return unit;
- }
- }
|