CraftFactory.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using System;
  2. using UnityEngine;
  3. using System.Collections;
  4. using System.Collections.Generic;
  5. public class CraftFactory
  6. {
  7. private static List<string> newList = new List<string>(){"Dasher", "Hunter", "Medic", "Spider", "TinySpider", "Flame", "Ice", "Thunder", "Assassin"};
  8. public static Craft CreateCraft(CraftData data, CraftEquipModify equipModify, Map map)
  9. {
  10. string folder = newList.Contains(data.GetModel()) ? Config.CRAFT_NEW_PREFAB_FOLDER : Config.CRAFT_PREFAB_FOLDER;
  11. GameObject craftPrefab = Resources.Load<GameObject>(folder+data.GetModel());
  12. GameObject craftObj = GameObject.Instantiate(craftPrefab) as GameObject;
  13. Craft craft = craftObj.GetComponent<Craft>();
  14. craft.Init(map, data, equipModify);
  15. craft.typeId = MapObjectUtil.TypeId.Craft.GetHashCode();
  16. return craft;
  17. }
  18. public static Craft CreateCraft(int id)
  19. {
  20. CraftConfigData data = CraftManager.GetInstance().GetData(id);
  21. string folder = newList.Contains(data.model) ? Config.CRAFT_NEW_PREFAB_FOLDER : Config.CRAFT_PREFAB_FOLDER;
  22. GameObject craftPrefab = Resources.Load<GameObject>(folder+data.model);
  23. GameObject craftObj = GameObject.Instantiate(craftPrefab) as GameObject;
  24. Craft craft = craftObj.GetComponent<Craft>();
  25. craft.Init();
  26. return craft;
  27. }
  28. public static void SwapModel(Craft craft, int id, CraftEquipModify equipModify)
  29. {
  30. CraftConfigData data = CraftManager.GetInstance().GetData(id);
  31. string folder = newList.Contains(data.model) ? Config.CRAFT_NEW_PREFAB_FOLDER : Config.CRAFT_PREFAB_FOLDER;
  32. GameObject craftPrefab = Resources.Load<GameObject>(folder+data.model);
  33. GameObject craftObj = GameObject.Instantiate(craftPrefab) as GameObject;
  34. Craft newCraft = craftObj.GetComponent<Craft>();
  35. craft.GetSwapManager().Swap(newCraft, id, equipModify);
  36. }
  37. // public static CraftData getTestData(Map map)
  38. // {
  39. // CraftData data = new CraftData(1);
  40. // data.userId = 1;
  41. // data.team = TeamUtil.Team.Blue;
  42. // data.position = map.GetStartPosition(data.team);
  43. // return data;
  44. // }
  45. }