Beispiel #1
0
        public override void InitialiseEnemies()
        {
            int offset = 2;
            //Enemy 1
            Enemy          enemy  = new Enemy();
            List <Vector2> course = new List <Vector2>();

            course.Add(new Vector2(LeftBoundary + (offset * Ostacle.Width), TopBoundary + (offset * Ostacle.Height)));
            course.Add(new Vector2(RightBoundary - (offset * Ostacle.Width), TopBoundary + (offset * Ostacle.Height)));
            course.Add(new Vector2(RightBoundary - (offset * Ostacle.Width), BottomBoundary - (offset * Ostacle.Height)));
            course.Add(new Vector2(LeftBoundary + (offset * Ostacle.Width), BottomBoundary - (offset * Ostacle.Height)));


            enemy.Initialise(this, Content, graphics, course[0], course);
            EnemyUnits.Add(enemy);


            //Enemy 2
            offset = 4;
            enemy  = new Enemy();
            course = new List <Vector2>();
            course.Add(new Vector2(LeftBoundary + (offset * Ostacle.Width), BottomBoundary - (offset * Ostacle.Height)));
            course.Add(new Vector2(RightBoundary - (offset * Ostacle.Width), BottomBoundary - (offset * Ostacle.Height)));
            course.Add(new Vector2(RightBoundary - (offset * Ostacle.Width), TopBoundary + (offset * Ostacle.Height)));
            course.Add(new Vector2(LeftBoundary + (offset * Ostacle.Width), TopBoundary + (offset * Ostacle.Height)));
            enemy.Initialise(this, Content, graphics, course[0], course);
            EnemyUnits.Add(enemy);
        }
Beispiel #2
0
 public MainWindow()
 {
     AllyUnits.CollectionChanged  += Base_CollectionChanged;
     EnemyUnits.CollectionChanged += Base_CollectionChanged;
     for (int i = 0; i < 10; i++)
     {
         AllyUnits.Add(new Unit());
         EnemyUnits.Add(new Unit());
     }
     foreach (Unit unit in AllyUnits)
     {
         unit.SetEnemyUnits(EnemyUnits);
         unit.SetAllyUnits(AllyUnits);
         unit.SetPlayerBonus(PlayerBonus);
     }
     foreach (Unit unit in EnemyUnits)
     {
         unit.SetEnemyUnits(AllyUnits);
         unit.SetAllyUnits(EnemyUnits);
     }
     InitializeComponent();
     Ally.ItemsSource  = AllyUnits;
     Enemy.ItemsSource = EnemyUnits;
     DataContext       = PlayerBonus;
 }
Beispiel #3
0
 private void Awake()
 {
     waveData       = GetComponent <WaveData> ();
     enemyUnits     = GetComponentInChildren <EnemyUnits> ();
     enemyElevators = GetComponentsInChildren <EnemyElevator> ();
     spawnPoints    = GetComponentsInChildren <SpawnPoint>();
 }
    public Unit[] FindUnitsInRange(Vector2 myPosition, float distance)
    {
        IEnumerable <Unit> units = EnemyUnits.Concat(PlayerUnits);

        Unit[] unitsInRange = units.Select(u => u).Where(u => Vector2.Distance(u.Center, myPosition) <= distance).ToArray( );

        return(unitsInRange);
    }
Beispiel #5
0
        void OnEntityLost(System.Object obj)
        {
            IGameEntity g = ((GameObject)obj).GetComponent <IGameEntity>();

            if (g.info.isUnit)
            {
                g.unregisterFatalWounds(OnEnemyDied);
                EnemyUnits.Remove((Unit)g);
            }
        }
 public void RemoveUnit(Unit unit, ConflicSide side)
 {
     if (side == ConflicSide.Player)
     {
         PlayerUnits.Remove(unit);
     }
     else
     {
         EnemyUnits.Remove(unit);
     }
 }
 public void AddUnit(Unit unit, ConflicSide side)
 {
     if (side == ConflicSide.Player)
     {
         PlayerUnits.Add(unit);
     }
     else
     {
         EnemyUnits.Add(unit);
     }
 }
 public void Remove(Unit unit)
 {
     if (unit.hasAuthority && unit.playerId == playerId)
     {
         FriendlyUnits.Remove(unit);
     }
     else
     {
         EnemyUnits.Remove(unit);
     }
 }
