FlagItem.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. using UnityEngine;
  2. using System.Collections;
  3. public class FlagItem : MapItem
  4. {
  5. public enum State
  6. {
  7. Base,
  8. Ground,
  9. Craft,
  10. Waiting,
  11. }
  12. private State state;
  13. private int craftId;
  14. private Craft linkedCraft;
  15. public int linkedCraftId
  16. {
  17. get{
  18. if(linkedCraft != null)
  19. return linkedCraft.id;
  20. return -1;
  21. }
  22. }
  23. public void LinkToCraft(Craft craft)
  24. {
  25. this.linkedCraft = craft;
  26. state = State.Craft;
  27. }
  28. public void WaitToLinkId(int craftId)
  29. {
  30. this.craftId = craftId;
  31. state = State.Waiting;
  32. }
  33. public override TeamUtil.Team team {
  34. get {
  35. return base.team;
  36. }
  37. set {
  38. base.team = value;
  39. int index = value.GetHashCode() - 1;
  40. Renderer[] renderers = this.GetComponentsInChildren<Renderer>();
  41. for(int i=0; i<renderers.Length; i++)
  42. {
  43. renderers[i].material.mainTexture = textureArr[index];
  44. }
  45. }
  46. }
  47. public void PutGround(Vector3 pos)
  48. {
  49. this.position = pos;
  50. LinkToCraft(null);
  51. state = State.Ground;
  52. }
  53. public void PutToBase(Vector3 pos)
  54. {
  55. PutGround(pos);
  56. state = State.Base;
  57. }
  58. public bool IsInBase()
  59. {
  60. return state == State.Base;
  61. }
  62. public bool IsOnGround()
  63. {
  64. return state == State.Ground;
  65. }
  66. void Update()
  67. {
  68. if(linkedCraft != null)
  69. {
  70. if(!linkedCraft.IsDead())
  71. {
  72. transform.position = linkedCraft.position;
  73. }
  74. // else
  75. // {
  76. // PutGround(linkedCraft.position);
  77. // }
  78. }
  79. else if(state == State.Waiting)
  80. {
  81. Craft craft = map.GetBattleObject(craftId) as Craft;
  82. if(craft != null)
  83. {
  84. LinkToCraft(craft);
  85. }
  86. }
  87. }
  88. }