using System; using UnityEngine; using System.Collections; using System.Collections.Generic; public class CraftFactory { private static List newList = new List(){"Dasher", "Hunter", "Medic", "Spider", "TinySpider", "Flame", "Ice", "Thunder", "Assassin"}; public static Craft CreateCraft(CraftData data, CraftEquipModify equipModify, Map map) { string folder = newList.Contains(data.GetModel()) ? Config.CRAFT_NEW_PREFAB_FOLDER : Config.CRAFT_PREFAB_FOLDER; GameObject craftModelPrefab = Resources.Load(folder+data.GetModel()); GameObject craftModelObj = GameObject.Instantiate(craftModelPrefab) as GameObject; CraftModel craftModel = craftModelObj.GetComponent(); GameObject craftPrefab = Resources.Load(Config.CRAFT_NEW_PREFAB_FOLDER + "CraftAgent"); GameObject craftObj = GameObject.Instantiate(craftPrefab) as GameObject; Craft craft = craftObj.GetComponent (); craft.SetCraftModel (craftModel); craft.Init(map, data, equipModify); craft.typeId = MapObjectUtil.TypeId.Craft.GetHashCode(); return craft; } public static Craft CreateCraft(int id) { CraftConfigData data = CraftManager.GetInstance().GetData(id); string folder = newList.Contains(data.model) ? Config.CRAFT_NEW_PREFAB_FOLDER : Config.CRAFT_PREFAB_FOLDER; GameObject craftPrefab = Resources.Load(folder+data.model); GameObject craftObj = GameObject.Instantiate(craftPrefab) as GameObject; Craft craft = craftObj.GetComponent(); craft.Init(); return craft; } public static void SwapModel(Craft craft, int id, CraftEquipModify equipModify) { CraftConfigData data = CraftManager.GetInstance().GetData(id); string folder = newList.Contains(data.model) ? Config.CRAFT_NEW_PREFAB_FOLDER : Config.CRAFT_PREFAB_FOLDER; GameObject craftModelPrefab = Resources.Load(folder + data.model); GameObject craftModelObj = GameObject.Instantiate(craftModelPrefab) as GameObject; CraftModel craftModel = craftModelObj.GetComponent(); craft.GetSwapManager().Swap(craftModel, id, equipModify); } // public static CraftData getTestData(Map map) // { // CraftData data = new CraftData(1); // data.userId = 1; // data.team = TeamUtil.Team.Blue; // data.position = map.GetStartPosition(data.team); // return data; // } }