1
using System
.Collections
;
2 using System
.Collections
.Generic
;
7 public class YarnPosition
9 public static float yarnPosX
= 0.0f
;
10 public static float yarnPosY
= 0.0f
;
11 public float DisplayYarnPosX
= 0.0f
;
12 public float DisplayYarnPosY
= 0.0f
;
15 public class Boundaries
17 public static float UpperBoundary
;
18 public static float LeftBoundary
;
19 public static float RightBoundary
;
20 public static float LowerBoundary
;
23 public class Wave
: MonoBehaviour
27 public YarnPosition localYarnPosition
;
32 GameObject EnemyTypeA
;
35 GameObject EnemyTypeB
;
38 GameObject EnemyTypeC
;
53 int NumberOfTripletsPerWave
;
55 private int currentWaveNumber
;
57 // Idle timer variables
59 float mSpawnTime
= 5.0f
;
62 float mSpawnDelay
= 15.0f
;
64 private float mTimer
= 0.0f
;
65 private int counter
= 0;
67 private bool waveStarted
= false;
69 // Use this for initialization
72 transform
.position
= new Vector2(camera
.transform
.position
.x
, camera
.transform
.position
.y
+ Boundaries
.UpperBoundary
);
73 currentWaveNumber
= 0;
76 // Update is called once per frame
79 UpdateYarnGlobalPosition();
80 UpdateGlobalBoundaries();
81 transform
.position
= new Vector2(YarnPosition
.yarnPosX
, YarnPosition
.yarnPosY
+ Boundaries
.UpperBoundary
);
83 mTimer
+= Time
.deltaTime
;
85 if (mTimer
> mSpawnTime
&& currentWaveNumber
!= NumberOfTripletsPerWave
)
97 private void UpdateYarnGlobalPosition()
99 YarnPosition
.yarnPosX
= camera
.transform
.position
.x
;
100 YarnPosition
.yarnPosY
= camera
.transform
.position
.y
;
101 localYarnPosition
.DisplayYarnPosX
= camera
.transform
.position
.x
;
102 localYarnPosition
.DisplayYarnPosY
= camera
.transform
.position
.y
;
105 private void UpdateGlobalBoundaries()
107 Boundaries
.LeftBoundary
= LeftBoundary
+ YarnPosition
.yarnPosX
;
108 Boundaries
.RightBoundary
= RightBoundary
+ YarnPosition
.yarnPosX
;
109 Boundaries
.UpperBoundary
= UpperBoundary
+ YarnPosition
.yarnPosY
;
110 Boundaries
.LowerBoundary
= LowerBoundary
+ YarnPosition
.yarnPosY
;
113 private void SpawnType(int typeNumber
)
115 Vector2 spawnPosition
= new Vector2(0,0);
119 spawnPosition
= GenerateSpawnPositionAB();
120 var typeA
= Instantiate(EnemyTypeA
, spawnPosition
, Quaternion
.identity
);
122 else if (typeNumber
== 2)
124 spawnPosition
= GenerateSpawnPositionAB();
125 var typeB
= Instantiate(EnemyTypeB
, spawnPosition
, Quaternion
.identity
);
127 else if (typeNumber
== 3)
129 spawnPosition
= GenerateSpawnPositionC();
130 var typeC
= Instantiate(EnemyTypeC
, spawnPosition
, Quaternion
.identity
);
134 private Vector2
GenerateSpawnPositionAB()
136 var positionSection
= UnityEngine
.Random
.Range(0, 3);
140 if (positionSection
== 0)
142 xPosition
= Boundaries
.LeftBoundary
- 1.0f
;
143 yPosition
= UnityEngine
.Random
.Range(Boundaries
.LowerBoundary
+ 6.0f
, Boundaries
.UpperBoundary
- 1.0f
);
146 else if (positionSection
== 1)
148 xPosition
= UnityEngine
.Random
.Range(Boundaries
.LeftBoundary
+ 1.0f
, Boundaries
.RightBoundary
- 1.0f
);
149 yPosition
= transform
.position
.y
;
151 else if(positionSection
== 2)
153 xPosition
= Boundaries
.RightBoundary
+ 1.0f
;
154 yPosition
= UnityEngine
.Random
.Range(Boundaries
.LowerBoundary
+ 6.0f
, Boundaries
.UpperBoundary
- 1.0f
);
157 return new Vector2(xPosition
, yPosition
);
160 private Vector2
GenerateSpawnPositionC()
162 var positionSection
= UnityEngine
.Random
.Range(0, 2);
166 if (positionSection
== 0)
168 xPosition
= Boundaries
.LeftBoundary
- 1.0f
;
170 else if (positionSection
== 1)
172 xPosition
= Boundaries
.RightBoundary
+ 1.0f
;
175 yPosition
= Boundaries
.LowerBoundary
+ 6.0f
;
177 return new Vector2(xPosition
, yPosition
);
180 public GameObject
GetCamera()
185 public void SetCamera(GameObject cam
)