Пример #1
0
        public Questor(frmMain form1)
        {
            m_Parent   = form1;
            _lastPulse = DateTime.MinValue;

            _random = new Random();

            _salvage          = new Salvage();
            _defense          = new Defense();
            _combat           = new Combat();
            _traveler         = new Traveler();
            _unloadLoot       = new UnloadLoot();
            _agentInteraction = new AgentInteraction();
            _arm = new Arm();
            _missionController = new MissionController();
            _drones            = new Drones();
            _panic             = new Panic();
            _storyline         = new Storyline();

            Settings.Instance.SettingsLoaded += SettingsLoaded;

            // State fixed on ExecuteMission
            State = QuestorState.Idle;

            _directEve = new DirectEve();
            Cache.Instance.DirectEve = _directEve;

            Cache.Instance.StopTimeSpecified = Program.stopTimeSpecified;

            _directEve.OnFrame += OnFrame;
        }
Пример #2
0
        public Storyline()
        {
            _combat           = new Combat();
            _traveler         = new Traveler();
            _agentInteraction = new AgentInteraction();

            _agentBlacklist = new List <long>();

            _storylines = new Dictionary <string, IStoryline>();
            //_storylines.Add("__", new GenericCombatStoryline());
            _storylines.Add("Materials For War Preparation", new MaterialsForWarPreparation());
            _storylines.Add("Shipyard Theft", new GenericCombatStoryline());
            _storylines.Add("Evolution", new GenericCombatStoryline());
            _storylines.Add("Record Cleaning", new GenericCombatStoryline());
            _storylines.Add("Covering Your Tracks", new GenericCombatStoryline());
            _storylines.Add("Crowd Control", new GenericCombatStoryline());
            _storylines.Add("A Force to Be Reckoned With", new GenericCombatStoryline());
            _storylines.Add("Kidnappers Strike - Ambush In The Dark (1 of 10)", new GenericCombatStoryline());
            _storylines.Add("Kidnappers Strike - The Kidnapping (3 of 10)", new GenericCombatStoryline());
            _storylines.Add("Kidnappers Strike - Incriminating Evidence (5 of 10)", new GenericCombatStoryline());
            _storylines.Add("Kidnappers Strike - The Secret Meeting (7 of 10)", new GenericCombatStoryline());
            _storylines.Add("Kidnappers Strike - Defend the Civilian Convoy (8 of 10)", new GenericCombatStoryline());
            _storylines.Add("Kidnappers Strike - Retrieve the Prisoners (9 of 10)", new GenericCombatStoryline());
            _storylines.Add("Kidnappers Strike - The Final Battle (10 of 10)", new GenericCombatStoryline());
            _storylines.Add("Whispers in the Dark - First Contact (1 of 4)", new GenericCombatStoryline());
            _storylines.Add("Whispers in the Dark - Lay and Pray (2 of 4)", new GenericCombatStoryline());
            _storylines.Add("Whispers in the Dark - The Outpost (4 of 4)", new GenericCombatStoryline());
            _storylines.Add("Transaction Data Delivery", new TransactionDataDelivery());
            _storylines.Add("Innocents in the Crossfire", new GenericCombatStoryline());
        }
Пример #3
0
        public Storyline()
        {
            _combat = new Combat();
            _traveler = new Traveler();
            _agentInteraction = new AgentInteraction();

            _agentBlacklist = new List<long>();

            _storylines = new Dictionary<string, IStoryline>();
            //_storylines.Add("__", new GenericCombatStoryline());
            //_storylines.Add("Materials For War Preparation", new MaterialsForWarPreparation());
            _storylines.Add("Shipyard Theft", new GenericCombatStoryline());
            _storylines.Add("Evolution", new GenericCombatStoryline());
            _storylines.Add("Record Cleaning", new GenericCombatStoryline());
            _storylines.Add("Covering Your Tracks", new GenericCombatStoryline());
            _storylines.Add("Crowd Control", new GenericCombatStoryline());
            _storylines.Add("A Force to Be Reckoned With", new GenericCombatStoryline());
            _storylines.Add("Kidnappers Strike - Ambush In The Dark (1 of 10)", new GenericCombatStoryline());
            _storylines.Add("Kidnappers Strike - The Kidnapping (3 of 10)", new GenericCombatStoryline());
            _storylines.Add("Kidnappers Strike - Incriminating Evidence (5 of 10)", new GenericCombatStoryline());
            _storylines.Add("Kidnappers Strike - The Secret Meeting (7 of 10)", new GenericCombatStoryline());
            _storylines.Add("Kidnappers Strike - Defend the Civilian Convoy (8 of 10)", new GenericCombatStoryline());
            _storylines.Add("Kidnappers Strike - Retrieve the Prisoners (9 of 10)", new GenericCombatStoryline());
            _storylines.Add("Kidnappers Strike - The Final Battle (10 of 10)", new GenericCombatStoryline());
            _storylines.Add("Whispers in the Dark - First Contact (1 of 4)", new GenericCombatStoryline());
            _storylines.Add("Whispers in the Dark - Lay and Pray (2 of 4)", new GenericCombatStoryline());
            _storylines.Add("Whispers in the Dark - The Outpost (4 of 4)", new GenericCombatStoryline());
            _storylines.Add("Transaction Data Delivery", new TransactionDataDelivery());
            _storylines.Add("Innocents in the Crossfire", new TransactionDataDelivery());
        }
Пример #4
0
        public Questor()
        {
            _lastPulse = DateTime.MinValue;

            _random = new Random();

            _salvage = new Salvage();
            _defense = new Defense();
            _combat = new Combat();
            _traveler = new Traveler();
            _unloadLoot = new UnloadLoot();
            _agentInteraction = new AgentInteraction();
            _arm = new Arm();
            _missionController = new MissionController();
            _drones = new Drones();
            _panic = new Panic();
            _storyline = new Storyline();

            Settings.Instance.SettingsLoaded += SettingsLoaded;

            // State fixed on ExecuteMission
            State = QuestorState.Idle;

            _directEve = new DirectEve();
            Cache.Instance.DirectEve = _directEve;

            _directEve.OnFrame += OnFrame;
        }
