Esempio n. 1
0
        public AmeisenStateMachine(
            AmeisenDataHolder ameisenDataHolder,
            AmeisenDBManager ameisenDBManager,
            AmeisenMovementEngine ameisenMovementEngine,
            IAmeisenCombatPackage combatPackage,
            AmeisenCharacterManager ameisenCharacterManager,
            AmeisenNavmeshClient ameisenNavmeshClient)
        {
            StateStack     = new Stack <BotState>();
            StateActionMap = new Dictionary <BotState, IAction>
            {
                { BotState.Idle, new ActionIdle(ameisenDataHolder) },
                { BotState.Follow, new ActionFollow(ameisenDataHolder, ameisenDBManager, ameisenMovementEngine, ameisenNavmeshClient) },
                { BotState.Moving, new ActionMoving(ameisenDataHolder, ameisenDBManager, ameisenNavmeshClient) },
                { BotState.Combat, new ActionCombat(ameisenDataHolder, combatPackage, ameisenDBManager, ameisenNavmeshClient) },
                { BotState.Dead, new ActionDead(ameisenDataHolder, ameisenDBManager, ameisenNavmeshClient) },
                { BotState.Loot, new ActionLoot(ameisenDataHolder, ameisenDBManager, ameisenNavmeshClient) },
                { BotState.BotStuff, new ActionDoBotStuff(ameisenDataHolder, ameisenDBManager, ameisenCharacterManager, ameisenNavmeshClient) }
            };

            BotStuffList = new List <IAction>()
            {
                new BotStuffRepairEquip(ameisenDataHolder, ameisenDBManager, ameisenCharacterManager, ameisenNavmeshClient)
            };
        }
Esempio n. 2
0
        /// <summary>
        /// Load a given CombatClass *.cs file into the CombatManager by compiling it at runtime
        /// </summary>
        /// <param name="fileName">*.cs CombatClass file</param>
        public void LoadCombatClassFromFile(string fileName)
        {
            AmeisenSettings.Settings.combatClassPath = fileName;
            AmeisenSettings.SaveToFile(AmeisenSettings.loadedconfName);
            IAmeisenCombatPackage combatClass = CompileAndLoadCombatClass(fileName);

            AmeisenStateMachineManager.StateMachine.LoadNewCombatClass(AmeisenDataHolder, combatClass, AmeisenDBManager, AmeisenNavmeshClient);
        }
Esempio n. 3
0
 public ActionCombat(
     AmeisenDataHolder ameisenDataHolder,
     IAmeisenCombatPackage combatPackage,
     AmeisenDBManager ameisenDBManager,
     AmeisenNavmeshClient ameisenNavmeshClient) : base(ameisenDataHolder, ameisenDBManager, ameisenNavmeshClient)
 {
     AmeisenDataHolder = ameisenDataHolder;
     CombatPackage     = combatPackage;
 }
        public AmeisenStateMachineManager(
            AmeisenDataHolder ameisenDataHolder,
            AmeisenDBManager ameisenDBManager,
            AmeisenMovementEngine ameisenMovementEngine,
            IAmeisenCombatPackage combatPackage,
            AmeisenCharacterManager characterManager,
            AmeisenNavmeshClient ameisenNavmeshClient)
        {
            Active = false;

            AmeisenDataHolder       = ameisenDataHolder;
            AmeisenDBManager        = ameisenDBManager;
            CombatPackage           = combatPackage;
            AmeisenNavmeshClient    = ameisenNavmeshClient;
            AmeisenCharacterManager = characterManager;
            AmeisenMovementEngine   = ameisenMovementEngine;

            MainWorker         = new Thread(new ThreadStart(DoWork));
            StateWatcherWorker = new Thread(new ThreadStart(WatchForStateChanges));
            StateMachine       = new AmeisenStateMachine(ameisenDataHolder, ameisenDBManager, ameisenMovementEngine, combatPackage, characterManager, ameisenNavmeshClient);
        }
Esempio n. 5
0
 public void LoadNewCombatClass(
     AmeisenDataHolder ameisenDataHolder,
     IAmeisenCombatPackage combatPackage,
     AmeisenDBManager ameisenDBManager,
     AmeisenNavmeshClient ameisenNavmeshClient)
 => StateActionMap[BotState.Combat] = new ActionCombat(ameisenDataHolder, combatPackage, ameisenDBManager, ameisenNavmeshClient);
 public void UpdateCombatPackage(IAmeisenCombatPackage combatPackage)
 {
     CombatPackage = combatPackage;
     StateMachine  = new AmeisenStateMachine(AmeisenDataHolder, AmeisenDBManager, AmeisenMovementEngine, combatPackage, AmeisenCharacterManager, AmeisenNavmeshClient);
 }