コード例 #1
0
ファイル: Battle.cs プロジェクト: Pylons-tech/effigy
        public void DoCombat(bool retreat)
        {
            Round++;
            Enemies[0].Combat(Party.ToArray(), retreat);
            var dead       = new List <Puppet>();
            int deathCount = 0;

            for (int i = 0; i < Party.Count; i++)
            {
                if (Party[i].State == PuppetState.Dead && !knownDead[i])
                {
                    dead.Add(Party[i]);
                    knownDead[i] = true;
                }
                if (knownDead[i])
                {
                    deathCount++;
                }
            }

            if (dead.Count > 0)
            {
                OnPuppetDies?.Invoke(this, new BattleEventArgs(Enemies, dead.ToArray(), Round));
            }
            if (deathCount == Party.Count)
            {
                OnBattleLost?.Invoke(this, new BattleEventArgs(Enemies, Party.ToArray(), Round));
                Ended = true;
            }
            else if (Enemies[0].State == PuppetState.Dead)
            {
                GenerateRelics();
                OnEnemyDies?.Invoke(this, new BattleEventArgs(Enemies, Party.ToArray(), Round));
                Ended = true;
            }
            else if (retreat)
            {
                OnRetreated?.Invoke(this, new BattleEventArgs(Enemies, Party.ToArray(), Round));
                Ended = true;
            }
            else
            {
                OnNextRound?.Invoke(this, new BattleEventArgs(Enemies, Party.ToArray(), Round));
            }
        }
コード例 #2
0
ファイル: EnemySpawn.cs プロジェクト: Ramongus/Seminario
 private void Die()
 {
     OnEnemyDies?.Invoke(this, EventArgs.Empty);
 }