Пример #5
0
    // Use this for initialization
    void Start()
    {
        avatarVision = GetComponent <VisionManager>();

        animator      = GetComponent <Animator>();
        commandsQueue = new Queue <Command>();
        aI            = GetComponent <AgentInteraction>();
        speech        = GetComponent <AgentSpeech>();
        locationsList = new List <GameObject>();
        Debug.Log("RHS>>> " + this.name + " " + this.GetType() + " is ready.");
    }
Пример #6
0
        public GenericCombatStoryline()
        {
            _neededAmmo = new List<Ammo>();

            _agentInteraction = new AgentInteraction();
            _arm = new Arm();
            _combat = new Combat();
            _drones = new Drones();
            _salvage = new Salvage();
            _statistics = new Statistics();
            _combatMissionCtrl = new CombatMissionCtrl();

            Settings.Instance.SettingsLoaded += ApplySettings;
        }
Пример #7
0
        public GenericCombatStoryline()
        {
            _neededAmmo = new List<Ammo>();

            _agentInteraction = new AgentInteraction();
            _arm = new Arm();
            _traveler = new Traveler();
            _combat = new Combat();
            _drones = new Drones();
            _salvage = new Salvage();
            _missionController = new MissionController();

            Settings.Instance.SettingsLoaded += ApplySettings;
        }
Пример #8
0
        public GenericCombatStoryline()
        {
            _neededAmmo = new List <Ammo>();

            _agentInteraction = new AgentInteraction();
            _arm               = new Arm();
            _traveler          = new Traveler();
            _combat            = new Combat();
            _drones            = new Drones();
            _salvage           = new Salvage();
            _missionController = new MissionController();

            Settings.Instance.SettingsLoaded += ApplySettings;
        }
Пример #9
0
        public Storyline()
        {
            _combat           = new Combat();
            _traveler         = new Traveler();
            _agentInteraction = new AgentInteraction();

            _agentBlacklist = new List <long>();

            _storylines = new Dictionary <string, IStoryline>();
            _storylines.Add("Materials For War Preparation", new MaterialsForWarPreparation());
            _storylines.Add("Shipyard Theft", new GenericCombatStoryline());
            _storylines.Add("Evolution", new GenericCombatStoryline());
            _storylines.Add("Record Cleaning", new GenericCombatStoryline());
            _storylines.Add("Covering Your Tracks", new GenericCombatStoryline());
            _storylines.Add("Crowd Control", new GenericCombatStoryline());
            _storylines.Add("Transaction Data Delivery", new TransactionDataDelivery());
        }
Пример #10
0
        public Storyline()
        {
            _combat = new Combat();
            _traveler = new Traveler();
            _agentInteraction = new AgentInteraction();

            _agentBlacklist = new List<long>();

            _storylines = new Dictionary<string, IStoryline>();
            _storylines.Add("Materials For War Preparation", new MaterialsForWarPreparation());
            _storylines.Add("Shipyard Theft", new GenericCombatStoryline());
            _storylines.Add("Evolution", new GenericCombatStoryline());
            _storylines.Add("Record Cleaning", new GenericCombatStoryline());
            _storylines.Add("Covering Your Tracks", new GenericCombatStoryline());
            _storylines.Add("Crowd Control", new GenericCombatStoryline());
            _storylines.Add("Transaction Data Delivery", new TransactionDataDelivery());
        }
Пример #11
0
    // Use this for initialization222
    void Start()
    {
        robotVision      = robot.GetComponent <VisionManager>();
        robotSmell       = robot.GetComponent <SmellManager>();
        robotHearing     = robot.GetComponent <HearingManager>();
        robotTaste       = robot.GetComponent <TasteManager>();
        robotTouch       = robot.GetComponent <TouchManager>();
        locationsOnScene = new List <GameObject>(GameObject.FindGameObjectsWithTag(Constants.TAG_KNOWLOCATIONS));

        commandsQueue = new Queue <Command>();
        aI            = robot.GetComponent <AgentInteraction>();
        aM            = robot.GetComponent <AgentMovement>();
        hM            = robot.GetComponent <AgentHeadMovement>();
        sp            = robot.GetComponent <AgentSpeech>();

        locationsList = new List <GameObject>(locationsOnScene);
        Debug.Log("RHS>>> " + this.name + " ready.");
    }
Пример #12
0
        /// <summary>
        ///   Interact with the agent so we know what ammo to bring
        /// </summary>
        /// <returns>True if interact is done</returns>
        private bool Interact()
        {
            // Are we done?
            if (_States.CurrentAgentInteractionState == AgentInteractionState.Done)
            {
                return(true);
            }

            if (AgentInteraction.Agent == null)
            {
                throw new Exception("Invalid agent");
            }

            // Start the conversation
            if (_States.CurrentAgentInteractionState == AgentInteractionState.Idle)
            {
                _States.CurrentAgentInteractionState = AgentInteractionState.StartConversation;
            }

            // Interact with the agent to find out what ammo we need
            AgentInteraction.ProcessState();

            if (_States.CurrentAgentInteractionState == AgentInteractionState.DeclineMission)
            {
                if (AgentInteraction.Agent.Window != null)
                {
                    AgentInteraction.Agent.Window.Close();
                }
                Logging.Log("GenericCombatStoryline", "Mission offer is in a Low Security System", Logging.Orange); //do storyline missions in lowsec get blacklisted by: "public StorylineState Arm(Storyline storyline)"?
                throw new Exception("Low security systems");
            }

            if (_States.CurrentAgentInteractionState == AgentInteractionState.Done)
            {
                Modules.Actions.Arm.AmmoToLoad.Clear();
                Modules.Actions.Arm.AmmoToLoad.AddRange(AgentInteraction.AmmoToLoad);
                return(true);
            }

            return(false);
        }
