public void ExecuteMission(INamedTarget target) { Report($"Mission on elimination of {target.Name} initiated..."); Agent theAgent = new Agent(); ILoadableWeapon theGun = _director.PickWeapon(); _director.LoadWeapon(theGun, new AmmoFactory()); Report("Preparing agent for mission..."); theAgent.PrepareForMission(theGun, target); Report("Agent is now executing mission..."); theAgent.Execute(); _missionStatus = theAgent.Debrief(); if (_missionStatus == MissionStatus.Success) { Report("Mission was successful, thanks to our perfect planning!!"); } else { Report("Mission failed... Agent will be held responsible"); } }
public Email(string sender, string receiver, string title, string content, INamedTarget target = null) { _sender = sender; _receiver = receiver; _title = title; _content = content; _target = target; }
public void EliminateRussianBadGuy() { Email mail = EmailHandler.Instance.Receive(Description); INamedTarget theTarget = mail?.Target; Report($"Information on {theTarget?.Name} acquired from our Russian Spy..."); Report($"Initiating mission to eliminate {theTarget?.Name}..."); _hq.ExecuteMission(theTarget); if (_hq.Status == MissionStatus.Success) { Report("Mission was successful, thanks to our competent Headquarters!!"); } else { Report("Mission was mostly successful, thanks to our Headquarters!!"); } }
public static INamedTarget CreateProxy(INamedTarget target) { return(new RussianGangsterProxy(target.Name)); }