Capsule.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. using UnityEngine;
  2. using System.Collections;
  3. public class Capsule : MonoBehaviour {
  4. private float startTime;
  5. private float startY = 30f;
  6. private bool isOpen = false;
  7. private CraftData craftData;
  8. private CraftEquipModify equipModify;
  9. private Craft swapCraft;
  10. private int swapId;
  11. public Animation animation;
  12. // Use this for initialization
  13. void Start ()
  14. {
  15. Vector3 position = transform.localPosition;
  16. position.y = startY;
  17. transform.localPosition = position;
  18. startTime = GameTime.time;
  19. }
  20. public void SetData(CraftData data, CraftEquipModify equipModify)
  21. {
  22. this.craftData = data;
  23. this.equipModify = equipModify;
  24. transform.position = data.position;
  25. }
  26. public void SetSwap(Craft swapCraft, int swapId, CraftEquipModify equipModify)
  27. {
  28. this.swapCraft = swapCraft;
  29. this.swapId = swapId;
  30. this.equipModify = equipModify;
  31. }
  32. // Update is called once per frame
  33. void Update ()
  34. {
  35. float currentTime = GameTime.time;
  36. float deltaTime = currentTime - startTime;
  37. if(deltaTime < 1f)
  38. {
  39. Vector3 position = transform.localPosition;
  40. position.y = startY*(1f-deltaTime);
  41. transform.localPosition = position;
  42. }
  43. else if(!isOpen)
  44. {
  45. isOpen = true;
  46. animation.Play("Open");
  47. if(craftData != null)
  48. {
  49. BattleSession battleSession = Session.GetInstance().GetBattleSession();
  50. try
  51. {
  52. Craft craft = battleSession.GetBattleController().CreateCraft(craftData, equipModify);
  53. }
  54. catch(System.Exception e)
  55. {
  56. Debuger.LogException (e);
  57. }
  58. }
  59. else
  60. {
  61. CraftFactory.SwapModel(swapCraft, swapId, equipModify);
  62. if(swapCraft.IsCtrl())
  63. Session.GetInstance().GetBattleSession().GetBattleController().battleUI.powerIconContainer.SetCraft(swapCraft);
  64. transform.SetParent(null);
  65. }
  66. }
  67. else if(isOpen)
  68. {
  69. if(!animation.isPlaying)
  70. {
  71. Destroy(this.gameObject);
  72. }
  73. }
  74. }
  75. }