Пример #13
0
        public Storyline()
        {
            _combat           = new Combat();
            _traveler         = new Traveler();
            _agentInteraction = new AgentInteraction();

            _agentBlacklist = new List <long>();

            _storylines = new Dictionary <string, IStoryline>();
            //_storylines.Add("__", new GenericCombatStoryline());
            // broken in crucible 1.5 (yes/no dialog needs directeve support)
            _storylines.Add("Materials For War Preparation", new MaterialsForWarPreparation());
            _storylines.Add("Shipyard Theft", new GenericCombatStoryline());
            _storylines.Add("Evolution", new GenericCombatStoryline());
            _storylines.Add("Record Cleaning", new GenericCombatStoryline());
            _storylines.Add("Covering Your Tracks", new GenericCombatStoryline());
            _storylines.Add("Crowd Control", new GenericCombatStoryline());
            _storylines.Add("A Force to Be Reckoned With", new GenericCombatStoryline());
            _storylines.Add("Kidnappers Strike - Ambush In The Dark (1 of 10)", new GenericCombatStoryline());
            _storylines.Add("Kidnappers Strike - The Kidnapping (3 of 10)", new GenericCombatStoryline());
            _storylines.Add("Kidnappers Strike - Incriminating Evidence (5 of 10)", new GenericCombatStoryline());
            _storylines.Add("Kidnappers Strike - The Secret Meeting (7 of 10)", new GenericCombatStoryline());
            _storylines.Add("Kidnappers Strike - Defend the Civilian Convoy (8 of 10)", new GenericCombatStoryline());
            _storylines.Add("Kidnappers Strike - Retrieve the Prisoners (9 of 10)", new GenericCombatStoryline());
            _storylines.Add("Kidnappers Strike - The Final Battle (10 of 10)", new GenericCombatStoryline());
            _storylines.Add("Whispers in the Dark - First Contact (1 of 4)", new GenericCombatStoryline());
            _storylines.Add("Whispers in the Dark - Lay and Pray (2 of 4)", new GenericCombatStoryline());
            _storylines.Add("Whispers in the Dark - The Outpost (4 of 4)", new GenericCombatStoryline());
            _storylines.Add("Transaction Data Delivery", new TransactionDataDelivery());
            _storylines.Add("Innocents in the Crossfire", new GenericCombatStoryline());
            //_storylines.Add("Patient Zero", new GenericCombatStoryline());
            _storylines.Add("Soothe the Salvage Beast", new GenericCombatStoryline());
            _storylines.Add("Forgotten Outpost", new GenericCombatStoryline());
            _storylines.Add("Stem the Flow", new GenericCombatStoryline());
            _storylines.Add("Quota Season", new GenericCombatStoryline());
            //_storylines.Add("Matriarch", new GenericCombatStoryline());
            //_storylines.Add("Diplomatic Incident", new GenericCombatStoryline());
            _storylines.Add("Nine Tenths of the Wormhole", new GenericCombatStoryline());
        }
Пример #14
0
        public Storyline()
        {
            _combat = new Combat();
            _traveler = new Traveler();
            _agentInteraction = new AgentInteraction();

            _agentBlacklist = new List<long>();

            _storylines = new Dictionary<string, IStoryline>();
            //_storylines.Add("__", new GenericCombatStoryline());
            // broken in crucible 1.5 (yes/no dialog needs directeve support)
            _storylines.Add("Materials For War Preparation", new MaterialsForWarPreparation());
            _storylines.Add("Shipyard Theft", new GenericCombatStoryline());
            _storylines.Add("Evolution", new GenericCombatStoryline());
            _storylines.Add("Record Cleaning", new GenericCombatStoryline());
            _storylines.Add("Covering Your Tracks", new GenericCombatStoryline());
            _storylines.Add("Crowd Control", new GenericCombatStoryline());
            _storylines.Add("A Force to Be Reckoned With", new GenericCombatStoryline());
            _storylines.Add("Kidnappers Strike - Ambush In The Dark (1 of 10)", new GenericCombatStoryline());
            _storylines.Add("Kidnappers Strike - The Kidnapping (3 of 10)", new GenericCombatStoryline());
            _storylines.Add("Kidnappers Strike - Incriminating Evidence (5 of 10)", new GenericCombatStoryline());
            _storylines.Add("Kidnappers Strike - The Secret Meeting (7 of 10)", new GenericCombatStoryline());
            _storylines.Add("Kidnappers Strike - Defend the Civilian Convoy (8 of 10)", new GenericCombatStoryline());
            _storylines.Add("Kidnappers Strike - Retrieve the Prisoners (9 of 10)", new GenericCombatStoryline());
            _storylines.Add("Kidnappers Strike - The Final Battle (10 of 10)", new GenericCombatStoryline());
            _storylines.Add("Whispers in the Dark - First Contact (1 of 4)", new GenericCombatStoryline());
            _storylines.Add("Whispers in the Dark - Lay and Pray (2 of 4)", new GenericCombatStoryline());
            _storylines.Add("Whispers in the Dark - The Outpost (4 of 4)", new GenericCombatStoryline());
            _storylines.Add("Transaction Data Delivery", new TransactionDataDelivery());
            _storylines.Add("Innocents in the Crossfire", new GenericCombatStoryline());
            //_storylines.Add("Patient Zero", new GenericCombatStoryline());
            _storylines.Add("Soothe the Salvage Beast", new GenericCombatStoryline());
            _storylines.Add("Forgotten Outpost", new GenericCombatStoryline());
            _storylines.Add("Stem the Flow", new GenericCombatStoryline());
            _storylines.Add("Quota Season", new GenericCombatStoryline());
            //_storylines.Add("Matriarch", new GenericCombatStoryline());
            //_storylines.Add("Diplomatic Incident", new GenericCombatStoryline());
            _storylines.Add("Nine Tenths of the Wormhole", new GenericCombatStoryline());
        }
