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); }
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; }
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(); }