Beispiel #9
0
        private void Initialize()
        {
            PlayerUnits = GetComponentInChildren <PlayerUnits> ();
            EnemyUnits  = GetComponentInChildren <EnemyUnits> ();
            EnemyUnits.Init();

            _enemySpawners = GetComponentsInChildren <EnemySpawner>();
            foreach (var enemySpawner in _enemySpawners)
            {
                enemySpawner.Init(EnemyUnits);
            }

#if UNITY_EDITOR
            if (Global.Instance.CurrentGameData == null)
            {
                Global.Instance.CurrentGameData = new GameData()
                {
                    Level       = 1,
                    PlayerDatas = new List <PlayerData>()
                    {
                        new PlayerData()
                        {
                            Controller = InputManager.ControllerType.KeyboardArrow,
                            Id         = PlayerData.PlayerId.Player1,
                            Lives      = 3,
                            UnitType   = PlayerUnit.UnitType.Balanced
                        },
                        new PlayerData()
                        {
                            Controller = InputManager.ControllerType.KeyboardWasd,
                            Id         = PlayerData.PlayerId.Player2,
                            Lives      = 3,
                            UnitType   = PlayerUnit.UnitType.Heavy
                        }
                    }
                };
            }
#endif

            PlayerUnits.Init(Global.Instance.CurrentGameData.PlayerDatas.ToArray());

            InputManager = gameObject.GetOrAddComponent <InputManager> ();
            InputManager.Init(this, InputManager.ControllerType.KeyboardWasd,
                              InputManager.ControllerType.KeyboardArrow,
                              InputManager.ControllerType.Gamepad1);

            // All conditions should be parented to LevelManager
            _conditions = GetComponentsInChildren <ConditionBase> ();
            foreach (var condition in _conditions)
            {
                condition.Init(this);
            }
        }
Beispiel #10
0
        void OnEnemyDied(System.Object obj)
        {
            IGameEntity g = ((GameObject)obj).GetComponent <IGameEntity>();

            if (g.info.isUnit)
            {
                EnemyUnits.Remove((Unit)g);
                missionStatus.OnUnitKilled(((Unit)g).type);
            }
            else if (g.info.isBuilding)
            {
                EnemyBuildings.Remove(g);
                missionStatus.OnBuildingDestroyed(g.getType <Storage.BuildingTypes>());
            }
        }
Beispiel #11
0
        private void Initialize()
        {
            PlayerUnits = GetComponentInChildren <PlayerUnits> ();
            EnemyUnits  = GetComponentInChildren <EnemyUnits> ();

            EnemyUnits.Init();

            // TODO: Get player data from GameManager (new data or saved data)
            PlayerData playerData = new PlayerData()
            {
                Id       = PlayerData.PlayerId.Player1,
                UnitType = PlayerUnit.UnitType.Heavy,
                Lives    = 3
            };

            PlayerUnits.Init(playerData);
        }