Пример #15
0
        public Storyline()
        {
            _combat = new Combat();
            _agentInteraction = new AgentInteraction();

            Cache.Instance.AgentBlacklist = new List<long>();

            _storylines = new Dictionary<string, IStoryline>
                            {
                               // Examples
                               // note: All storylines must be entered in lowercase or use ".ToLower()"
                               //
                               //{"StorylineCombatNameHere".ToLower(), new GenericCombatStoryline()},
                               //{"StorylineCourierNameHere".ToLower(), new GenericCourier()},
                               //
                               // COURIER/DELIVERY - ALL FACTIONS - ALL LEVELS
                               //
                               {"Materials For War Preparation".ToLower(), new MaterialsForWarPreparation()},
                               {"Transaction Data Delivery".ToLower(), new TransactionDataDelivery()},
                               //{"A Special Delivery".ToLower(), new GenericCourier()}, // Needs 40k m3 cargo (i.e. Iteron Mark V, T2 CHO rigs) for lvl4

                               //
                               // COURIER/DELIVERY - ALL FACTIONS - LEVEL 1
                               //

                               //
                               // COURIER/DELIVERY - ALL FACTIONS - LEVEL 2
                               //

                               //
                               // COURIER/DELIVERY - ALL FACTIONS - LEVEL 3
                               //
                               {"Kidnappers Strike - The Interrogation (2 of 10)".ToLower(), new GenericCourier()}, //lvl3
                               {"Kidnappers Strike - Possible Leads (4 of 10)".ToLower(), new GenericCourier()}, //lvl3
                               {"Kidnappers Strike - The Flu Outbreak (6 of 10)".ToLower(), new GenericCourier()}, //lvl3

                               //
                               // COURIER/DELIVERY - ALL FACTIONS - LEVEL 4
                               //

                               //
                               // COURIER/DELIVERY - AMARR - LEVEL 1
                               //

                               //
                               // COURIER/DELIVERY - AMARR - LEVEL 2
                               //

                               //
                               // COURIER/DELIVERY - AMARR - LEVEL 3
                               //

                               //
                               // COURIER/DELIVERY - AMARR - LEVEL 4
                               //
                               {"Opiate of the Masses".ToLower(), new GenericCourier()}, //lvl4
                               //{"Send the Marines".ToLower(), new GenericCourier()}, //lvl4
                               {"Send the Marines!".ToLower(), new GenericCourier()}, //lvl4
                               {"The Governors Ball".ToLower(), new GenericCourier()}, //lvl4
                               {"The State of the Empire".ToLower(), new GenericCourier()}, //lvl4
                               {"Unmasking the Traitor".ToLower(), new GenericCourier()}, //lvl4
                               //
                               // COURIER/DELIVERY - CALDARI - LEVEL 1
                               //
                               //{"A Fathers Love".ToLower(), new GenericCourier()}, //lvl1
                               //{"A Greener World".ToLower(), new GenericCourier()}, //lvl1
                               //{"Eradication".ToLower(), new GenericCourier()}, //lvl1
                               //{"Evacuation".ToLower(), new GenericCourier()}, //lvl1
                               //{"On the Run".ToLower(), new GenericCourier()}, //lvl1

                               //
                               // COURIER/DELIVERY - CALDARI - LEVEL 2
                               //

                               //
                               // COURIER/DELIVERY - CALDARI - LEVEL 3
                               //

                               //
                               // COURIER/DELIVERY - CALDARI - LEVEL 4
                               //
                               {"A Desperate Rescue".ToLower(), new GenericCourier()}, //lvl4
                               {"Black Ops Crisis".ToLower(), new GenericCourier()}, //lvl4
                               {"Fire and Ice".ToLower(), new GenericCourier()}, //lvl4
                               {"Hunting Black Dog".ToLower(), new GenericCourier()}, //lvl4
                               {"Operation Doorstop".ToLower(), new GenericCourier()}, //lvl4
                               //
                               // COURIER/DELIVERY - GALLENTE - LEVEL 1
                               //
                               //{"A Little Work On The Side".ToLower(), new GenericCourier()}, //lvl1
                               //{"Ancient Treasures".ToLower(), new GenericCourier()}, //lvl1
                               //{"Pieces of the Past".ToLower(), new GenericCourier()}, //lvl1
                               //{"The Latest Style".ToLower(), new GenericCourier()}, //lvl1
                               //{"Wartime Advances".ToLower(), new GenericCourier()}, //lvl1

                               //
                               // COURIER/DELIVERY - GALLENTE - LEVEL 2
                               //

                               //
                               // COURIER/DELIVERY - GALLENTE - LEVEL 3
                               //

                               //
                               // COURIER/DELIVERY - GALLENTE - LEVEL 4
                               //
                               //{"A Fathers Love".ToLower(), new GenericCourier()}, //lvl4
                               {"A Fine Wine".ToLower(), new GenericCourier()}, //lvl4
                               //{"A Greener World".ToLower(), new GenericCourier()}, //lvl4
                               {"Amphibian Error".ToLower(), new GenericCourier()}, //lvl4
                               //{"Eradication".ToLower(), new GenericCourier()}, //lvl4
                               //{"Evacuation".ToLower(), new GenericCourier()}, //lvl4
                               //{"On the Run".ToLower(), new GenericCourier()}, //lvl4
                               {"Shifting Rocks".ToLower(), new GenericCourier()}, //lvl4
                               {"The Creeping Cold".ToLower(), new GenericCourier()}, //lvl4
                               {"The Natural Way".ToLower(), new GenericCourier()}, //lvl4

                               //
                               // COURIER/DELIVERY - MINMATAR - LEVEL 1
                               //

                               //
                               // COURIER/DELIVERY - MINMATAR - LEVEL 2
                               //

                               //
                               // COURIER/DELIVERY - MINMATAR - LEVEL 3
                               //

                               //
                               // COURIER/DELIVERY - MINMATAR - LEVEL 4
                               //
                               {"A Cargo With Attitude".ToLower(), new GenericCourier()}, //lvl4
                               {"A Load of Scrap".ToLower(), new GenericCourier()}, //lvl4
                               {"Brand New Harvesters".ToLower(), new GenericCourier()}, //lvl4
                               {"Heart of the Rogue Drone".ToLower(), new GenericCourier()}, //lvl4
                               {"Their Secret Defense".ToLower(), new GenericCourier()}, //lvl4
                               //{"Very Important Pirates".ToLower(), new GenericCourier()}, //lvl4

                               //
                               // COMBAT - ALL FACTIONS - ALL LEVELS
                               //
                               {"Soothe the Salvage Beast".ToLower(), new GenericCombatStoryline()}, //lvl3 and lvl4

                               //
                               // COMBAT - ALL FACTIONS - LEVEL 1
                               //

                               //
                               // COMBAT - ALL FACTIONS - LEVEL 2
                               //

                               //
                               // COMBAT - ALL FACTIONS - LEVEL 3
                               //
                               {"Kidnappers Strike - Ambush in the Dark (1 of 10)".ToLower(), new GenericCombatStoryline()}, //lvl3
                               {"Kidnappers Strike - The Kidnapping (3 of 10)".ToLower(), new GenericCombatStoryline()}, //lvl3
                               {"Kidnappers Strike - Incriminating Evidence (5 of 10)".ToLower(), new GenericCombatStoryline()}, //lvl3
                               {"Kidnappers Strike - The Secret Meeting (7 of 10)".ToLower(), new GenericCombatStoryline()}, //lvl3
                               {"Kidnappers Strike - Defend the Civilian Convoy (8 of 10)".ToLower(), new GenericCombatStoryline()}, //lvl3
                               {"Kidnappers Strike - Retrieve the Prisoners (9 of 10)".ToLower(), new GenericCombatStoryline()}, //lvl3
                               {"Kidnappers Strike - The Final Battle (10 of 10)".ToLower(), new GenericCombatStoryline()}, //lvl3

                               //
                               // COMBAT - ALL FACTIONS - LEVEL 4
                               //
                               {"Covering Your Tracks".ToLower(), new GenericCombatStoryline()}, //lvl4
                               {"Evolution".ToLower(), new GenericCombatStoryline()}, //lvl4
                               {"Patient Zero".ToLower(), new GenericCombatStoryline()}, //lvl4
                               {"Record Cleaning".ToLower(), new GenericCombatStoryline()}, //lvl4
                               {"Shipyard Theft".ToLower(), new GenericCombatStoryline()}, //lvl4

                               //
                               // COMBAT - AMARR - LEVEL 1
                               //
                               //
                               // COMBAT - AMARR - LEVEL 2
                               //
                               {"Whispers in the Dark - First Contact (1 of 4)".ToLower(), new GenericCombatStoryline()}, //vs sansha lvl2
                               {"Whispers in the Dark - Lay and Pray (2 of 4)".ToLower(), new GenericCombatStoryline()}, //vs sansha lvl2
                               {"Whispers in the Dark - The Outpost (4 of 4)".ToLower(), new GenericCombatStoryline()}, //vs sansha lvl2
                               //
                               // COMBAT - AMARR - LEVEL 3
                               //

                               //
                               // COMBAT - AMARR - LEVEL 4
                               //
                               {"Blood Farm".ToLower(), new GenericCombatStoryline()}, //amarr lvl4
                               {"Dissidents".ToLower(), new GenericCombatStoryline()}, //amarr lvl4
                               {"Extract the Renegade".ToLower(), new GenericCombatStoryline()}, //amarr lvl4
                               {"Gate to Nowhere".ToLower(), new GenericCombatStoryline()}, //amarr lvl4
                               {"Jealous Rivals".ToLower(), new GenericCombatStoryline()}, //amarr lvl4
                               {"Racetrack Ruckus".ToLower(), new GenericCombatStoryline()}, //amarr lvl4
                               {"The Mouthy Merc".ToLower(), new GenericCombatStoryline()}, //amarr lvl4

                               //
                               // COMBAT - CALDARI - LEVEL 1
                               //

                               //
                               // COMBAT - CALDARI - LEVEL 2
                               //

                               //
                               // COMBAT - CALDARI - LEVEL 3
                               //

                               //
                               // COMBAT - CALDARI - LEVEL 4
                               //
                               {"Crowd Control".ToLower(), new GenericCombatStoryline()}, //caldari lvl4
                               {"Forgotten Outpost".ToLower(), new GenericCombatStoryline()},//caldari lvl4
                               //{"Illegal Mining".ToLower(), new GenericCombatStoryline()}, //caldari lvl4 note: Extremely high DPS after shooting structures!
                               {"Innocents in the Crossfire".ToLower(), new GenericCombatStoryline()}, //caldari lvl4
                               {"Stem the Flow".ToLower(), new GenericCombatStoryline()}, //caldari lvl4

                               //
                               // COMBAT - GALLENTE - LEVEL 1
                               //

                               //
                               // COMBAT - GALLENTE - LEVEL 2
                               //

                               //
                               // COMBAT - GALLENTE - LEVEL 3
                               //
                               {"A Force to Be Reckoned With".ToLower(), new GenericCombatStoryline()}, //gallente lvl4

                               //
                               // COMBAT - GALLENTE - LEVEL 4
                               //
                               {"Federal Confidence".ToLower(), new GenericCombatStoryline()}, //gallente lvl4
                               {"Hidden Hope".ToLower(), new GenericCombatStoryline()}, //gallente lvl4
                               //{"Missing Persons Report", new GenericCombatStoryline()},
                               //{"Inspired".ToLower(), new GenericCombatStoryline()}, //gallente lvl4
                               {"Prison Transfer".ToLower(), new GenericCombatStoryline()}, //gallente lvl4
                               {"Serpentis Ship Builders".ToLower(), new GenericCombatStoryline()}, //gallente lvl4
                               {"The Serpent and the Slaves".ToLower(), new GenericCombatStoryline()}, //gallente lvl4
                               {"Tomb of the Unknown Soldiers".ToLower(), new GenericCombatStoryline()}, //gallente lvl4

                               //
                               // COMBAT - MINMATAR - LEVEL 1
                               //

                               //
                               // COMBAT - MINMATAR - LEVEL 2
                               //

                               //
                               // COMBAT - MINMATAR - LEVEL 3
                               //
                               //
                               // COMBAT - MINMATAR - LEVEL 4
                               //
                               {"Amarrian Excavators".ToLower(), new GenericCombatStoryline()}, //lvl4
                               {"Diplomatic Incident".ToLower(), new GenericCombatStoryline()}, //lvl4
                               {"Matriarch".ToLower(), new GenericCombatStoryline()}, //lvl4
                               {"Nine Tenths of the Wormhole".ToLower(), new GenericCombatStoryline()}, //lvl4
                               {"Postmodern Primitives".ToLower(), new GenericCombatStoryline()}, //lvl4
                               {"Quota Season".ToLower(), new GenericCombatStoryline()}, //lvl4
                               {"The Blood of Angry Men".ToLower(), new GenericCombatStoryline()}, //lvl4
                            };
        }
