Exemplo n.º 1
0
        // Update is called once per frame
        private void Update()
        {
            // Pop any units that have been killed since the last update:
            _units.RemoveAll(x => x == null);

            // Check if Blue Red None or Both occupy the zone
            bool       redIncluded  = false;
            bool       blueIncluded = false;
            PlayerData newOwner     = null;

            for (int i = 0; i < _units.Count; i++)
            {
                UnitDispatcher unit = _units.ToArray()[i];

                if (!unit.IsMoving())
                {
                    newOwner = unit.Platoon.Owner;
                    // Names are USSR and NATO
                    if (newOwner.Team.Name == "USSR")
                    {
                        redIncluded = true;
                    }
                    else
                    {
                        blueIncluded = true;
                    }
                }
            }

            if (redIncluded && blueIncluded || (!redIncluded && !blueIncluded))
            {
                if (_owner != null)
                {
                    ChangeOwner(null);
                }
            }
            else if (redIncluded)
            {
                if (_owner != newOwner)
                {
                    ChangeOwner(newOwner);
                }
            }
            else
            {
                if (_owner != newOwner)
                {
                    ChangeOwner(newOwner);
                }
            }
        }
Exemplo n.º 2
0
        // Update is called once per frame
        private void Update()
        {
            // Pop any units that have been killed since the last update:
            _units.RemoveAll(x => x == null);

            // Check if Blue Red None or Both occupy the zone
            bool redIncluded  = false;
            bool blueIncluded = false;

            for (int i = 0; i < _units.Count; i++)
            {
                UnitDispatcher unit = _units.ToArray()[i];

                if (!unit.IsMoving())
                {
                    if (unit.Platoon.Team.Name == Team.TeamName.USSR)
                    {
                        redIncluded = true;
                    }
                    else
                    {
                        blueIncluded = true;
                    }
                }
            }

            if (redIncluded && blueIncluded || (!redIncluded && !blueIncluded))
            {
                if (OwningTeam != Team.TeamName.UNDEFINED)
                {
                    ChangeTeam(Team.TeamName.UNDEFINED);
                }
            }
            else if (redIncluded)
            {
                if (OwningTeam != Team.TeamName.USSR)
                {
                    ChangeTeam(Team.TeamName.USSR);
                }
            }
            else
            {
                if (OwningTeam != Team.TeamName.NATO)
                {
                    ChangeTeam(Team.TeamName.NATO);
                }
            }
        }