Пример #1
0
        public void loseCoin(int soldierType)
        {
            _coinMeterHurtTimer = COIN_METER_HURT_FLASH_TIME;
            int i = 0;
            if (_doubleCoins > 0)
            {
                _doubleCoins = 0;
                doppel = false;
                coinMeterTimer = COIN_METER_DROPTIME;
                PikeAndShotGame.DOPPEL_DOWN.Play(0.25f, 0, 0);

                LootSpill spill;
                foreach (Coin c in _doppelCoinSprites)
                {
                    c.setDone();
                    for (int j = 0; j < 3; j++)
                    {
                        spill = new LootSpill(this, Vector2.Zero, 0f, Vector2.Zero);
                        spill.reset(c._position);
                    }
                }

                foreach (Coin c in _coinSprites)
                {
                    c.finalPosition.Y = COIN_METER_POSITION.Y + 48 - i++ * 4f;
                }
                _coins--;
                ((Coin)_coinSprites[_coinSprites.Count - 1]).setDone();
                foreach (LootSpill spilly in lootSpills)
                {
                    spilly.reset(((Coin)_coinSprites[_coinSprites.Count - 1])._position);
                }
                if (soldierType != Soldier.TYPE_SWINGER)
                {
                    spawnRescue(soldierType);
                }
            }
            else if (_coins > 0)
            {
                _coins--;
                ((Coin)_coinSprites[_coinSprites.Count - 1]).setDone();
                foreach (LootSpill spill in lootSpills)
                {
                    spill.reset(((Coin)_coinSprites[_coinSprites.Count - 1])._position);
                }

                if (_coins < 1)
                {
                    retreat();
                }
                else if (soldierType != Soldier.TYPE_SWINGER/* && !PikeAndShotGame.TEST_BOSS*/)
                {
                    spawnRescue(soldierType);
                }
            }
        }