Пример #16
0
        public void ProcessState()
        {
            switch (_States.CurrentStorylineState)
            {
            case StorylineState.Idle:
                IdleState();
                break;

            case StorylineState.Arm:

                //Logging.Log("Storyline: Arm");
                _States.CurrentStorylineState = _storyline.Arm(this);
                break;

            case StorylineState.GotoAgent:

                //Logging.Log("Storyline: GotoAgent");
                GotoAgent(StorylineState.PreAcceptMission);
                break;

            case StorylineState.PreAcceptMission:

                //Logging.Log("Storyline: PreAcceptMission-!!");
                _States.CurrentAgentInteractionState = AgentInteractionState.Idle;
                _States.CurrentStorylineState        = _storyline.PreAcceptMission(this);
                break;

            case StorylineState.DeclineMission:
                if (_States.CurrentAgentInteractionState == AgentInteractionState.Idle)
                {
                    Logging.Log("Storyline.AgentInteraction", "Start conversation [Decline Mission]", Logging.Yellow);

                    _States.CurrentAgentInteractionState = AgentInteractionState.StartConversation;
                    AgentInteraction.Purpose             = AgentInteractionPurpose.DeclineMission;
                    AgentInteraction.AgentId             = Cache.Instance.CurrentStorylineAgentId;
                }

                AgentInteraction.ProcessState();

                if (Settings.Instance.DebugStates)
                {
                    Logging.Log("AgentInteraction.State is ", _States.CurrentAgentInteractionState.ToString(), Logging.White);
                }

                if (_States.CurrentAgentInteractionState == AgentInteractionState.Done)
                {
                    _States.CurrentAgentInteractionState = AgentInteractionState.Idle;

                    // If there is no mission anymore then we're done (we declined it)
                }
                break;

            case StorylineState.AcceptMission:

                //Logging.Log("Storyline: AcceptMission!!-");
                if (_States.CurrentAgentInteractionState == AgentInteractionState.Idle)
                {
                    Logging.Log("Storyline.AgentInteraction", "Start conversation [Start Mission]", Logging.Yellow);

                    _States.CurrentAgentInteractionState = AgentInteractionState.StartConversation;
                    AgentInteraction.Purpose             = AgentInteractionPurpose.StartMission;
                    AgentInteraction.AgentId             = Cache.Instance.CurrentStorylineAgentId;
                    AgentInteraction.ForceAccept         = true;
                }

                AgentInteraction.ProcessState();

                if (Settings.Instance.DebugStates)
                {
                    Logging.Log("AgentInteraction.State is ", _States.CurrentAgentInteractionState.ToString(), Logging.White);
                }

                if (_States.CurrentAgentInteractionState == AgentInteractionState.Done)
                {
                    _States.CurrentAgentInteractionState = AgentInteractionState.Idle;

                    // If there is no mission anymore then we're done (we declined it)
                    _States.CurrentStorylineState = StorylineMission == null ? StorylineState.Done : StorylineState.ExecuteMission;
                }
                break;

            case StorylineState.ExecuteMission:
                _States.CurrentStorylineState = _storyline.ExecuteMission(this);
                break;

            case StorylineState.ReturnToAgent:
                GotoAgent(StorylineState.CompleteMission);
                break;

            case StorylineState.CompleteMission:
                if (_States.CurrentAgentInteractionState == AgentInteractionState.Idle)
                {
                    Logging.Log("AgentInteraction", "Start Conversation [Complete Mission]", Logging.Yellow);

                    _States.CurrentAgentInteractionState = AgentInteractionState.StartConversation;
                    AgentInteraction.Purpose             = AgentInteractionPurpose.CompleteMission;
                }

                AgentInteraction.ProcessState();

                if (Settings.Instance.DebugStates)
                {
                    Logging.Log("AgentInteraction.State is", _States.CurrentAgentInteractionState.ToString(), Logging.White);
                }

                if (_States.CurrentAgentInteractionState == AgentInteractionState.Done)
                {
                    _States.CurrentAgentInteractionState = AgentInteractionState.Idle;
                    _States.CurrentStorylineState        = StorylineState.BringSpoilsOfWar;
                }
                break;

            case StorylineState.BringSpoilsOfWar:
                if (!BringSpoilsOfWar())
                {
                    return;
                }
                break;

            case StorylineState.BlacklistAgent:
                Cache.Instance.AgentBlacklist.Add(Cache.Instance.CurrentStorylineAgentId);
                Logging.Log("Storyline", "BlacklistAgent: The agent that provided us with this storyline mission has been added to the session blacklist", Logging.Orange);
                Reset();
                _States.CurrentCombatMissionBehaviorState = CombatMissionsBehaviorState.GotoBase;
                break;

            case StorylineState.Done:
                if (DateTime.UtcNow > _nextStoryLineAttempt)
                {
                    _States.CurrentStorylineState = StorylineState.Idle;
                }
                break;
            }
        }
