CraftFactory.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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 craftModelPrefab = Resources.Load<GameObject>(folder+data.GetModel());
  12. GameObject craftModelObj = GameObject.Instantiate(craftModelPrefab) as GameObject;
  13. CraftModel craftModel = craftModelObj.GetComponent<CraftModel>();
  14. GameObject craftPrefab = Resources.Load<GameObject>(Config.CRAFT_NEW_PREFAB_FOLDER + "CraftAgent");
  15. GameObject craftObj = GameObject.Instantiate(craftPrefab) as GameObject;
  16. Craft craft = craftObj.GetComponent<Craft> ();
  17. craft.SetCraftModel (craftModel);
  18. craft.Init(map, data, equipModify);
  19. craft.typeId = MapObjectUtil.TypeId.Craft.GetHashCode();
  20. return craft;
  21. }
  22. public static Craft CreateCraft(int id)
  23. {
  24. CraftConfigData data = CraftManager.GetInstance().GetData(id);
  25. string folder = newList.Contains(data.model) ? Config.CRAFT_NEW_PREFAB_FOLDER : Config.CRAFT_PREFAB_FOLDER;
  26. GameObject craftPrefab = Resources.Load<GameObject>(folder+data.model);
  27. GameObject craftObj = GameObject.Instantiate(craftPrefab) as GameObject;
  28. Craft craft = craftObj.GetComponent<Craft>();
  29. craft.Init();
  30. return craft;
  31. }
  32. public static void SwapModel(Craft craft, int id, CraftEquipModify equipModify)
  33. {
  34. CraftConfigData data = CraftManager.GetInstance().GetData(id);
  35. string folder = newList.Contains(data.model) ? Config.CRAFT_NEW_PREFAB_FOLDER : Config.CRAFT_PREFAB_FOLDER;
  36. GameObject craftModelPrefab = Resources.Load<GameObject>(folder + data.model);
  37. GameObject craftModelObj = GameObject.Instantiate(craftModelPrefab) as GameObject;
  38. CraftModel craftModel = craftModelObj.GetComponent<CraftModel>();
  39. craft.GetSwapManager().Swap(craftModel, id, equipModify);
  40. }
  41. // public static CraftData getTestData(Map map)
  42. // {
  43. // CraftData data = new CraftData(1);
  44. // data.userId = 1;
  45. // data.team = TeamUtil.Team.Blue;
  46. // data.position = map.GetStartPosition(data.team);
  47. // return data;
  48. // }
  49. }