private void ProcessResults(WaitableTask <EncounterStatus> result,
                                    TaskResult <string> fileText, EncounterBasicStatus basicStatus)
        {
            EncounterContentStatus detailedStatus = (fileText.IsError()) ? new EncounterContentStatus() : parser.Deserialize(fileText.Value);
            var status = new EncounterStatus(basicStatus, detailedStatus);

            result.SetResult(status);
        }
Exemple #2
0
        public bool AddPlayerEvent(IEvent playerEvent)
        {
            bool eventAdded = false;
            if (Inititive.CurrentCharacter() == PlayerCharacter)
            {

            MightAttack attack = playerEvent as MightAttack;
            if (attack != null)
            {
                attack.Actor = PlayerCharacter;
                attack.Target = MonsterCharacter;
                attack.Power = this.PlayerCharacter.MightAttack();
                this.Events.Add(attack);
                this.LastEvent = attack.EventString();

                this.MonsterCharacter.CurrentHealthPoints -= this.PlayerCharacter.MightAttack();

                if (this.MonsterCharacter.IsDead())
                {
                    this.Status = EncounterStatus.Won;
                }
            }

            MoveInitiative();
            eventAdded = true;
            }
            return eventAdded;
        }
Exemple #3
0
        private void ResolveMonsterAction()
        {
            // get monster default event
            var monsterAction = this.MonsterCharacter.MonsterAction();

            // resolve event
            MightAttack attack = monsterAction as MightAttack;
            if (attack != null)
            {
                attack.Actor = MonsterCharacter;
                attack.Target = PlayerCharacter;
                attack.Power = this.MonsterCharacter.MightAttack();
                this.Events.Add(attack);
                this.LastEvent = attack.EventString();

                this.PlayerCharacter.CurrentHealthPoints -= this.MonsterCharacter.MightAttack();
                if (this.PlayerCharacter.IsDead())
                {
                    this.Status = EncounterStatus.Lost;
                }
            }

            // move initiative
            MoveInitiative();
        }