Пример #17
0
        public Storyline()
        {
            _combat = new Combat();
            _agentInteraction = new AgentInteraction();

            Cache.Instance.AgentBlacklist = new List<long>();

            _storylines = new Dictionary<string, IStoryline>
                            {
                               // Examples
                               //{"StorylineCombatNameHere", new GenericCombatStoryline()},
                               //{"StorylineCourierNameHere", new GenericCourier()},

                               /* COURIER/DELIVERY - ALL FACTIONS */
                               {"Materials For War Preparation", new MaterialsForWarPreparation()},
                               {"Transaction Data Delivery", new TransactionDataDelivery()},
                               //{"A Special Delivery", new GenericCourier()}, // Needs 40k m3 cargo capacity (i.e. Iteron Mark V, T2 CHO rigs)
                               {"Kidnappers Strike - The Interrogation (2 of 10)", new GenericCourier()},//lvl3
                               {"Kidnappers Strike - Possible Leads (4 of 10)", new GenericCourier()},//lvl3
                               {"Kidnappers Strike - The Flu Outbreak (6 of 10)", new GenericCourier()},//lvl3
                               /* COURIER/DELIVERY - AMARR */
                               {"Opiate of the Masses", new GenericCourier()},
                               {"Send the Marines", new GenericCourier()},
                               {"The Governors Ball", new GenericCourier()},
                               {"The State of the Empire", new GenericCourier()},
                               {"Unmasking the Traitor", new GenericCourier()},
                               /* COURIER/DELIVERY - CALDARI */
                               {"A Desperate Rescue", new GenericCourier()},
                               {"Black Ops Crisis", new GenericCourier()},
                               {"Fire and Ice", new GenericCourier()},
                               {"Hunting Black Dog", new GenericCourier()},
                               {"Operation Doorstop", new GenericCourier()},
                               /* COURIER/DELIVERY - GALLENTE */
                               {"A Fine Wine", new GenericCourier()},
                               {"On the Run", new GenericCourier()},
                               {"A Fathers Love", new GenericCourier()},
                               {"A Greener World", new GenericCourier()},
                               {"Eradication", new GenericCourier()},
                               {"Evacuation", new GenericCourier()},
                               {"The Natural Way", new GenericCourier()},
                               /* COURIER/DELIVERY - MINMATAR */
                               {"Very Important Pirates", new GenericCourier()},
                               {"A Cargo With Attitude", new GenericCourier()},
                               {"A Load of Scrap", new GenericCourier()},
                               {"Brand New Harvesters", new GenericCourier()},
                               {"Heart of the Rogue Drone", new GenericCourier()},
                               {"Their Secret Defense", new GenericCourier()},

                               /* COMBAT - ALL FACTIONS */
                               {"Covering Your Tracks", new GenericCombatStoryline()},//lvl4
                               {"Evolution", new GenericCombatStoryline()},//lvl4
                               {"Patient Zero", new GenericCombatStoryline()},//lvl4
                               {"Record Cleaning", new GenericCombatStoryline()},//lvl4
                               {"Shipyard Theft", new GenericCombatStoryline()},//lvl4
                               {"Soothe the Salvage Beast", new GenericCombatStoryline()},//lvl3
                               {"Kidnappers Strike - Ambush In The Dark (1 of 10)", new GenericCombatStoryline()},//lvl3
                               {"Kidnappers Strike - The Kidnapping (3 of 10)", new GenericCombatStoryline()},//lvl3
                               {"Kidnappers Strike - Incriminating Evidence (5 of 10)", new GenericCombatStoryline()},//lvl3
                               {"Kidnappers Strike - The Secret Meeting (7 of 10)", new GenericCombatStoryline()},//lvl3
                               {"Kidnappers Strike - Defend the Civilian Convoy (8 of 10)", new GenericCombatStoryline()},//lvl3
                               {"Kidnappers Strike - Retrieve the Prisoners (9 of 10)", new GenericCombatStoryline()},//lvl3
                               {"Kidnappers Strike - The Final Battle (10 of 10)", new GenericCombatStoryline()},//lvl3
                               /* COMBAT - AMARR */
                               {"Blood Farm", new GenericCombatStoryline()},
                               {"Dissidents", new GenericCombatStoryline()},
                               {"Extract the Renegade", new GenericCombatStoryline()},
                               {"Gate to Nowhere", new GenericCombatStoryline()},
                               {"Racetrack Ruckus", new GenericCombatStoryline()},
                               {"The Mouthy Merc", new GenericCombatStoryline()},
                               /* COMBAT - CALDARI */
                               {"Crowd Control", new GenericCombatStoryline()},
                               {"Forgotten Outpost", new GenericCombatStoryline()},
                               {"Illegal Mining", new GenericCombatStoryline()},
                               {"Innocents in the Crossfire", new GenericCombatStoryline()},
                               {"Jealous Rivals", new GenericCombatStoryline()},
                               {"Stem the Flow", new GenericCombatStoryline()},
                               /* COMBAT - GALLENTE */
                               {"A Force to Be Reckoned With", new GenericCombatStoryline()},
                               {"Whispers in the Dark - First Contact (1 of 4)", new GenericCombatStoryline()},
                               {"Whispers in the Dark - Lay and Pray (2 of 4)", new GenericCombatStoryline()},
                               {"Whispers in the Dark - The Outpost (4 of 4)", new GenericCombatStoryline()},
                               /* COMBAT - MINMATAR */
                               {"Amarrian Excavators", new GenericCombatStoryline()},
                               {"Diplomatic Incident", new GenericCombatStoryline()},
                               {"Matriarch", new GenericCombatStoryline()},
                               {"Nine Tenths of the Wormhole", new GenericCombatStoryline()},
                               {"Postmodern Primitives", new GenericCombatStoryline()},
                               {"Quota Season", new GenericCombatStoryline()},
                               {"The Blood of Angry Men", new GenericCombatStoryline()},
                            };
        }