Beispiel #12
0
        public override void InitialiseEnemies()
        {
            int offset = 2;
            //Enemy 1
            Enemy          enemy  = new Enemy();
            List <Vector2> course = new List <Vector2>();

            course.Add(new Vector2(512, 688));
            course.Add(new Vector2(512, 944));
            course.Add(new Vector2(753, 944));
            course.Add(new Vector2(753, 688));
            enemy.Initialise(this, Content, graphics, course[0], course);
            EnemyUnits.Add(enemy);


            ////Enemy 2
            enemy  = new Enemy();
            course = new List <Vector2>();
            course.Add(new Vector2((7 * RightBoundary) / 8, TopBoundary + (offset * Ostacle.Height)));
            course.Add(new Vector2((7 * RightBoundary) / 8, BottomBoundary - (offset * Ostacle.Height)));
            course.Add(new Vector2((5 * RightBoundary) / 8, BottomBoundary - (offset * Ostacle.Height)));
            course.Add(new Vector2((5 * RightBoundary) / 8, TopBoundary + (offset * Ostacle.Height)));
            enemy.Initialise(this, Content, graphics, course[0], course);
            EnemyUnits.Add(enemy);

            ////Enemy 3
            enemy  = new Enemy();
            course = new List <Vector2>();
            course.Add(new Vector2((7 * RightBoundary) / 8, TopBoundary + (offset * Ostacle.Height)));
            course.Add(new Vector2((7 * RightBoundary) / 8, BottomBoundary - (offset * Ostacle.Height)));
            course.Add(new Vector2((5 * RightBoundary) / 8, BottomBoundary - (offset * Ostacle.Height)));
            course.Add(new Vector2((5 * RightBoundary) / 8, TopBoundary + (offset * Ostacle.Height)));
            enemy.Initialise(this, Content, graphics, course[0], course);
            EnemyUnits.Add(enemy);

            ////Enemy 4
            enemy  = new Enemy();
            course = new List <Vector2>();
            course.Add(new Vector2(RightBoundary / 8, TopBoundary + (offset * Ostacle.Height)));
            course.Add(new Vector2((3 * RightBoundary) / 8, TopBoundary + (offset * Ostacle.Height)));
            course.Add(new Vector2((3 * RightBoundary) / 8, BottomBoundary - (offset * Ostacle.Height)));
            course.Add(new Vector2(RightBoundary / 8, BottomBoundary - (offset * Ostacle.Height)));
            enemy.Initialise(this, Content, graphics, course[0], course);
            EnemyUnits.Add(enemy);
        }
Beispiel #13
0
        void OnEntityFound(System.Object obj)
        {
            IGameEntity g = ((GameObject)obj).GetComponent <IGameEntity>();

            if (g.info.isUnit)
            {
                if (!EnemyUnits.Contains((Unit)g))
                {
                    g.registerFatalWounds(OnEnemyDied);
                    EnemyUnits.Add((Unit)g);
                }
            }
            else if (g.info.isBuilding)
            {
                if (!EnemyBuildings.Contains(g))
                {
                    g.registerFatalWounds(OnEnemyDied);
                    EnemyBuildings.Add(g);
                }
            }
        }
Beispiel #14
0
    protected override void SeeEnemy()
    {
        for (int i = 0; i < EnemyUnits.Count; i++)
        {
            if (EnemyUnits[i] == null)
            {
                EnemyUnits.RemoveAt(i);
            }
            direction = EnemyUnits[i].transform.position - this.transform.position;
            float angle = Vector3.Angle(direction, this.transform.position);


            if (Physics.Raycast(this.transform.position, transform.TransformDirection(Vector3.forward), out hit) && direction.magnitude < fovDist && angle < fovAngle)
            {
                if ((hit.collider.gameObject.tag == "PlayerUnit" || hit.collider.gameObject.tag == "PlayerBase") && (hit.collider.gameObject.tag != "EnemyUnit" || hit.collider.gameObject.tag != "EnemyBase"))
                {
                    Debug.Log(hit.collider.gameObject.tag.ToString());
                    currentTarget = hit.collider.gameObject;
                    state         = State.attack;
                }
            }
        }
    }
Beispiel #15
0
 protected override void Awake()
 {
     base.Awake();
     enemyUnits = GameObject.FindObjectOfType <EnemyUnits>();
 }
 public void Init(EnemyUnits enemyUnits)
 {
     _enemyUnits = enemyUnits;
     StartCoroutine(Spawn());
 }