예제 #1
0
        void Start()
        {
            attack        = GetComponent <Attack>();
            animator      = GetComponent <BaseAnimator>();
            positionSpawn = (Vector2)GetComponent <Transform>().position + new Vector2(SoftRadius, -SoftRadius); //заглушка для ИИ
            bar           = GetComponent <CircularHPBar>();
            InitHUD();

            animator.UpdateCountText();
            animator.CaptureAnimation();
            StartCoroutine(FromPrototype());
            UnitPrefabs = SideUnitPrefabs();
            StartCoroutine(ProduceUnit());
        }
예제 #2
0
        public void CaptureBase()
        {
            if (spawnCoroutine != null)
            {
                StopCoroutine(spawnCoroutine);
            }
            List <Unit> captureUnits = ColliderManager.instance.ReturnUnitInRadius(ObjectTransform.position, CaptureRadius);

            int PlayerUnits = 0;
            int EnemyUnits  = 0;

            for (int i = 0; i < captureUnits.Count; i++)
            {
                if (captureUnits[i].side == Faction.Enemy1)
                {
                    EnemyUnits++;
                }
                if (captureUnits[i].side == Faction.Player)
                {
                    PlayerUnits++;
                }
            }

            if (PlayerUnits > EnemyUnits)
            {
                side             = Faction.Player;
                CurrentCountUnit = PlayerUnits;

                UnitPrefabs = SideUnitPrefabs();
            }

            if (EnemyUnits > PlayerUnits)
            {
                side             = Faction.Enemy1;
                CurrentCountUnit = EnemyUnits;

                UnitPrefabs = SideUnitPrefabs();
            }

            if (PlayerUnits == EnemyUnits && !isRuinded)
            {
                side      = Faction.Neutral;
                isRuinded = true;
                StartCoroutine(BaseCapture());
            }
            else
            {
                for (int i = 0; i < captureUnits.Count; i++)
                {
                    if (captureUnits[i].side == side)
                    {
                        captureUnits[i].Recycle();
                    }
                }
                CreateFromPrototype();
                bar.OnHPCahnged(maxHP);
            }

            animator.UpdateCountText();
            animator.CaptureAnimation();
        }