Пример #18
0
        /// <summary>
        ///   Goto the pickup location
        ///   Pickup the item
        ///   Goto drop off location
        ///   Drop the item
        ///   Goto Agent
        ///   Complete mission
        /// </summary>
        /// <returns></returns>
        public void ProcessState()
        {
            if (DateTime.UtcNow < _nextCourierMissionCtrlPulse)
            {
                return;
            }

            if (Settings.Instance.DebugCourierMissions)
            {
                Logging.Log("CourierMissionCtrl", "CourierMissionCtrlState: [" + _States.CurrentCourierMissionCtrlState.ToString() + "]", Logging.Debug);
            }

            switch (_States.CurrentCourierMissionCtrlState)
            {
            case CourierMissionCtrlState.Idle:
                break;

            case CourierMissionCtrlState.GotoPickupLocation:
                if (GotoMissionBookmark(Cache.Instance.AgentId, "Objective (Pick Up)"))
                {
                    _States.CurrentCourierMissionCtrlState = CourierMissionCtrlState.PickupItem;
                    return;
                }
                break;

            case CourierMissionCtrlState.PickupItem:
                if (DateTime.UtcNow < Cache.Instance.LastInSpace.AddSeconds(20))
                {
                    return;
                }

                if (moveItemRetryCounter > 20)
                {
                    Cache.Instance.Paused = true;
                    Logging.Log("CourierMissionCtrl", "MoveItem has tried 20x to Pickup the missionitem and failed. Pausing: please debug the cause of this error", Logging.Red);
                    _States.CurrentCourierMissionCtrlState = CourierMissionCtrlState.Error;
                    return;
                }

                if (MoveItem(true))
                {
                    _States.CurrentCourierMissionCtrlState = CourierMissionCtrlState.GotoDropOffLocation;
                    moveItemRetryCounter = 0;
                    return;
                }
                break;

            case CourierMissionCtrlState.GotoDropOffLocation:
                if (GotoMissionBookmark(Cache.Instance.AgentId, "Objective (Drop Off)"))
                {
                    _States.CurrentCourierMissionCtrlState = CourierMissionCtrlState.DropOffItem;
                    return;
                }
                break;

            case CourierMissionCtrlState.DropOffItem:
                if (moveItemRetryCounter > 20)
                {
                    Cache.Instance.Paused = true;
                    Logging.Log("CourierMissionCtrl", "MoveItem has tried 20x to Dropoff the missionitem and failed. Pausing: please debug the cause of this error", Logging.Red);
                    _States.CurrentCourierMissionCtrlState = CourierMissionCtrlState.Error;
                }

                if (MoveItem(false))
                {
                    _States.CurrentCourierMissionCtrlState = CourierMissionCtrlState.CompleteMission;
                    moveItemRetryCounter = 0;
                    return;
                }
                break;

            case CourierMissionCtrlState.CompleteMission:
                //
                // this state should never be reached in space. if we are in space and in this state we should switch to gotomission
                //
                if (Cache.Instance.InSpace)
                {
                    Logging.Log(_States.CurrentCourierMissionCtrlState.ToString(), "We are in space, how did we get set to this state while in space? Changing state to: GotoBase", Logging.White);
                    _States.CurrentCourierMissionCtrlState = CourierMissionCtrlState.GotoDropOffLocation;
                    return;
                }

                if (_States.CurrentAgentInteractionState == AgentInteractionState.Idle)
                {
                    if (DateTime.UtcNow > Cache.Instance.LastInStation.AddSeconds(5) && Cache.Instance.InStation)     //do not proceed until we have been docked for at least a few seconds
                    {
                        return;
                    }

                    Logging.Log("AgentInteraction", "Start Conversation [Complete Mission]", Logging.White);

                    _States.CurrentAgentInteractionState = AgentInteractionState.StartConversation;
                    AgentInteraction.Purpose             = AgentInteractionPurpose.CompleteMission;
                    return;
                }

                AgentInteraction.ProcessState();

                if (Settings.Instance.DebugStates)
                {
                    Logging.Log("AgentInteraction.State is ", _States.CurrentAgentInteractionState.ToString(), Logging.White);
                }

                if (_States.CurrentAgentInteractionState == AgentInteractionState.Done)
                {
                    _States.CurrentAgentInteractionState   = AgentInteractionState.Idle;
                    _States.CurrentCourierMissionCtrlState = CourierMissionCtrlState.Done;
                    return;
                }
                break;

            case CourierMissionCtrlState.Done:
                Logging.Log("CourierMissionCtrl", "Done", Logging.White);
                break;
            }
        }
