public AgentCharacter(Lifetime lifetime, Character character, AgentManager agentManager, IWin32Window owner, ClippySettingsStore settingsStore) { this.agentManager = agentManager; this.owner = owner; this.settingsStore = settingsStore; Character = character; ScaleCharacterForDpi(); AgentClicked = new SimpleSignal(lifetime, "AgentCharacter::AgentClicked"); ButtonClicked = new Signal <string>(lifetime, "AgentCharacter::ButtonClicked"); BalloonOptionClicked = new Signal <object>(lifetime, "AgentCharacter::BalloonOptionClicked"); balloon = new BalloonManager(lifetime); balloon.ButtonClicked.FlowInto(lifetime, ButtonClicked); balloon.BalloonOptionClicked.FlowInto(lifetime, BalloonOptionClicked); requestHandlers = new Dictionary <int, Action>(); characterWindow = OleWin32Window.FromIOleWindow(character.Interface); characterWindow.SetOwner(owner); initLocation = SetDefaultLocation; random = new Random(); }
public Agent(Lifetime lifetime, AgentManager agentManager) { character = JetBrains.Util.Lazy.Lazy.Of(() => { agentManager.Initialise(); var agentCharacter = agentManager.GetAgent("Clippit"); agentCharacter.AgentClicked.FlowInto(lifetime, AgentClicked); agentCharacter.ButtonClicked.FlowInto(lifetime, ButtonClicked); agentCharacter.BalloonOptionClicked.FlowInto(lifetime, BalloonOptionClicked); lifetime.AddAction(() => agentManager.UnloadAgent(agentCharacter)); return(agentCharacter); }); AgentClicked = new SimpleSignal(lifetime, "Agent::AgentClicked"); ButtonClicked = new Signal <string>(lifetime, "Agent::ButtonClicked"); BalloonOptionClicked = new Signal <object>(lifetime, "Agent::BalloonOptionClicked"); }