1 using System
.Collections
;
2 using System
.Collections
.Generic
;
5 public class StationShield
: StationAbstract
8 private StationGeneric generic_station
;
10 private GameObject m_Shield
;
11 private Transform m_ShieldTransform
;
12 private float m_ShieldSpeed
= 150f
;
13 private float m_MinAngle
= 60f
;
14 private float m_MaxAngle
= 210f
;
15 private Collider2D m_Collider
;
16 private SpriteRenderer m_ShieldSprite
;
17 private bool m_FirstUse
= true;
19 private float shieldTimer
;
20 private bool shieldDirection
;
22 private AudioSource shield_full
;
25 private bool m_keepActive
= false;
29 m_Shield
= GameObject
.FindGameObjectWithTag("Shield");
30 m_Collider
= m_Shield
.GetComponent
<Collider2D
>();
31 m_ShieldSprite
= m_Shield
.GetComponentInChildren
<SpriteRenderer
>();
32 m_ShieldTransform
= m_Shield
.transform
;
33 //handled by generic_station
34 generic_station
= gameObject
.AddComponent(typeof(StationGeneric
)) as StationGeneric
;
35 generic_station
.startRoutine(this);
37 m_Collider
.enabled
= false;
38 m_ShieldSprite
.enabled
= false;
40 shield_full
= GetComponent
<AudioSource
> ();
43 shieldDirection
= true;
48 bool inUse
= generic_station
.get_in_use();
50 if (m_FirstUse
&& inUse
)
56 m_Collider
.enabled
= true;
57 m_ShieldSprite
.enabled
= true;
63 m_Collider
.enabled
= inUse
;
64 m_ShieldSprite
.enabled
= inUse
;
67 shieldTimer
+= Time
.deltaTime
;
68 if (shieldTimer
> 0.17f
)
74 public override bool actionPressed()
76 //handled by generic_station
77 return generic_station
.actionPressed();
80 public override void fire1Pressed()
84 public override void fire2Pressed()
88 public override void fire3Pressed()
92 public override bool checkDistance(Vector2 caller_location
, StationAbstract station
)
94 return generic_station
.checkDistance(caller_location
, station
);
97 public override bool IsOccupied(Vector2 caller_location
, StationAbstract station
)
99 return generic_station
.IsOccupied(caller_location
, station
);
102 public override void directionPressed(Vector3 dir_vec
)
104 if (dir_vec
.x
> 0) // rotate left
107 if (!shield_full
.isPlaying
|| !shieldDirection
)
110 shieldDirection
= true;
112 m_ShieldTransform
.Rotate(0, 0, -Time
.deltaTime
* m_ShieldSpeed
);
113 if (m_ShieldTransform
.localEulerAngles
.z
> m_MinAngle
&& m_ShieldTransform
.localEulerAngles
.z
< m_MaxAngle
)
115 //m_ShieldTransform.localEulerAngles = new Vector3 (0, 0, m_MaxAngle);
119 if (dir_vec
.x
< 0) // rotate right
122 if (!shield_full
.isPlaying
|| shieldDirection
)
125 shieldDirection
= false;
127 m_ShieldTransform
.Rotate(0, 0, Time
.deltaTime
* m_ShieldSpeed
);
128 if (m_ShieldTransform
.localEulerAngles
.z
> m_MinAngle
&& m_ShieldTransform
.localEulerAngles
.z
< m_MaxAngle
)
130 //m_ShieldTransform.localEulerAngles = new Vector3 (0, 0, m_MinAngle);
136 protected override void enterStation()
138 //handled by generic_station
142 protected override void exitStation()
144 //handled by generic_station