コード例 #1
0
        private void ProcessCombo(EnemyDeathMessage message)
        {
            message.Enemy.State = CharacterState.Combo;
            comboSoundEffectInstance.Play();
            AddToScore((int)Points.Combo);

            NewMessenger.Default.Send(new ComboMessage {
                Enemy = message.Enemy
            });
        }
コード例 #2
0
        private bool CheckIfEnemyDeathGeneratesCombo(EnemyDeathMessage message)
        {
            bool wasCombo     = false;
            var  enemyGroupId = message.Enemy.GroupId;

            if (enemyGroupCount.ContainsKey(enemyGroupId))
            {
                enemyGroupCount[enemyGroupId]--;
                wasCombo = enemyGroupCount[enemyGroupId] == 0;
            }
            return(wasCombo);
        }
コード例 #3
0
        private void EnemyDeath(EnemyDeathMessage message)
        {
            var wasCombo = CheckIfEnemyDeathGeneratesCombo(message);

            if (wasCombo)
            {
                ProcessCombo(message);
            }
            else
            {
                onScreenEnemies.Remove(message.Enemy);
                if (!message.Enemy.IsBullet)
                {
                    enemies.Add(message.Enemy);
                }
            }
        }