Пример #19
0
 /// <summary>
 ///   Arm does nothing but get into a (assembled) shuttle
 /// </summary>
 /// <returns></returns>
 ///
 public CourierMissionCtrl()
 {
     _traveler = new Traveler();
     _agentInteraction = new AgentInteraction();
 }
Пример #20
0
        public Questor(frmMain form1)
        {
            m_Parent = form1;
            _lastPulse = DateTime.MinValue;

            _random = new Random();

            //_debugmodule = new DebugModule();

            //_scoop = new Scoop();
            _salvage = new Salvage();
            _defense = new Defense();
            _localwatch = new LocalWatch();
            _scanInteraction = new ScanInteraction();
            _combat = new Combat();
            _traveler = new Traveler();
            _unloadLoot = new UnloadLoot();
            _agentInteraction = new AgentInteraction();
            _arm = new Arm();
            _courier = new CourierMission();
            _switch = new SwitchShip();
            _missionController = new MissionController();
            _drones = new Drones();
            _panic = new Panic();
            _storyline = new Storyline();

            Settings.Instance.SettingsLoaded += SettingsLoaded;

            // State fixed on ExecuteMission
            State = QuestorState.Idle;

            _directEve = new DirectEve();
            Cache.Instance.DirectEve = _directEve;

            Cache.Instance.StopTimeSpecified = Program.stopTimeSpecified;
            Cache.Instance.MaxRuntime = Program.maxRuntime;
            Cache.Instance.StopTime = Program._stopTime;
            _questorStarted = DateTime.Now;

            _directEve.OnFrame += OnFrame;
        }